Cooking and Computer Science, two subjects that I enjoy, are more closely related than you might think. When I was younger, I would ask if I could cook something. My mom would groan, knowing that it usually involved a big mess and a not so delectable dish. Nevertheless, she supported her “little chef” and let me cook anyways. With a lot of practice and an equal amount of patience from my mom, my cooking skills improved substantially. Like cooking, my code was initially all a big mess, but as time progressed, I could put together comprehensive applications. Although cooking and programming are two very different activities, they share many of the same skills.
In my early childhood, I would invite friends over to cook. Cooking involved a lot of experimentation, throwing in spices and ingredients we thought might blend well together. I would always imagine the wonderful taste and the visually appealing product of my efforts. Cooking would often result in a foul concoction. On the occasion when the food came out appetizing, it was well worth the time spent. I came to realize that thinking creatively could sometimes yield amazing results.
When I’m cooking, attention to every detail is imperative. I work with many measurements, temperatures, timelines, and directions. Too much turmeric, setting the wrong temperature or using the wrong pan could result in a disastrous dish. Giving the dish just the right taste, making the dish visually appetizing and watching my friends take the first bite gives me a great sense of pride.
When I was initially successful with a dish, I would find that I could not repeat it. I neglected to write down the steps. I had many failures and felt documenting the process was a waste of time. I would often place the spices back in the cabinet randomly, sometimes never be able to find them again. In turn, I would burn food looking for the spices or ingredients needed. The lack of organization and a recipe created even more failures. Over time, I realized the value of both documentation and organization to improve my chance of cooking success.
After years of cooking, I began to realize what makes a successful meal, a meal enjoyed in both vision and taste by others. It takes more than my desire to produce a delectable dish. It takes more than just the opportunity to create a morsel for friends to eat. It takes years of practice and experimentation. Over time and experience, my skills at cooking improved. You can apply this life lesson to just about anything. If you want to be a musician, doctor or computer scientist, you will need to spend a lot of time practicing.
Cooking and coding encompassed complementary skills that have shaped my character more than I had initially realized. They have also manifested themselves into the Ramen Bot 2000, a robot I built and programmed to prepare Ramen autonomously. My hobby of cooking is more academic than one might expect, cooking has taught me how to improve my skills in many aspects of life.
In summary, the commonalities of cooking and programming are clear. My two passions, cooking and programming computers taught me the importance of creativity, attention to detail, experimentation, and organization. More importantly, I have learned that it is not necessarily cooking or programming that are my passions. It is the process of learning, creating, and solving complex problems whether it is the latest meal or writing the next killer application.