Learning woodwork is the most fun I have had since the first time I heard my calling as a full time programmer. Using tools like the cabinet hardware jig, power saws and the like has shown a very specific parallel into the process of creating a fine piece of furniture and a fine tuned application.
Long gone are the days when a programmer is prefixed with something that he or she specializes in. The frontend programmer, the backend developer, database developer and the rest are no longer viable routes to fulfilling your coder destiny.
Taking it to another level, coders are often a multi talented bunch. Quite often do you see a programmer who also writes his or her own music. The famous creator of the mario brothers video game phenomenon comes to mind. There are two ways that you can read into this. In one way, you can look at the programmer as someone who naturally is able to pick up various skills knowing that it is in the nature of the developer to be able to pick up on things quickly. And on the other hand, mastering different skills might actually be a prerequisite of becoming a developer. When we look at it, whether we like it or not, the profession requires quite a lot of high level decision making which makes it one of the tougher professions out there mentality wise.
The dominion of the top coders are vast and great. They are considered polymaths and are comfortable contributing into the various phases of software development. They know how to plan the architecture of the software which means they know exactly how it will look from bits and pieces up to the finished product. They are technically skilled developers in their own right. They are fluent in several languages and platforms and can outright perform several tasks on the fly.
Like in coding, woodwork takes a lot of multi skills to be able to create the perfect furniture. And to ensure that this would be the case woodworkers, like coders, should be able to use a variety of tools like cabinet hardware jig for instance. It also takes a lot of effort and repetition to master the technical skills to master the woodworking, which is again, like coding
Another facet of software development that actually gets a bit of a boost from woodwork is quality assurance. In woodwork, or any other tasks that builders do, safety is the number one priority. Creating a chair for instance lands you the responsibility to ensure that no one planning to sit there will soon regret it because the chair suddenly broke. As a big guy myself, I can relate to that pain very much. This meticulousness can often translate to the way that people code. Though, rarely are lives or physical injuries at risk when coding, there are times that a single missed line of code could actually mean thousands to millions of lost revenue. Applying the same safety first mindset lets the developer feel a bit more at ease as he or she deploys the product.
Next up on the software development cycle is deployment. In woodwork, this would be equivalent to actually installing that unit or putting the cabinets in the room. This is where the comparison deviates a bit because while in woodworking, the installation is usually just an afterthought and rarely does anything go wrong, in coding, it is a critical step and everything can go wrong. You can still learn a thing or two however given that the actual nature of both processes are essentially the same.
The next step which is the one where both practices severely part ways. In coding, at least today, maintenance is done through monitoring and the prime goal is to make sure that everything is recorded so that the first instance of something wrong going on will be automatically sent to a central server. In which case, the repairs could be done and further damage would then be prevented. In woodwork, the contract often ends the moment you deploy the furniture. In this case, there is no way of knowing if something goes wrong afterwards unless you constantly check the deployed furniture.
People start doing woodwork despite the abundance of shops out there that can give you anything you need faster than you could even find where you left the hammer. There is a reason for it however and it is not really that hard to understand. Woodwork for most of these people is a hobby. And like a hobby it keeps them distracted from the nuances of their day to day lives that they wish to ignore for even just a few hours.
It often starts with a simple need. Once upon a time, I needed a simple crate to gather all my busted accessories in the hopes of bringing them to life again but could not find any. I could have just given up on them and threw them in the trash. But, it presented me with the perfect opportunity. Long have I wanted to do woodwork and have kept it in the back of my mind till the moment that I could realize it.
Any seasoned coder will tell you that every line of code you write is meaningless unless it contributes to the grand design that the architect have planned out. And whomever that is handy with a hammer will know what the design it and have put it into heart before even hitting a single nail. This level of discipline is one of the things that links both of quite opposing kind of activities.