Is practice all you need?

“To get better at programming, write more code.”

Yes, the path to programming mastery is through your keyboard.

The catch is that there are many such paths. Some more effective than others.

How do you choose the right ones?


Choose paths that take you deep and wide.

Deep: Increasing complexity

Build 1 large program instead of 10 small programs.

Code organization isn’t challenging in small projects (< 1k lines of code). By building larger projects, you’re more likely to run into code organization problems and learn how to solve them.

Wide: Different domains, languages, and frameworks

Don’t build 10 web apps. Instead, try your hand at a game, a mobile app, a desktop app, a CLI tool.

The more of these you expose yourself to, the more versatile a programmer you’ll become. Software engineering principles usually transcend languages and frameworks.

Aren’t sure where to start with building projects? Check out build-your-own-x, a huge compilation of tutorials. Want a more interactive experience? Try