I recently gave a talk about learning to code products in less than a year.
The talk was well-received and was even labelled the best talk of 2018 at the location it was given. đ Since it seemed to spark some inspiration in those who attended, I decided to write up a more accessible summary of the key points.
Background
To preface the piece, I think itâs important to quickly go over my story. Iâm Steph and Iâm 25 years old. Across the 25 years, Iâve had a varied past ranging from:
- A degree in chemical engineering
- Commuting my life away in management consulting
- More recently working in growth/marketing for a technology company - Toptal
I should clarify that these views are my own and donât necessarily represent the views of Toptal. đ
Different decisions led me down different paths but ultimately something about tech stuck. Throughout the past 2.5 years at Toptal I learned more about the industry and had the opportunity to go to conferences like TechCrunch Disrupt, where I could see the extent of opportunity and innovation.
More recently, the missing piece was being able to contribute to technology myself. I was working with developers; I was seeing the products others were creating....and ultimately, I wanted to be a part of that world. So, starting in February, I went on a year of learning that was focused on learning programming from scratch, with a focus on learning to make web apps.
Long story short, it worked. I launched 4 times this year, one of which went to number 1 on Product Hunt, another which recently won an award for Inclusion and was nominated for 2 Golden Kitty awards, and others which had their own quirks - like this one which came 5th in the 24h startup challenge.
I was even nominated for Maker of the Year in Product Hunt's annual Golden Kitty awards less than one year after learning my first lines of code.
Learning to code has been one of the most rewarding periods of my life and is totally accessible to anyone reading this article. Before starting, letâs take a quick step back and question why this even matters.
Itâs hard to dispute that the tech industry is going to be the most influential industry on our future and in many ways already is. The decisions going into making the products that are going to be ubiquitous in our future need to be made by a representative population. As we understand development, we are removing that barrier so that we can be a part of that future.
Many people look for shortcuts. For example, some common search queries include:
- easy way to learn coding
- easiest way to learn programming
- fastest way to learn coding
There is nothing wrong with agility or simplification, but learning programming (especially on your own) takes dedication and time. For that reason, you wonât find any shortcuts in this article since I donât think there are any. This article focuses on what I believe to be the 7 myths of learning to code, as I believe those are truly to the biggest barriers in people participating - not the technology itself.
Iâll start with a story:
There is a terrible car accident in which the father is killed, and his son is injured and taken to the hospital. When the boy is brought into surgery, the surgeon looks at the boy and says âI canât operate on this patient. This is my son.â
How is this possible?
Perception Bias
If you didnât get the answer yet, the surgeon is the mother. Many people, including myself, donât find that response immediately.
This is due to something called perception bias: people tending to âsee thingsâ based on their particular frame of reference. While seemingly straightforward, perception bias is essentially a filter over every decision that you make; who you hire, what you learn, how you negotiate, etc.
I believe that if you havenât started learning to code yet, youâve labelled yourself as someone who âisnât a developerâ. With that knowledge in tow, Iâd like to introduce you to 3 developers who may not look like typical developers, but certainly are.
So, it begs the question: Why does that perception even exist?
To answer this question, itâs important learn about the history of development. Back in the 40s and 50s when development was first taking off, a lot of the key software engineers were actually women, like Grace Hopper.
Come 1966, enter the Cannon-Perry test. This was a test done on a select group of individuals which tried to identify who the best software engineers were and there were two key conclusions:
- They were good problem solvers
- They apparently didnât like people
This âconclusionâ forever changed the way that technical recruiters found the âbest developersâ and this self-reinforced for decades to come. This psychological perception permeates into the myths we tell ourselves or others tell us in learning to code.
If one study can so drastically change the trajectory of development, we can actively turn it around by addressing the barriers and myths head on.
So here they are; the myths that once prevented me and hopefully will not prevent you from learning this valuable and rewarding skill.
Myth 1: There are two types of people in this world
Thereâs a common misconception that there are two types of people: those that know how to code and those that canât. In some cases, the image is so pervasive that there seems to almost be a different species associated with the two, with a big, impermeable barrier between them.
The reality is simply a learning curve. Just like any other language or industry, someone who has spent 10 years learning to code is simply further along that learning curve.
For some reason, people who are first starting compare themselves with others years further on the curve, yet this doesnât happen with other skill acquisition. You would never compare yourself to a native Spanish speaker a few weeks into learning the language, nor would you consider yourself less capable than them.
Myth 2: Stack matters
Many people get hung up on stack. They end up on blog posts that tells them the performance of one stack is better or a specific language is âdyingâ. This noise prevents them from starting, which is what truly matters.
In reality, stack does not matter. Below are three successful companies that most people are familiar with. All three use completely different technologies and some even utilize languages that some code snobs would deem âoutdatedâ.
- FB: PHP and React
- Spotify: Python and Java
- Medium: Node and Go
Please donât end up on a blog post that compares the performance of React vs Angular vs Vue. While youâre learning, this does not matter. Find a stack that you like and stick with it.
Myth 3: You need to learn 3820 languages/frameworks to be a real developer
Below is a representation of the ecosystem of development. The image doesn't even capture everything that exists, but even what is displayed overwhelms people and certainly overwhelms me. No developer will ever know all of this, yet this is what scares people away.
âThe tech industry is moving so quickly.â
âThereâs so many new things popping up. Which programming language do I learn?â
âThereâs a new Javascript framework everyday. Where do I start?â
âI donât know what any of this means.â
âI can never be a developer because Iâm so far behind.â
The below image is my reality within that ecosystem and I have launched every single app or project with this stack. These are the same projects that have been successful, won awards, and are actually generating some income. Ignore the above image and remember, you only need to learn something similar to what you see below.
Important note: you donât need to learn my stack because: stack doesnât matter! :)
Below is a simple structure to think about what you need to learn if youâre tackling your own projects. Itâs important to note that this obviously differs if youâre a paid developer, but everyone needs to start somewhere.
If youâre creating a simple static site, all you need is HTML and CSS. As you start to add functionality, youâll naturally venture into Javascript. Learn vanilla Javascript and jQuery at the beginning and ignore the frameworks! These can be great later on, but are distractions at the beginning.
As you need things like authentication or a database, youâll need a backend. But again, donât get overwhelmed with choice as you truly only need 1 database (for me, Mongo) and 1 backend language (for me, Node).
Myth 4: âI just donât get programming and never willâ
I want to differentiate something that I think is very important. Logic != (does not equal) syntax. Logic is what youâre trying to achieve, while syntax is the specific set of rules that get you there; the specific characters that the computer can parse.
For most people, logic clicks immediately, but they get hung up on the fact that they donât understand syntax right away. Thatâs natural! Not understanding syntax does not mean that youâre not capable of thinking like a developer or comprehending that logic. Syntax takes time, and the best part of learning to code is that there is a constant online dictionary available to you, which is Google.
Myth 5: âI donât have anything to buildâ
If you truly believe that you have nothing to build, youâre almost certainly looking too hard for the perfect idea. If we take a look at some of the biggest tech companies and distill them down to their simplest form: Evernote is a note-taking app, Reddit is a public forum, and Medium is a blogging platform.
I can almost promise you that you wonât wake up one day and find the perfect idea. Ideas and execution are functions of one another, but ultimately execution is worth much more than ideas. Accepting this is an important precursor to actual creation and launching, which is what truly matters.
Credit to Derek Sivers for this idea and executing on it so that the world knew about it. Multiply the two integers together to generate a proxy for value.
20 (amazing idea) x 10000 (average execution) = $200,000
1 (weak idea) x 1000000 (great execution) = $1,000,000
Myth 6: âI started too lateâ
"Starting late" makes sense for fads. For example: if you didnât get on the fidget spinner train, sorry, you missed the boat. However, tech is not a fad. Itâs becoming more and more ubiquitous in our lives and not showing any signs of slowing down.
My best explanation of this concept is:
âEveryday, thereâs a bus leaving to tech world and you can get on that bus. If you miss it today, thereâs another one leaving tomorrow and this will continue to be true for years and years to come. So, do yourself a favour and hop on one of those busses.â
Thereâs also a misconception that so many people know how to code and itâs already competitive. Well, actually only ~0.5% of the world knows how to code. If we approach this with the Diffusion of Innovation curve, weâre still very much in the innovator phase. You can and should be a part of this, and you didnât start too late.
Myth 7: âI donât have enough timeâ
It doesnât take as much time to learn to code as you think. It can take a matter of months or even weeks if youâre truly dedicated.
I would also invite you to try one of my applications Make Yourself Great Again, which helps you think critically about how youâre spending your time and how re-allocation of distraction time can result in meaningful growth and learning.
Since I tracked my effort for the greater part of the year, I was able to determine that I probably spent ~300 hours learning to code over the last 10 months. Although itâll differ for each individual, this 300 number gives us a much better sense of how long this truly takes.
If you spend 1 hour per week learning to code, yes, it takes forever (6 years). As we scale that up to 1 hour per day, youâre already looking at less than a year. If you scale up your commitment further to more of a part-time or full-time focus, weâre looking at mere months before youâre capable of creating fully-fledged applications.
To recap, most of the barriers that once blocked me and may be blocking you from learning are psychological. The world of development in theory is approachable, if we can remove these mental and societal barriers. The best advice that I can give you is to start as it is truly the only way to put development in a place that you perceive as accessible.
Many people end up getting stuck in what language they should learn or how to most effectively learn by searching things like:
- best way to learn coding (SV: 2400)
- best websites to learn coding (SV: 1600)
- best sites to learn coding (SV: 1000)
- best code to learn (SV: 480)
Here's a secret: there's no "best" way to learn coding. Everyone learns slightly differently but the commonality between people that actually end up learning is consistency and persistence. All of the major tools (Code Academy, Free Code Camp, Udacity, Udemy, etc) teach you effectively so it's a matter of starting.
So I encourage you to start, today. You could be building apps in weeks.
If youâd like to learn more about how I specifically approached learning this year, you can read about My Year of Sponge and watch my talk. And if you're curious, this is the course I started with.
PS: If you liked this article, you might enjoy my podcast or my latest project.
Related posts about Tech: