I had a great conversation today with one of the chefs I work with at my dishwashing gig about following your passion no matter how many times it changes. I was blabbing on about the connections between economics, philosophy, and programming while my boss kindly listened. At the end of my rant, she surprised me by saying that she was once a programmer in the 1990s but left the field to pursue traveling among other things. I told her that my recent turn into the coding/programming world has caught a few people in my life of guard. Everyone pretty much thought I was going to go to law school. She told me that it made a lot of sense to her. When I asked her why she told me that philosophy and math also deal with balancing a lot of abstract concepts and analytical thinking and it was no wonder I wanted more skills to build on those tools.
While I starting helping to prepare the meal for that evening with her, she commented that cooking is a lot like programming. We discussed how there are all these variables in preparing meals for a large number of guests. There are the restraints such as time, money, and amount of people coming to the meal. There are complex variables to be considered, some of which are constantly moving. She told me that it takes a lot of abstract thought to keep track of all those details. I had never thought about it before but I do think this is the type of thinking that makes some people better at programming than others. There are a lot of moving pieces and you constantly have to be playing with in context of the whole picture. I enjoy this part of programming the same way I loved studying philosophy: complex little logical systems all fitting into a larger conceptual design.
I am looking forward to continuing the journey with this in mind. And with that said, I’m going to go read and try to understand recursion.