As far as I can remember, I've always loved cooking. It started as a kid, watching my mother and grandmother, and I now see almost every day of my life as a way too improve my cooking.
I've always been more of a "main dish" kind of cook, but I recently started to make pastries, and I truly think it can help me become a better programmer.
I have never seen cooking as a chore but more as an act of craftsmanship. That's why I like it, and I basically love coding for the same reason. I guess it's not so surprising, because pastry and software development actually have, from my point of view, a lot in common.
- Create things and make people happy : My main reason for being into web development is the possibility to create things. I try as much as possible to create stuff that matter, that in a certain way make the world a better place, make people happy (or at least I try to). It's the same with cooking pastries. I wont change the world with sugar, but when they are tasty, they make people happy, and that's a good enough reason to keep going ;
- Teamwork : I often cook pastries with my wife, it's a common passion. Over time We have learn each other's strengths and weaknesses. Software development teams should work the same way. You can't be an expert in every field. Find your strengths and weaknesses, the ones of your team members, and learn how to leverage them ;
- Deliver ! : I mostly make pastries I bring to friends or family, and they expect it ! I don't get to come empty handed and say that I was not able to finish a cake for some lame reason. That's the same for development, you need to deliver, event if it means adapting a functionality ;
- RTFM : Unlike meal cooking, pastry is something you can not do using only your feeling. You will need to follow some recipes, know the basics (even chemistry sometimes). When using development tools such as third party libraries or APIs, you will also need to Read The F**king Manual. Not only will you avoid mistakes, but you will also learn better way to use your tools ;
- Proofs of concept : When a recipe seems quite complex, I don't throw myself in the unknown. I like to do the recipe (or part of it) several days before, to see how I manage (and get feedback if possible). In development, this is called a PoC (proof of concept), where you try new things before fully implementing it into a more important project ;
- Don't waste : Hunger is a real problem, and wasting food for the fun of making pastries is not acceptable. May it be a proof of concept or a failed mixture, it will be eaten (usually by my coworkers :D ). In development, you sometime get the feeling to work for nothing, when some feature or some project is discarded. Sometime you can use what you've done to start an open source project for instance, or show your team what new piece of tech you just learned to use ;
- HAVE FUN ! : That's the most important common trait between pastries and web development. Whenever I do either one, I make sure to have fun ! This is what helps me getting better and and always wanting to do more !
There might be other common traits, but I think these are the key points I should keep in mind to improve my work as a developer. What about you ? What are you passions ? Can you think of a way to learn from it to improve your coding ?