I was inspired to write this article after I saw a tweet where the user was unsure if he should start to learn development. He argued that his wife was worried it would suck out too much time of their life and that he would only end up being frustrated and jobless as the market is extremely competitive.
I've been programming since the age of 10 when I was first introduced to the Apple][+ way back in the 80's. I still remember the program I was taught.
10 HOME 20 PRINT "GREG"
From that day on I was hooked and spent pretty much any time I had available on the computer.
That said, I did still go to school and have other chores like "doing my bed", "clean-up the mess", "do the dishes" and, so many others. I hated them, especially the "do the dishes". When I hit my teens, I found a loop-hole in the chores, where if I helped cook, I was not required to do the dishes and, that's when I started falling in love with cooking.
Fast-forward the odd thirty years. I was working in an advertising agency as an operations director (not my dream job), but still had all of my childhood passions in check - development was still a core part of my day-to-day and I would on occasion, whip up something strange and unique in the kitchen for friends and family.
My wife who worked with me had, accidentally, started a business making cakes (this is a whole story in itself). During the early days, my cooking history was of little use since she did not trust me around her cakes and constantly monitored anything I did. As time went on, the developer in me started looking at ways to tweak recipes.
In no time, I became the head baker of our cake-shop - you can look at some of our creations over at @cakestudiobr - creating recipes and ideas that, besides being loved by our customers, were personally complimented by a two-star Michelin chef and got us first prize in a Reality TV Show here in Brazil. (OK enough shameless self-promotion).
I would argue that there are two key factors in which being a programmer will make you a better baker (or pretty much anything else really);
From a developer perspective - Programmers develop a tendency/talent of identifying patterns. Curiosity moves them to do this. Looking at code, understanding what it does, looking for how and why something works. This is something that comes with experience and no doubt some knowledge, but, I would argue that experience plays a bigger part in conditioning your mind to work in this specific way.
In programming, we identify patterns and flows, we understand how components interact with each other and how these things sum up to create whatever outcome. We also understand the importance of order, inheritance, dependency, and, so many other little nuances that make our job one of the greatest jobs in the world.
From a baker perspective - this level of observation, this understanding of the way that components interact, and, the curiosity of how everything ultimately fits together to get to generate whatever outcome we want is as important as it is in development. From understanding general concepts like sugar to flour to liquids ratios, down to understanding the effects of gluten activation or the protein structure of egg whites, these are all little components of a program that must, very much like their digital counterparts, be treated with the same amount of respect and love.
From a developer perspective - Whenever a developer learns something new, there is an almost impossible-to-resist drive to go out and try to use this knowledge to build something new and shiny, to test where, when and why to use this. This inevitably leads to failures and frustrations, but also leads to solidifying the understanding of a given concept or knowledge.
From a baker perspective - I could actually say that it is literally the same motivation and process. The need to apply the knowledge, the willingness to test and fail, the urge to understand the sometimes complex chemistries involved in baking a cake or some other sweet goodie.
If you got this far in this article, you either grasped something interesting about being a developer or you actually just read the sub-title above and wanted to get to the TLDR bit of the article.
You do not have to be a baker to benefit from the disciplines learned by a developer. The curious nature of a developer, looking for patterns, trying to understand how each of these components work, how they all interact together, how you can extrapolate this knowledge to find new applications for it, or know when to use a determined piece of knowledge is applicable to pretty much any job you can imagine out there.
I would argue that a great part of development is, basically put, problem-solving, and problem-solving is a mixture of seeking knowledge and applying this knowledge to address the issues identified. Becoming a developer (and I am not saying you need to develop a new operating system or program artificial intelligence systems or whatever) is about learning to look at things from a unique perspective. It's about trying to understand something to its core and then trying to act on that to create something that will make your life better.
If you can relate to that feeling, then, you might just look into learning development.
(We have since sold our cake-shop and are no longer producing, at least professionally speaking, cakes and desserts).