How I Learned How To Code
It’s my first day of work on 21st September 2020. I’m sat at my desk, only 1 hour after I got told I was going to be a software engineer.
I look around the office at my socially distanced colleagues wearing masks. I’m taking notes on the Java tutorial in front of me.
A combination of imposter syndrome and regret lingers as I think to myself: “what have I done?…”
Fast forward 6 months…and I still can’t really code. At least not to the level of the senior developers in the team. Sorry to disappoint.
It’s important to have realistic expectations of where you want to be if you’re going to make progress in any new skill - let alone something as cognitively demanding as coding.
Another prerequisite is to figure out your learning style. I was shocked at myself for not being able to pick up coding as quickly as I did other things taught at school. But the environment was completely different: classroom vs office, teacher vs online tutorial, classmates vs busy colleagues who are a lot older than you.
If you prefer classroom style training like me then I strongly recommend you don’t waste your time with online lectures because it will just go in one ear and out the other.
There are many practical-based coding tutorials online that don’t force you to watch hours and hours of videos before you can start. Some of the best that helped me are Hyperskill, Codeacademy and Freecodecamp.
So we’ve covered the ‘Learn’ part of the equation - but when can you actually say you know “how to code”? It’s better to look at this as 3 tier system rather than just a binary ‘know it or you don’t’.
The first level would be exposure. This is when you’ve seen a certain language and can read the syntax, but might not feel comfortable programming in it without lots of time and reference material.
The second level is experience, when you’ve actually practised coding in the language and can perform basic operations. You have the ability to be productive with it given some reference materials and a fair amount time. (I put myself in this category)
The final level is proficiency. Proficient in a language means when you can do most work that's likely to come up in your role as a software engineer, and may not need reference materials. You should be able to do most of the common things you might want to do with a language.
During my exposure phase, I was mainly watching videos on a platform called Pluralsight; I found it impossible to concentrate because the teachers were all so boring.
The practical based platforms I mentioned earlier are perfect for beginners because you only have to read a short lesson on a given topic before actually practising hands-on with it. Your code will have to satisfy certain tests before you are allowed to move on to the next lesson.
Erica Gordon Sorohan said ‘we do; therefore, we learn’ - which couldn’t be more true in the context of learning how to code.
Your brain only remembers things that it thinks are useful. That’s why you’ll never forget why your first girlfriend broke up with you, but you can’t remember what you had for breakfast last week.
To extrapolate, it’s paramount that if you’re goal is to ‘learn how to code’ then you need to practice frequently. Try setting up your own project environment and using what you’ve learned to make a small application.
If you’re an aspiring software engineer or just looking to learn a new skill, I’m sure you would have found this article useful. If you did, consider subscribing to my newsletter so I can sell you stuff in the future.
Source: Sorohan, E.G., 1993. We do; therefore, we learn. Training & Development, 47(10), pp.47-54.