The ability to ask and try to solve problems is much important than knowing the answer.
Some easy patterns to create problems:
- For example. I know how to use the qsort function in c stdlib
- But, why does it designed like this?
- There are A and B, when to use A? When to use B?
- For example, if else vs match in rust
- HashMap vs TreeMap
Try to PR some project
You will have the ability to look into some famous project deeply. And there are many nice designs to learn from. 即使最后没能 pr 啥东西,熟悉高手的代码也能提高实力。
Learn some deep thing
for example:PL theory can improve code style greatly.