As any coder can attest, its necessary to make investments of time to keep your skill sharp. Just because you have a shiny degree isn’t an excuse to slack off! A few months of investigating concurrency or performance problems in one specific code base can really erode your ability in other areas, like making new code. Its key to keep yourself sharp. Your next project might be drastically different, and you want to be able to do your best right out of the gate. You might even need to market your skills unexpectedly!
Here’s a few ideas on how you can keep your coding skills razor sharp, even if you’ve fallen into a little groove 🙂 I’ve thought about these, and most of them are easily accomplish-able on a 2 or 3 hour flight.
- Write a sudoku solver. Aim for under a 100 lines in your favorite language.
- Write an advanced data structure or algorithm that you haven’t thought about since your second level programming class. I suggest a doubly-linked list, red-black trees, a hash function or mergesort.
- Figure out how to use an ioctl again.
- Write a network program using C socket programming.
- Write a multithreaded linear equations solver.
- Write something in a new language! I suggest a lower level, or a higher level than what you’re used to. If you’re a Ruby guy, try out C++. If you’re a C guy, give Python a shot. You get the idea.
- No-net-coding. Pick any of these projects, and don’t allow yourself to travel to any manpages, cplusplus.com, python.com, etc etc. while doing the project. You’ll be surprised at how far you [might not] get!
If you really need a blast of sunshine down your backside, and have a bit more time to kill than 2 hours:
- Pick up a microcontroller kit and make something cool for hackaday. This will remind (or teach?) you of the basics of microcontrollers.
- Write some code in assembly. May I suggest linking C and assembly? If thats too much, you can try writing something simple, like a Fibonacci sequence generator. Frankly, I find it a lot more fun to code in RISC (like ARM or AVR) than it is to code in CISC (like x86). You can even tie this into your project with a microcontroller.
- Enter a programming contest. These keep you competitive, quick and sharp.
Those are my ideas, leave any others in the comments below!