Learning to cook is a lot like learning to code. I came to this realization earlier today after reading a reddit thread in which someone compared coding to owning a toolbox. Though the toolbox is a great analogy, being handy in the garage isn’t as important as being handy in the kitchen.
Ira Glass beautifully described a problem found in both coding and cooking: “Taste versus ability.” When you set out to learn something new, your taste far exceeds your skill level. In cooking you’re, making food that literally isn’t to your taste. In software, your app doesn’t work nearly as well as it did in your head, and it probably looks like crap.
In your personal life, it’s important to learn to cook for many reasons. It saves money. It can be healthier. And with recipes all over the online space, the world is your open source cookbook! In your professional life, it’s important to learn to code for similar reasons. You can bootstrap a business better if you’re the first developer, you’re more valued in the job market, and you can leverage open source projects that require technical skill to use.
A sure sign that you’re ready to start saying you’re a cook or a developer comes when you begin to wax poetically about technique. After the tools have become an extension of yourself—not just external objects—you’ll begin to focus on the technique itself. Chefs can spend hours debating the advantages and disadvantages of different cuts of meat, while engineers will get into heated discussions about how to properly test code. Here are a few tips to keep you motivated while you hone your skills:
Your First Projects Will Suck
When you start to learn how to code, your desires surpass your abilities. Anything you put out will be extremely disappointing. Your apps will be ugly, your code horrendous, and you’ll turn to Google to solve the dozens of problems you’ll encounter. (Don’t feel bad, senior devs Google stuff constantly.)
Don’t give up. Everyone who becomes good at something has to go through a phase where they feel like a bit of a failure. Use your frustration as motivation. Make great things, learn as much as you can, and get to the next level of your journey.
Develop Your Taste—Experience What’s out There
You don’t become a good cook by eating the same boring meal over and over. Your expand your palate by trying new restaurants, cooking different types of food, and making a conscious decision to wander beyond your culinary comfort zone.
With web development—and any technical skill—you can only establish and maintain high standards by sampling what’s out there. What apps and tools do your friends use? What do they like about them? What are some new development languages that you want to learn more about? What has been built using them? These are all things you should investigate and spend time on if you want to keep your taste well-developed. Stuck on where to find the new tech hotness? Try Product Hunt!
Even Your Best Won’t Be Perfect
When you do finally get an app (or dish) out the door that meets your standards, it will not be perfect despite your best efforts. Your program could run faster, your code cleaner. The dish you made could be prettier. That’s OK. As long as your standards are high, you’ll push yourself to achieve more, which means you’ll keep learning and refining your technique. That’s true whether you’re making a crème brûlée or building an app with Ember.
You’ll never regret learning to cook or code. Each brings a sense of power and control to your life that you didn’t have before. Want to eat a steak? Fire up the grill! Want a dating site for skydivers? Fire up Xcode.
No matter how slow you go, you’re lapping the people on the couch.
Want to learn software engineering? Explore our software engineering prep programs.