Following my article for beginner programmers and the top things they should learn, here’s another one, on a similarly important topic: how to properly learn as a beginner programmer.
You’ve chosen which language you’re gonna learn, you found a tutorial you like, and you started learning programming! It’s overwhelming, but at the same time I think we all remember the excitement of compiling and running our first Hello World. This excitement is great, because it will be the drive to keep learning, but it can also become your doom, pushing you to skim over notions that you might consider as less important or interesting, and try to rush the course as much as possible to get to the part where they teach how to make your first video game.
In this article I want to talk about the important aspects that you should keep in mind and apply when it comes to learning programming. They are the key to an efficient learning, and while at first you might think you can’t be bothered, they will also lead to a greater enjoyment of your programming journey.
Do not remember, understand
At Epitech, the programming school I attended, we spent the 3 first weeks of the year (we call it “the pool“) working 15 hours per day, learning the C programming language. On day 4, we started to use pointers (it’s a variable that contains the address in memory of another variable, which allows you to access it later down the line, read more here), probably the most essential concept in C. While hard to understand at first, we had a lesson, followed by plenty of exercices every day for the reminder of the 3 weeks.
At the end of the pool, I thought I knew how to use pointers without issues, but it quickly became apparent that it wasn’t the case when I started working on the projects given by the school. I could never remember how many
* to put, when I needed to use one, when to get the address, etc. I did not understand the notion.
For anything that you learn, make sure that you really understand the concept, to the point where you could explain it, without any doubt, to someone else. This will take you more efforts when first learning it, but it will save you time and frustration in the future and make you a better programmer overall.
Practice makes perfect
Alright, I’m sure all the tutorials you’ve been reading started by saying that you need to practice. I mentioned it in the introduction of this article, it is sometimes hard to spend the necessary amount of time of concepts that don’t seem very interesting or important. The issue is that, at that point, you don’t know what you don’t know, and you should invest enough time on each part.
The key is to practice as much as possible, and to not limit yourself to simple exercises, you should be doing small projects on your own on the side, where you don’t follow a tutorial and you have to solve problems on your own. Step outside of the paved way.
If you need ideas, I wrote an article about personal project ideas to improve your programming skills.
Never copy & paste
It ties with the previous point, but you should never copy & paste code when you’re a beginner. You should not copy & paste code from your tutorial, from StackOverflow, or even from your own code.
For me or another experienced developer, there are two steps to writing code: thinking about the algorithm that will solve the problem, and writing the code that makes that algorithm work. For beginner developers, you will probably have noticed it, there is an extra step, before writing the code: you have to think about what specific programming language keywords, which structures, etc. to use in your code.
It’s just like learning a new language: first you have to think in your mother tongue and translate the sentence you want to say, and then say it. Once you’re more experienced, you don’t have to do that translation, and you can directly think in the target language.
Making sure that you never copy and paste code, means that you will always type it yourself, all the keywords, all the logic, and it will just help you get used to it faster. Does this mean you cannot copy code? Ideally yes, but in practice no, you just should never paste it, but you can type it yourself. What you should however do, is adapt the code so that it fits your own style, this can mean using variable names that you like better, converting the names from snake_case to camelCase, etc.
At Amazon, we have 12 leadership principles. They are way more than just “values” that you would find in any other company, they are the pillars of how we do our job every day at Amazon. It’s not unusual to hear in a meeting “let’s work backwards, from what the customer needs”, and it’s not without good reasons that Amazon has been consistently ranked #1 in Customer Satisfaction around the world.
Leaders operate at all levels, stay connected to the details, audit frequently, and are skeptical when metrics and anecdote differ. No task is beneath them. – The Dive Deep leadership principle
Dive Deep is one of the very important leadership principles for developers, because programming is all about solving problems and finding the root cause of bugs. How it should look like for you as a new developer, is that you should try and find solutions to your problems yourself, by finding the root cause, and then find a solution to that root cause online, without relying on the help of another person.
What Diving Deep will teach you, is how to solve problems on your own, alongside a better understanding of the technologies that you are using. This directly relates to my point about Google on the article about the top things to learn for a beginner developer.
If you struggle with Dive Deep at first, you should look for a method on how to apply the principle, like the “Five Whys“. It is about asking five questions in sequence, to find the real root cause of a problem. For example, if your website is showing an error:
- Why is the website showing an error for customers? Because the API is offline.
- Why is the API offline? Because it cannot connect to the database.
- Why is the database offline? Because the disk has no free space left.
- Why is the disk full? Because the log files are not being cleaned up automatically anymore.
- Why are the logs not cleaned up? Because the last update to the script introduced an error in the code (root cause).
If you want to learn more about those, I wrote another article about the 14 Leadership Principles.
Continuing on our series about learning programming for beginners, I hope this article shed some light on what principles you should keep in mind at all time while following a tutorial, doing exercises, and applying the principles you are learning.
You can check out the next article in the series, about Data Structures and Algorithms.
Nice Articles. Helped me a lot. Greetings from an Argentinian Software Engineering student :).