You’ll never guess how I got started. Nineties kids—do you remember these?
And if you knew a little bit of code, you could turn them into chromatic masterpieces. I had all of my favorite hex codes memorized (#FFDDEE is pastel pink). Hours were sunk into beautifying my profile.
Thankfully, those hours didn’t go to waste. From AOL profiles, I moved easily into HTML and CSS. It was a small leap to make back then from < body . bgcolor=#000000 > to <body bgcolor=“#000000”>. Unfortunately or fortunately, it’s no longer as simple now. The internet is very different (for example, I would be eviscerated if I were to use ‘bgcolor’) and there is much, much more to learn than when I first started. But one thing that I’m sure remains the same: it is still just as thrilling as it has always been to write that first line of working code.
So in honor of all of you who are undertaking or want to undertake the endeavor—and all of my friends who have expressed interest and have decided this is the year they are going to do it—I thought I would share a few of the many things that I have gotten over the years out of learning how to code.
It excites me to no end to share one of my favorite things in the world with you.
“I see much deeper and broader reasons for learning to code. In the process of learning to code, people learn many other things.”
— Mitch Resnick, MIT Media Lab,
Founder of the Scratch programming language
in Learn To Code, Code To Learn
1—First, I learned how to teach something to myself.
One of the hardest parts of learning anything new, especially when you’re teaching it to yourself, is figuring out how to get started. Resources abound for most things that any of us might want to learn these days, coding especially, so lack of access to instruction does not tend to be an obstacle. Frequently, we delay because we have no idea where to begin—and then where to go from there.
But learning how to code has taught me a tried-and-true method for teaching myself almost anything.
2—I learned how to learn by imitation.
So, here’s the secret.
The fastest way to start learning how to code? Take an existing website, and try to duplicate it. Then take another one, slightly more complicated, and try to duplicate that. (Tip: Duplicating the look and feel of Google’s homepage is a great place to start.)
Learning by imitation is a severely overlooked—but highly effective—way to gain new skills, quickly.
And it can be applied to many, many things.
For example, if you wanted to learn animation, you could find an animated video to replicate. If you wanted to learn to produce music, you could reverse engineer one of your favorite songs and try to string it back together. In the process, you will learn the tools as well as the techniques that you will need to go off and create something of your own. (Fun fact: I hope to eventually get around to both of these things.)
And the reason this works is that you are answering the question of “How do I start, and where do I go from here?” Learning by imitation means that you learn only the things that you need in order to see immediate results, exactly when you need to learn them.
Which brings me to this next point.
3—I learned how to ask the right questions.
Half the battle of solving any problem is figuring out how to ask the right questions.
Half the battle of teaching yourself something new is figuring out how to ask the right questions about something you know nothing about. For example, if you were to try to replicate the look and feel of Google’s homepage, typing “how do I code Google’s homepage” into a search engine would yield nothing useful. Instead, you would need to find the answers to these questions, in some order:
- How do I set up a webpage?
- How do I insert an image?
- How do I insert a text box?
- How do I create a button?
- How do I make a footer stick to the bottom of the page?
- How do I change the color of text?
And this is important, you see, because half the battle of figuring out how to do anything you might want to do—be it rocking at your job, or planning a bachelorette party, or finding a perfect gift—is figuring out how to word the search query you will put into Google. ;)
4—I learned to give myself permission to suck.
Other times, we might delay getting started on learning new things—or quit soon after starting—because we don’t want to look stupid or to suck. We may mistakenly believe that if we are bad at something right off the bat, we shouldn’t be doing it to begin with. (Yoga for the longest time, for me.) (Still bad at it.)
But if you have learned something new once, you’ll know you will feel exactly the same way when you get started, every time. You will feel overwhelmed at how long of a way it seems you have to go. You will wonder if you will ever get to a point where anyone will consider you to be good.
But—if you have successfully learned something new once before, you’ll also know you are supposed to feel that way. You are supposed to suck.
“Sucking at something is the first step towards being sorta good at something.” —Jake from Adventure Time
5—Coding constantly reminds me that there are awesome, awesome people in the world.
The amount of collective programming knowledge on the internet is astounding.
Last night, I was trying to figure out how to set up what I thought was pretty esoteric functionality in Wordpress. I thought I was going to have to hack something together, which I expected to take at least a few hours. But before I started, I thought I would try my luck and google to see if anyone else had figured it out and perhaps written a tutorial for it. Lo and behold, not only had someone figured it out, they had actually built a free plugin that allowed me to set it up in 20 minutes.
People are awesome.
6—Coding has afforded me a tremendous amount of personal freedom.
Even though I never intend to become a full-time developer, I’ve benefited both personally and professionally in more ways than I can count, from being able to code. I promise you can too.
The demand for development skills is sky high, so being able to code can mean that you have reliable access to a great source of disposable income. For me, most of my traveling has been funded by freelance design and development projects. Freelancing has also allowed me to support myself while I spent two years founding two startups.
7—Coding has also afforded me a tremendous amount of professional opportunity.
Few jobs remain untouched by technology, so the ability to code—to solve problems algorithmically, elegantly, at scale—can be a powerful asset, no matter your chosen profession or industry.
While I was pursuing a career in marketing, many of my potential employers were also interested in what my programming experience could do for them. I benefit now, of course, as a designer: an understanding of how to code makes me better at what I do by allowing me, among other things, to anticipate the technical implications of my design choices and to think at a systems level about the work I produce.
8—And lastly, the best thing by far that I’ve gotten out of learning how to code… the incomparable, rewarding, enchanting joy of making things.
You already know what this feels like.
If you cook, you paint, make jewelry, do crafts—if you do anything at all to create—you’ll know how captivating it is to go from a blank canvas with raw ingredients to something you can feel, smell, share, touch.
“So, what do you do for fun?”
This question always catches me off guard. I have a hard time providing one of the answers that I think people usually expect—that I play a sport, or go shopping, or watch movies. Because I’m blessed that what I happily choose to do for fun on a weekend, is also exactly what I do for a living: I build things.
So, won’t you join me?
- Things I wish existed
A collection of random inventions
- 5 design details I ❤ about Pocket
On how I stopped wasting time on the web
- 9 design details I ❤ about Medium
On why I’ve been able to write every week
- So you wanna learn how to design? Here are 7 things you can do right now to get started
All you’ll need is 20 minutes
- Lessons learned from founding 2 startups
Or, why I’m not founding another one