This content was first sent as part of our friends email list, you can subscribe here to get this type of content early and fresh every week …
Let me tell you the story of how I effectively learned foreign languages (there are a lot of parallels with how I became a developer).
I was not a good language learning when I was young, heck I even flunked 6th grade in part because my English was terrible!
But being bad at something does not mean it’s game over, I was using the wrong “software”.
My approach was flawed: I tried to memorize things, almost learning from a dictionary, highly inefficient and not fun.
Learning practical things like languages, driving a car or programming doesn’t work like that.
Everything changed when I was introduced to “interrailing“. For those that don’t know, it’s a 3-4 week train pass that let’s you travel through an area of (in my case) Europe. Apart from having a well deserved break over summer, I always used those as an opportunity to learn the languages of the countries I visited, mainly French, Spanish and Italian.
Once I decided I would move to Spain that summer I went all in. I travelled through Spain and I fully immersed myself in the language. I tried to speak it with as many people as I could, I constantly noted down words I kept forgetting, I bought local newspapers and forced myself to read as much as I could (not understanding much yet).
After a few weeks of constant deliberate practice – we also covered this on the podcast here and here – I reached a tipping point: I earned conversational level in a language I could not even say “Hola, que tal?” in a few months prior.
Flash forward 10 or so years and I got on a similar mammoth mission to learn to program, because when I saw the power of automating the boring stuff I knew this would be a game changer for my career. It would be a fun one too, coder’s delight is real!
But… learning to program almost from scratch (at most I was fluent in Excel) is hard.
But I applied the same techniques as the language learning journey: constant deliberate practice, failing my way forward. The tutorials got boring pretty fast (paralysis by tutorial anyone?!), and things were not clicking, and many times I wanted to give up!
Until I started to build projects and apply what I learned. It was still hard, I got stuck constantly, but it was my way of fully emerging into the learning.
And over time, I had great success. The first code I wrote was really ugly, but I got a tool working, that ultimately would become a staple in the organization I worked for. “Done > perfect” is so true and something you seriously need to embrace if you want to succeed as a developer.
More importantly building bigger projects I cared about, started doing 3 things for me:
- I inevitably ran into a lot of design issues, things you usually are not confronted with in the “safe” zone of tutorials.
- I got completely hooked because building software was so much more tangible, I was creating a product, something that could help people and I could talk about later when I had to qualify as a programmer (specially because I did not have a formal CS degree).
- Building complete solutions without being a developer by training, over time I dared to call myself a developer. Without relevant projects shipped this would never have happened. Tutorial purgatory is insidious, you not only waste a lot of time, there is actually a “0 to 1” issue, you won’t bridge the chasm!
So if you take one thing away from this email, let it be that if you want to become a developer and want to get there relatively fast, find one or more projects you can fully immerse yourself in.
Don’t worry about design patterns or overly planning everything when you start. Doing so will keep you stuck.
Have people look at your code. Live and breathe code in the context of your apps. Build in public, ship fast.
Have people use your code, there is no better learning like your code hitting the real world (as Tyson said: “everybody has a plan till they get hit in the face”), it changes everything and you will grow.
I hope my story inspired you and made you realize you might be “two inches removed from gold”, it is possible, using the right approach.
– Bob
What took us years to learn we have distilled in our PDM program which will significantly shortcut the time it takes to become a proficient developer.
Check out how it works and what people achieve working with us here. For more information about our uniquely practical approach check out this training.