Colin stopped by my office and asked me to come by to see his most recent project. He had disassembled his monitor switch-box (used to switch a single monitor between two computers) and it was sitting open on his desk. He had rewired it with parts from RadioShack, built a server and client in VB6, and hooked it all together to make it switch automatically when his mouse hovered at the edge of his screen. Colin had a ton of fun with that project and went on to become one of the strongest programmers on our team. This was over a decade ago before the creation of Arduino and the lowering the bar for entry of hardware hacking. VB6 programming was on the decline and folks using it were thought of as being stuck maintaining LOB apps. What I saw in Colin was a spirit shared with the best creators which is the joy of creating regardless of the tools he had available.
I’m pretty sure programming is one of those disciplines that most of us jumped into though some sort of inspiration similar to Colin. How many of us started by designing our own game (my own path started when my best friend in High School decided to program an animated game on his TI-85 calculator), our own website, our own way to solve a problem we had and were bitten by the power of bringing these projects to life with code? How many of us continue to carry this spirit in to the rest of our careers, through work projects, through crunch mode, through failures, through criticism, and even through maintaining LOB apps?
Over the years programmers have led the charge in living more in the open though shared source and public blogs. This has created an ability to see excellent programmers at work. At the same time we have exposed ourselves to an increasing tendency to compare ourselves and our own achievements to those of others. Before GitHub & StackOverflow I was very unlikely to have anyone other than my peers at work looking at or commenting on my code and I was also very unlikely to read code outside of books or API documentation. Now I can look at the code of almost any programmer in the world and they can look at mine. And honestly it’s really humbling, there are some amazing craftsmen and women in the world. What do I do with this information? Do I take it as an opportunity to learn or do I feel bad that I don’t measure up? What if I’m on the other side and see code which is less accomplished than mine? Do I scoff and leave a comment and use it as an opportunity to bolster my ego? Do I look at some code and make fun of the fact that it’s in VB6?
How do we maintain the joy of coding over time? Here are a few ways I try to:
- Maintain a side-project which you are passionate about and share it with others
- Allow yourself opportunities to keep learning—don’t feel bad you don’t know something
- Give positive feedback to others on their work (especially your business competition)
- Thank people who help you or have influenced you
It’s unlikely I’ll ever be a programmer like DHH, Pike, Stroustrup, or Resig (to name a few) but luckily my own potential for fun and happiness is just as great as theirs. Yes, you can be the best programmer in the world.
*Quote originally from Alex Lowe The Best Climber in the World is the One Having the Most Fun
Japanese Translation of this Article by @poosan130 here: http://hackernewsjapan.com/?p=42