“OK, you’re all set.”
I appreciate efficiency. I appreciate people who are good at what they do. My mechanic, the guys who replaced my apartment windows this morning, the chef at a decent restaurant: people who have their process down to a science keep the creature comforts of the world running. No different than mine, when broken down into component tasks, there is rarely anything inherently difficult in performing most jobs. The combination of sets of simple tasks into a complex process wratchets the difficulty up a notch, but only generally to the point where practice and experience move things along. That said, there is an elegance in doing things well.
I think of programming in the same terms that I think of working on a car. The process really only consists of knowing the system and framework that you are working in, having the requisite tools at your disposal, and being able to analyse and adjust to what you find. Experience and education prepare you to address and solve the problem quickly and efficiently. For something specific and quircky the first time you’re working through a problem, Google and a Haynes manual are not particularly different.
In job interviews, I often get asked how I got into programming, given my academic background. My response is almost always that it (web development) is fundamentally easy. When I say that it’s easy, I mean that it is easy in exactly the same way that car repair is easy. Both require acquiring the correct set of tools (or a willingness to use a wrench as a hammer), finding a resource to learn from, and time practicing. The most fundamental pieces however, seems to be overcoming the fear of screwing up and knowing how to ask for help.
I’ve had my S10 for more than a decade now and despite my best efforts, it still seems to run quite well. In college, I drove around listening to an odd klunking sound coming from under the bed of the truck, whenever I would put her in first gear. Not having a clue as to what was going on and deciding that I would rather put what money I had into a combination of beer, pizza, and extra books for classes I wasn’t taking (NERD!), I simply kept on driving. At some point, a friend pointed out that I probably had a problem with a “you-joint”, which I promptly dismissed because I had no idea what that meant and all car repairs sound expensive. Skip forward another month, progressively louder klunking, and reiteration by at least another person or two that I indeed probably had a problem with a “you-joint,” and I decided it was time to think about dealing with the problem. To the internet!
First thing I found out was that I was looking for a universal joint and that it cost all of a few bucks for the part. Glad that I waited a month over that. Second thing I found out was what this joint does. It turns out that these joints connect your drive shaft to to the transmission and can lead to some fun times if it breaks, drops the driveshaft, and you happen to hit a pothole. Again, glad I waited a month on that.
With that in mind, the process for changing a u-joint is actually rather simple and is something that anyone can do on an S10, so I gave it a shot. Four frustrating days later, I had my driveshaft in hand, but a pair of broken u-joints hopelessly fused in place with no hope of finishing the job with the tools I had. Since Google didn’t exactly seem to have an answer to my specific problem, I started making phone calls and a friend swung by, picked me up and took the driveshaft and I to his father’s garage. There, we popped the broken joints out with a 20-ton hydraulic press and I was back in business. I replaced the joints and put the driveshaft back on the truck the next day. In all, the process took about a week to manage a 30 minute job. The next time I had to do it, it took me about 3 hours and didn’t need the press.
I appreciate the ability to figure out which end of that spectrum you’re on and being honest about that. Given that much of my background has been self-taught or self-directed, I completely support people learning as they are working through a problem. When I was getting started with Drupal at P2, I had a bunch of great guys around who were always willing to help point me in the right direction. At the Middle East Institute, I had the opportunity to mentor several interns in the ways of the Drupal, and even won a handful of converts. In the ego-heavy world of development, I have a great deal of respect for developers who are up-front about when they need to learn.
It seems entirely reasonable just how often that admitting you need outside help, be it another dev or a shop press, can save a project.