Hacker News new | ask | show | jobs
by lhnz 5470 days ago
1. Learn paradigms, kinds of problems and computer science fundamentals.

2. Work on poorly-run large projects with (a) performance problems or (b) code organisation problems.

3. Work on other projects with developers that use (1) to solve the problems of (2). You'll be surprised how quickly you learn when you've seen the benefits to be had by doing things better... ;)