As much as it’s easy to bash who gets into programming with exorbitant expectations, I don’t believe they are the ones to blame: the last 20 years have been a continuous talk on how technology is changing our lives, how Rockefellers became Zuckerbergs now the rich guys are not trading stocks or extracting oil… they’re coding unicorns!
On one hand, the pretty talk has been constantly filled with how difficult programming is and how those people must have been geniuses, because hey, they do things with computers!
The question is: do you need to be a genius to become a programmer? Is that something out of reach for any of us? What if all it took was just personal inclination?
Nope, to become a programmer you need to think like one – and that requires practice rather than just knowledge or a personal inclination.
To simplify it, a programmer is someone who has (mostly) the right mental models before he or she writes a single line of code.
Having spent my last two years teaching more than 100 students how to methodically get into coding, I’ve decided to outline the key aspects to take into account when deciding to become a developer and the most common bottlenecks I’ve seen in my personal experience as a teacher.
1. Prioritize hands-on experience!
Beginners never know what code they need to write to solve a certain issue because they don’t have enough experience with “feeling the material”. And yes, code is a kind of material that you need to play around with for your mind to be able to build accurate mental models.
Theoretical knowledge has very little value at this stage.
2. Always break it down…
A car can be broken down into a lot of small parts that have no functionality of their own. Only once assembled, they can move with one another making a moving car out of a bunch of parts, tubes, and bolts.
3. …and then rebuild it back!
Once you have the static parts, you must build relationships between them. To further the car metaphor, to make the right connections, you need to know the laws of physics: generate pressure in cylinders and make the car move…
4. What does it take?
Even if you have a car factory, most likely you will need a handful of attempts to make a car. You will start with small components and connections, making a lot of mistakes along the way; wrong size, wrong material…
Once you are full of metaphorical grease and abrasions, your mind and hands will start getting a sense of how things work. This will only happen if you have experienced a multitude of wrong ways. No theory will help here.
The most important aspect in learning coding is taking a project you always wanted to build and just build it.
Trying to learn something without clearly envisioning the objective in your mind will just get bored to death with all theory, which is also important, but it needs immediate application.
Together, we can dig into your passion, take on a project, and immediately get hands on it. No bullshit in between, no months spent on the books.
How about that?