In my last post, I wrote about why you shouldn’t worry about programming languages when you’re starting your journey as a developer. That’s simply because there are many other decisions that are important to make from the beginning rather than hitting a hard wall once you’re more advanced in your studies. One of the points I made in that post was that you should first be clear on your goals and what you want to achieve as a developer, in case you haven’t read it, you can check it here.
As I said in that post, been a developer is not easy, that’s the sad truth. And that’s precisely why you should really ask yourself many questions that help you with defining what path you want to follow and that will be dictated how should you structure your study sessions.
Once you have decided what developer path you want to follow, there are many other questions that will hit you. Especially because now is the time to decide (following your path and goals), which programming language to learn. And then you realize…there are way too many programming languages out there!!.
I have to learn a lot so I better start fast
Once you start realizing how much you have to learn in order to achieve your main goal, it is very possible that doubts will become your friend, would I be able to learn all of that?, how long would it take?, can I do it on my own?…
You have to understand, this is normal. We all go through those phases. We all have doubts (many of which will accompany us for the rest of our career), the important thing is to keep the focus on our goals. Because it is our goals that will help us to keep pushing.
Now, if you’re struggling with how to organize your learning schedule, just keep reading. Maybe you could get one or two pointers from this.
You don’t learn to walk by following rules. You learn by doing, and by falling over. –Richard Branson
One of the things that will most certainly overwhelm you is the amount of programming languages that are out there. Don’t worry, you don’t have to learn all of them. If you are clear on what path do you want to follow and what goals do you want to achieve then, deciding which languages to learn will be way easier.
Another thing that could be at the top of your questions list is: should I learn several programming languages at the same time or should I go for one at the time?
This is more common than you think and if you’re reading this you may be having this question in mind. The good news is that this article may help clarify some of these doubts. So let’s examine both scenarios and see which are the pros and cons of each one and which is the better option.
Learning more than 1 programming language at the same time
Before telling you about what I consider to be the pros and cons of learning more than one program at the same time, I have to admit something. When I first started learning I said to myself: “how hard would it be to learn several programming languages at the same time? after all, they are just languages, simple syntax…”
Now, by telling you this, I’m not implying that learning more than one programming language at the same time is necessarily bad. I’m telling you this in the hope that if you’re considering doing the same as I did, you can learn from my mistake or at the very least you will think it twice.
Learning more than one language at the same time is not bad IF done right. Obviously, my initial approach wasn’t the right one. So, now let’s really take a look at all the pros and cons of learning more than one programming language.
Pro: You will keep your brain engaged with learning
There are studies out there that suggest that every time you learn a new skill, you’re exercising your brain. With that in mind, by learning more languages at the same time you are exercising your brain and making it keep up with the learning pace.
Let’s say by example that you start learning both Java and Python at the same time. One benefit you could get from this is that if you have a balanced and organized learning schedule, you can improve your learning because you are training your brain to apply some sort of “switch” that allows you to remember and alternate between languages, syntaxes, and rules.
You need to understand, that in order for this route to work you need to have a well-balanced learning pace. You will have to take your time and not rush it. You have to enjoy the journey.
Pro: You will make learning more fun
Also, by being learning two programming languages at the same time you can even alternate. If you start feeling exhausted or stuck with one language, you can put it on hold for a while, take a break and meanwhile could go and keep learning from the other language.
Con: Your learning pace will be slower
As I mentioned before, the more programming languages you try to learn at the same time, the slower your learning will be. This is because you’re splitting your time between many things instead of focusing on just one. This can become a con if you’re in a rush to learn something in particular in order to advance in your projects.
Con: You can experience burnout
Here is when I come back to my mistake when started. Because you are trying too many things at the same time, it can easily make you feel burned out after a while. This, in turn, can make you think that programming is not for you, or that it’s too hard and in the worst-case scenario you could easily quit.
Any fool can know. The point is to understand. –Albert Einstein
Learning 1 programming language
Now that we have seen some of the pros and cons of learning more than one programming language at the same time, let’s evaluate the other alternative. Learning 1 language at the time.
Pro: You can focus on one thing
By learning one language, you’re putting 100% of your attention into that language. This could be huge because it will allow you to go more in-depth regarding not just that language but programming in general. Remember, programming is way more than just a language, it involves a lot more disciplines, tools, and knowledge.
This means that by learning just one language you can take your time and build a great foundation on programming in general.
Pro: It will take less time to build a foundation
Having a good programming foundation is crucial for your career, it doesn’t matter which language, or languages you pick. A good foundation will allow you to understand more about the programming ecosystem in general. You can focus more on data structures, algorithms, best practices, and much more.
So, as I mentioned in the last point. By focusing on one language, you can easily develop a better foundation. This can later make the way easier the process of learning more languages.
Con: Your overall journey may take longer
Please consider that this not necessarily will be bad. It will all depend on how much do you enjoy learning and how fast does it take to learn each part. After all, we all learn at a different pace.
Keep in mind that this possible approach will also make you mix learning frontend development and backend at the same time. This can be a bit too much for some people, given that front and back end development have many differences and in some aspects are very different worlds.
Con: It can become a bit boring for some people.
This is another con that can be tricky and won’t necessarily apply to everybody. But, there are people out there (I could include myself in this group) that can get bored or lose interest after some time if they feel stuck in something. One possible reason for this could be because they always need something new to motivate them to keep going.
Let’s say for example that you started learning Java, you invest X amount of time learning Java because you want to build something around its ecosystem, but after a while, you start to feel bored because even though you have a good Java foundation you still don’t feel ready or don’t know all the required tools for your project. So, because you don’t see any real progress or you start to feel stuck, there is a considerable possibility of you abandoning the project and quit learning programming in general.
This is the reason why many senior developers recommend having at least two side projects. That way if you get tired of project A, can go and work on project B. And if you get tired (or stuck) with project B, you can go back to project A.
Ok so, which route should you follow? The answer is really easy (and you may not like it). It all depends on you.
Do you enjoy focusing on one thing and can spend a lot of time learning all the bells and whistles of something? then go with one language and become an expert on it. Once you finish, you can move to the next language if you like it. This can also help you to build a better foundation and structure not just of that language you picked but of programming in general.
On the other hand, if you’re someone like me and can’t just focus on one thing for too long without getting bored or tired, then my suggestion would be to pick two languages. One which would be your “main language” and then have a second language (a back-up) in which you can alternate and enjoy more the learning process. I don’t suggest you go for more than two languages because as I have said before, it can easily become a nightmare. This route may take you a bit longer, but at the end of the day, this is a marathon, not a sprint.