Tuesday, August 10, 2021

Coding and a Cuppa: the similar flavors of programming and tea

Today started with a Taiwanese black tea to smooth over a too-early morning, steeped twice, and progressed into a gentle pomelo oolong to ease a brewing headache. I've been a lover of teas since my teens, and like many tea-drinkers, my tastes have changed over time, with both my palate and my knowledge expanding over the years.

Coding is much newer to my life. Though I first learned HTML and some CSS as a teen, I began learning Javascript last fall, and graduated a coding bootcamp (the Grace Hopper program at Fullstack Academy) last month. During the process of learning to code, I found many parallels between my tea journey and my coding journey.


Tea requires patience, and some degree of precision. Steeping doesn’t hurry just because you are in need of a caffeine fix! It’s like waiting for your code to compile; the wisest course of action is to just wait. Compiling can’t be rushed, but like how tea steeped too long or with too-hot water becomes bitter, errors can make your code unpalatable to the compiler. But both are surprisingly flexible, too--code can be written many different ways, just as tea can be brewed hot, cold-brewed, brewed stronger with more leaves, re-steeped many times, made with milk and sugar or lemon and honey, or more! 


Speaking of a multitude of choices, programming comes in a variety of languages and libraries, just as tea comes in different forms. Java or Javascript, Kotlin or C#; React or React Native, Firebase or Postgres--the oolongs and green teas and black teas, the fruits and flowers and spices we add--some people love them all and try many; others have a favorite they specialize in. 


CSS and React working together

In teas I tend towards diversity: I love oolong and black and green and pu-erh and white and herbal. However, I am not usually a huge lover of rooibos. At least, not to drink plain. I have a special love for Harney & Sons rooibos chai, of which I always keep a tin for my cinnamon-chip chai cookies! In the same way, there are parts of coding I’m less a fan of than others--but as I gave rooibos a chance and found a place I loved it in, I find I really appreciate ‘the chores’ of coding as they enhance the project as a whole. Writing API routes, for example, is less fun to me than crafting the user experience with a beautiful and responsive frontend; but without routes, there couldn’t even be a frontend! And it’s the many routes that let a user interact with a site, bringing it to life and giving substance to the app. On their own, API routes are not my cuppa; but with the butter and cinnamon chips of a full stack web app, they’re an essential ingredient of something I love, and therefore something I want to invest in.


I might find more fun in UIs than APIs, but that doesn’t mean everyone is the same. And I’m glad of it! I’m not afraid to pair-program with a teammate whose enthusiasm for routes turns the process from an important task to something a little more fun. And if they’re less than happy to be digging into the details of flexbox, I won’t judge, even if I could use a little more flexbox time myself. Everyone has different tastes, and there’s nothing wrong with having preferences. I never liked Lipton’s sweet tea--but for some people it’s a heaping teaspoon of sweet memories, or just lands on the right tastebud. 


For that matter, if I’m trying to get someone to try tea, and the only tea they’ve liked so far is Lipton’s sweet tea--you better believe I’m glad they liked it, even if I don’t myself, because getting into any tea is an entry point from which people can learn to love other teas! Maybe in a couple years, I’ll have helped them grow their tastes to include Cinnamon Spice, or a sweet chai, or a boba tea, or anything else that we can enjoy together. Meanwhile, drawing people into coding may start with taking something they’ve enjoyed before--like designing print layout or routing calls to the right people--and helping them see the similarities until they understand the coding challenge, and then appreciate it, and then love it for itself.


Growing an appreciation of new teas takes time, and so does learning new parts of coding, but both are worth it. I’m always eager to try a new tea, and I can’t wait to dig into new languages and new libraries. Whether I’d love coding as much as I do without first learning to love tea is up for debate, but one thing’s for sure--a good day’s code starts with a good cup of tea close at hand!