The coding grindstone
Working on the same thing day in and day out has a way of getting you stuck in a rut. You may know your codebase like the back of your hand, but that’s all you know. New technology comes and goes without a chance to explore it. The parts of your tech stack that your coworkers manage remain a mystery to you.
Don’t get me wrong — it’s not necessarily a bad thing. You may be stuck in a highly productive rut. Focusing on one thing for a while lets you develop a solid mental model of it. You can make changes with surgical precision and add new features with ease.
But what if you want to get out of your rut? The easiest way to do that is to branch out and learn some new technologies. Fortunately it’s not too hard and doesn’t take much time at all. And it helps keep your mind sharp by making you think in ways you’re not used to.
Programming puzzles are a lot like riddles. They’re easy to understand but sometimes deceptively simple. They cover a wide range of difficulties and skill sets. And it’s unlikely that you’ve solved a similar problem before.
Project Euler is one of my favorites sites for these. The puzzles involve all the key parts of a program, including conditionals, loops, functions, and file I/O. Plus they have a good difficulty curve and there’s not downside to skipping problems. That makes them great exercises for learning new programming languages.
Start a small project to scratch an itch. Think of something you do frequently that can be automated or improved with a program. It can be a small thing like a to-do list or a big thing like an XML parser. Although in my experience, it’s better to keep it small so that you’ll actually finish it.
There are a lot of good things about working on your own project. You get to pick the whole tech stack. If you want to use the latest and greatest to learn how it works, go for it. If you want to stick with what you know so you can focus on the implementation, more power to you. You also get to go at your own pace, which can be a blessing and a curse.