3 ms·
"Programming as a tool rather than a goal" is really good way to think about programming. Programming for the sake of programming can be a hobby; if you want to
by itamarst 10y ago
"Programming as a tool rather than a goal" is really good way to think about programming. Programming for the sake of programming can be a hobby; if you want to be a professional programmer, if you want to produce value, it's all about goals.
I am in the same boat as you: I end up not feeling motivated to program without a good goal.
Thing is, coding more won't necessarily make you a better programmer. Especially if that side project is just doing the same thing you usually do.
To become better at anything you need deliberate practice. That means:
1. At the edge of your competency.
2. Focusing on a particular skill.
3. Getting quick feedback on how you're doing.
Getting detailed code reviews from an experienced colleague will improve your coding much faster than a side project.
So one thing you can do is just not bother coding in your spare time. It's possible to be a good programmer and not do any coding in your spare time. I would argue it can often make you a better programmer (https://codewithoutrules.com/2016/11/10/work-life-balance-software-engineer/ https://codewithoutrules.com/2016/11/10/work-life-balance-so...).
If you do still want to do something in your spare time, some alternatives to building your own project:
1. Get a bunch of good books and read them.
2. Find an open source project you're interested in, e.g. one you use at work, and try to submit patches. Ideally one that does code reviews.
3. Read lots of open source software and figure out how it works. This will improve a particular skill (understanding new code bases) but also show you lots of best (and worst and mediocre) practices. Think about what you see and try to decide which it is.
4. Learn core liberal art skills (close reading, writing, research, building abstractions) if that wasn't part of your education. I got an undergrad in humanities at Harvard's evening school, basically for fun, and it made me a better programmer.
If you do end up building a side project, some advice: make sure it either has a very specific goal, or has a very limited scope (https://codewithoutrules.com/2016/09/09/side-projects/ https://codewithoutrules.com/2016/09/09/side-projects/).