A professor once told me that coding is like learning to drive. At the time, I glossed over this statement but in hindsight, it was quite profound. What I think he meant is that coding is a skill, and as such, if you want to learn to code, only learning about the theory is no substitute for practical experience.
When a lot of people start learning to code, they treat it like they are in a lecture theatre. They learn the definitions, copy and paste some examples and, if you are lucky, try and solve some problem sets. This is great for learning the theoretical concepts, which are of course important, but this approach deters many people from learning to code and does not prepare you well for a career in software development.
I first started to learn to code in my spare time at high school, and I taught myself by using the internet and textbooks. In hindsight, I now regret getting bogged down in the theoretical aspects of the subject so early on as it really demotivated me. It made me assume that you had to be a genius to be a programmer and it didn't show me how fun and creative coding actually can be.
It wasn’t until I started working on projects that I started to really develop into a skilled programmer. This has made me a strong advocate for project-based learning. I would go as far as recommending people with zero knowledge start by trying to work on a project.
What do I mean by project-based learning? I mean pick something you want to build and then try to build it. Focus on the building and you will find that learning the language will be a fun perk.
When you re-frame learning a programming language into ‘How do I build this interesting project?’ you find many of the sticking points that beginners encounter are removed. You don’t need to decide what programming language to focus on, instead, you will be working with whatever language suits your application and more than likely you will have to work with many languages to develop a full application.
This holistic approach is much closer to how software engineers work in the real world and provides beginners with a true appreciation for coding.
Stay tuned for the next part of this blog where we will discuss what project you should start with!