Toy Code
There’s a highly controversial topic in the software development industry: if you don’t code in your free time, you won’t get very far. It’s easy to tell who sees development as just a 9-to-5 job they forget about after clocking out, and who sees it as a passion they can’t help but spend part of their leisure time on—whether it’s reading technical books, blogs, newsletters, doing courses, tutorials, exploring guides, or the most important piece: toy projects.
Playing allows us to explore reality and solve problems in a safe, completely free environment. Having a toy project lets us experiment with everything we can’t afford to try at work as professionals: new angles, techniques, languages, or technologies. All at your own pace and for the love of the craft—no deadlines, no negative consequences, and the only reward being the satisfaction of learning and evolving.
With a bit of ambition, a toy project can even turn into a side hustle in its own right, and sometimes into a profitable business. But that’s far from its main purpose. Its true value lies in being disposable.
There’s a big difference between spending time on your passion and bringing work home. Overtime doesn’t help you grow or learn. A one-off effort might be necessary, even appreciated and rewarded, but if it becomes a habit, it only leads to burnout and normalization—your managers will no longer see it as extra effort; on the contrary, they’ll start expecting it.
Toy projects have the opposite effect for those who live programming with passion: they help recover lost energy and let you return to work recharged with motivation, self-confidence, and new ideas. It doesn’t have to be remotely related to your day job—maybe you enjoy creating video games while working at a fintech, or analyzing data while being a frontend developer by day. Maybe you just love hunting for hacks and experimenting.
None of this means there’s no room for the clerk-type developer, or that it’s any less respectable. But the reality is that passion gives you a significant edge.
exit(0);