A Developer’s Attitude
Recently, I picked up a pair of clipless pedals for my bike.
I then promptly crashed in the parking lot behind Outback Bikes in Little Five Points. After a harrowing journey to the entrance of the Path near Boulevard, I almost had the hang of things, and started enjoying myself again. Clipless pedals allow you to take advantage of the upstroke, put a little less effort on your legs, and make you go faster. It’s a fun sprint down the Path from there to L5P, and in the slow sections I kept practicing the dismount. I learned I have to focus and dismount on the right side (later my good friend Amelia shared this cycling lore: It’s better to get bitten by the dog than hit by the car) as trying to unclip both feet results in disaster. I learned that a little later when trying to start pedaling slightly uphill near Oakdale. At the very least, a few commuters had a quick laugh at my expense. And that time I had some grass to land on. I’m cycling 10mi daily to train for a century, and these longer rides by myself are really helping me get comfortable with the pedals.
What does this have to do with software development? There are shockingly few software developers realize that the path to better code and better professional development is putting yourself into a situation where you risk injury to gain the reward of greater efficiency. For some developers, their threshold for pain is surprisingly low (“Oh no! Compiler errors! I’ll just copy and paste what I know works.”) and often completely misguided. For example, if you aren’t well versed in SQL and are scared of running a certain type of query, then why not spend the next 15min to clone the DB and run it against that? Don’t know how to clone the DB? Learn! We have all the tools at our disposal to experiment. In the most paranoid case, create a virtual image with a Linux distro and try everything there. If you completely ruin the machine, then just delete the virtual image. What’s stopping you?
There are many tools that if we spent the time to learn, we’d increase our productivity a hundredfold. I’ve often heard a good developer is about 10x more effective than a standard developer. That’s not hard to believe. This isn’t about that 10x productive developer being smarter, having a better background/degree, or installed Linux on their baby monitor when they were in the crib. They are smarter, but only in the sense they’ve cultivated the right attitude to go through the pain and come out the other side.
You don’t learn better software development arguing on forums, reading blogs (like this one), or running around evangelizing technology. You have to step outside your comfort zone, and fall down a few times before getting better.