4 ms·
Professionally, what helped me grow the most was taking larger responsibilities within my project: overseeing a framework/middleware change, redesigning the tec
by laurentl 10y ago
Professionally, what helped me grow the most was taking larger responsibilities within my project: overseeing a framework/middleware change, redesigning the technical architecture and rewriting the deployment tools. I learned tons of stuff and expanded my comfort zone. But obviously you have to be in a position where that's possible.
Personally, working on side projects. I've started quite a few of these, but never had the patience to go through with them (or I stopped working on them as soon as they were good enough for my needs); and one day I discovered projecteuler.net and fell in love. The goal is to solve mathematical puzzles by writing programs that run under a minute. It tends to be short programs, and you have to have some mathematics skills. What I got out of it:
* finally putting my CS classes to use: when you're working on large numbers, which is usually the case in PE problems, you immediately see the difference between a O(nlog(n)) and O(n^2) algorithm - one finishes quickly, the other hangs your PC. It really gets you thinking about the efficiency of your programs, how much memory they will need, how you can optimize them...
* learning or practicing common programming tactics such as recursion, DP, memoization, etc.
* learning Python: writing short programs is a great way to understand how a new language works.
Obviously PE problems are toy programs, you won't be learning much about how to architecture your code or use a given framework, but it may help you build your confidence on CS topics, common algorithms, and math knowledge (which I feel more developers could do with).