I recently got an email from a 13 year-old asking me for tips on becoming a programmer.
I wouldn’t consider myself a developer (yet), but I thought I’d offer the best advice I could based on my experience learning web design.
Here was my response:
(I) love your ambition. I don’t yet know how to code that well but I’ve tried to learn a ton of times.
For me, the best way to learn is to have something practical that I want to build and teach myself how to do it.
For instance, when I left my full-time job, I taught myself how to design in a week because’ I knew I would need a portfolio site.
I would recommend that you think of an idea or a single page website that you would want to build and try and build it.
You’ll learn by failing, which is usually the best way to learn because failure helps make things sticky’
After sending this email, I thought about how some of today’s most successful founders got started.
Take Mark Zuckerberg for example. When we see Zuckerberg’s success with Facebook, it sometimes feels like he was simply an extraordinary talent who knew what the world wanted and he just went out and built it.
While it’s reported that Zuckerberg is uniquely intelligent (top 1% of minds in the world), Facebook was not the first and only thing Zuckerberg made.
Prior to Facebook he built Facemash, and before Facemash he built this music app.
Before Zuckerberg could build any of these things, he tinkered by writing a simple program that was fun for him and his sisters.
The reason this example is interesting is because it shows that everyone, including so-called geniuses like Zuckerberg, have to start at the same spot as you when learning something new – being pretty sucky.
Starting is scary
At the beginning of anything, you won’t be great, and this is why many people never get started because the unknowns of doing something new are uncomfortable.
When you sit down to write your first blog post and the first few paragraphs don’t flow right, you’ll probably want to stop.
When you try to code your new idea for a website, you’ll get to a point where you don’t know how to do something that seems trivial and you’ll want to give up.
The trick is to keep trying to figure it out.
Even if you fail ten times trying to figure something out, you’re learning what things don’t work, which is infinitely better than doing nothing.
Starting simple is less scary
If you have an idea that you want to exist, try to create the first version yourself even if you have limited experience.
If you want to make video trailers one day in Hollywood, start by trying to shoot your own video. It doesn’t have to be the best thing ever.
Even legendary film director James Cameron’s first movie was terrible. But Cameron kept improving his film-making techniques.
He eventually was hired as special effects director on Piranha II, another terrible film from which he was fired from the set, but he stuck around to assist with the shooting.
Cameron then caught food poisoning and had a nightmare about a robot sent from the future that was trying to kill him, which ultimately led to the making of The Terminator, launching Cameron’s career.
Once you’ve got something live and out in the wild, there’s a sense of accomplishment that pushes you to continue tinkering on the project to make it better, or try something new on your next project.
Through doing, you learn important details that you can’t get from sitting on the sidelines which accelerates your learning, helping you to get better, faster and leads to opportunities for inspiration.
Embrace the crappy parts
Everyone usually starts out being pretty awful when they do something new, but one of the most efficient learning techniques is to learn by doing and improve through constant experimentation.
An important part of constant experimentation however, is actually wanting to experiment in order to improve a skill.
This is why working on projects that interest you are so important.
Learning through building things that are interesting to you is a key point because it answers the ‘why’ of what you’re doing and gives you a purpose.
Do you think you’d be more likely to build a website if it solves a problem you have or if you started by reading a book that tells you to begin by making a website that says ‘Hello World?’
Everyone learns best in different ways but I’ve found that building something that scratches an itch of my own makes me want to figure out how to build it so much more.
Giving a damn forces you to learn fast
Another benefit of building something that interests you is if something isn’t working in your project, you’ll probably want to figure out how to fix it that much more.
Occasionally at ooomf, shit hits the fan.
For example, when we launched this project around New Year’s Day, an articlefrom LifeHacker brought down the site. It sucked but we learned more about server administration and handling traffic loads that day than many of us had in our entire careers.
Even if the next thing you create doesn’t become the next Facebook, the point is to keep trying new things.
You don’t have to be ‘right’ about everything (and you likely won’t be on your first shot). Drew Houston, founder of Dropbox put it best when he said:
Don’t worry about failure; you only have to be right once.
Everything you make won’t strike a cord with everyone and that’s fine. But, if you keep trying to do things in the field that you love, you’ll inevitably find yourself learning and retaining knowledge faster.
Never stop tinkering. Spot a problem you have, look to fix it, and start with something simple.
Many of today’s successful founders began by building small applications or fun side projects that seemed trivial. But oftentimes, it was this experimentation that became a defining piece in their big breakthrough.