Let me start by saying that I don’t think there is just one way to learn a programming language and whatever techniques I used are not guaranteed to work in your case but I’m sure they will shed some light, so if you wanna get in the tech world and start a career as a programmer, software developer or something along those lines, then keep reading.
I started my programming journey during the COVID-19 pandemic, since I stopped commuting to work and started working from home; I had extra hours in my day to invest in learning, so I bought 3 courses about programming, one for the basics of python, and 2 about machine learning and AI, I was ready to get my hands dirty and build the next multimillion dollar SaaS, that would change an entire industry, I was ready to dive in pools of money and success… but, I was wrong.
You see I’m not saying learning a programming language is super hard, but the mind sometimes had difficulties understanding abstract concepts, and programming is all about abstractions, a programming language is actually an abstraction of something that is even more abstract.
My dreams of building the new facebook where just that… dreams and what ended up happening is that I actually gave up the first week, I just couldn’t grasp these abstract topics like indexing, dictionaries, data types, etc. I was so frustrated that I actually requested a refund on all the courses and decided it wasn’t for me.
A week went by and I kept thinking about it, I ended up downloading a book to learn programming in Python and believe it or not the things I couldn’t grasp before, started making sense, so I went back to Udemy, bought the basic course again and decided to give another shot.
Let me share the techniques I found to be effective in my learning journey.
TECHNIQUE 1: LET IT SINK IN
The first thing that is key to learning a programming language is to let the concepts sink in, I know this may sound weird but till this day I still rely on this technique, you see if you’re at a point where you’re forcing yourself to understand something, then it’s time to leave it there and let it sink in, after a few hours or even days, come back to that topic and I’m sure you will have a new perspective about it. This technique will surely help you cope with the frustration you will feel every now and then during your learning process.
TECHNIQUE 2: CHALLENGE YOURSELF
This is super important, programming is a thing of practice, you should find courses or books that give you some milestone project and read this carefully: DO IT ALL BY YOURSELF, I mean I’m not saying you can’t use Google, but I’m saying don’t use ChatGPT and don’t cheat by looking at the solutions in the course, that’s what programming is all about, SOLVING PROBLEMS WITH CODE. And trust me it doesn’t get easier, so go ahead and challenge yourself, it may take days, weeks or even months, it’s ok but keep on doing it until the program works, the satisfaction you’ll feel when it does is priceless.
TECHNIQUE 3: GET YOU FUNDAMENTALS RIGHT
I can’t stress this enough but the fundamentals are key to success in this journey, if you skip the basics then I’m pretty sure you will not succeed, for example I’ve heard many people jumping into ReactJs first and not learn pure JavaScript, big mistake, learn the the language, get the basics, understand variables, primitives, data types, data structures, flow control, etc. NEVER SKIP THE BASICS.
TECHNIQUE 4: PRACTICE
Last but not least, practice! But how to practice? What to practice? In my case I did two types of practice:
- Resolve 1 or 2 problems in HackerRank
- Build small projects
Nowadays there are many platforms where you can practice your coding skills, from easy, to medium or hard problems, they key is to make it a habit, this will help you develop your programmer brain, is like going to the gym but for coders.
And then put your skills to the test by building something, a game, a todo, an API, anything that combines the programming mind with some functionality, some purpose, that will help you understand how all these abstract things make up the software we use everyday.
I really hope this article helps you in someway, either giving you hope or by giving you insight on what you may need to change in your learning process.