As the date of my online workshop “Before You Start Learning How to Code” approaches, I thought I’ll share 3 common mistakes that you should be aware of when diving head first into the complicated programming world.
So you started learning to code. That’s great! What were the factors that you took into consideration when choosing the resource you’re learning from? If it’s an online course you should look for completeness (it should cover all the basics) and friendliness of the teaching style. But there’s one more important thing. Your first course/book/tutorial about programming should be focused on practice as much as possible.
When I was designing my programming course for beginners I wanted my students to experience transformation, which is heavily focused on practice. I even phrased this transformation in one sentence: go from absolute beginner to having a complex programming project, which you'll be able to code by yourself. Capstone projects, final projects, practice assignments - these are keywords you should look for while doing your research.
Treat practice exercises as side quests. Your primary goal should always be to create a small project, which has at least one of below characteristics:
It’s fun (time really does fly by as you're having fun).
It’s not too complicated (it should challenge you, not make you depressed).
It’s made for somebody (make something even a tiny bit useful for you or your friends).
Back when I was starting my programming journey I focused too much on theory. I remember spending 3 months reading “Thinking in Java” only to end up forgetting 90% of the material. Then I gave it another go, but this time I completed all exercises from the book. It was a bit better, but they became quite repetitive with time and made me unable to answer more creative job interview questions. In the end it was a deep dive into a project called “Manip” (a 3D simulator I created for my robotics classes) that showed my weaknesses and helped me improve rapidly.
So you’re learning to code - great, you’re doing practice projects - amazing, but to actually land a dream job you need to make a connection with recruiters. Not only by sending them CV, but also by showing them what you can build. The number one reason aspiring programmers do not upload their code to sites like GitHub is perfectionism. Escape it as soon as possible. When in the future you revisit projects that you’re building now, you will always be unsatisfied with their quality. And that’s good. It means you’re making substantial progress!