Should you learn more than one language at the same time?

Marco Suárez on November 06, 2017

After a period of inactive code learning or practicing, I achieved to spare some time of my day to get back on track. The thing is that I've al... [Read Full]
 

I wouldn't recommend learning multiple languages at the same time. Part of getting to know a language is to familiarize yourself with it's syntax and paradigm of thinking. For example, JS or NodeJS is extremely functional while Python or Java aren't. I think it's better to get to know the ecosystem of a language, what functionalities are provided in the core library, which are the popular libraries/frameworks used by other people in the community before moving on to other languages.

I think I would get very muddled in my head if I learnt multiple languages together. Recently, I was getting back on the Python & NodeJS horse at very close intervals. Half the time, I was writing JS code in the Python script and kept getting frustrated when it wouldn't run. I was also googling up some very basic stuff like "How to define functions in Python" because I kept writing function foo() instead of def foo():.

 

Personally I've tried it and it hasn't been productive.

What I have been productive in doing is learning one new language at a time and doing a compare/contrast. For example, my main language is Java, so when it came time to learn Python I went back to projects I've completed in Java and did them again in Python. After some time I wasn't sure how much I was feeling Python, so I hopped on over to C# and did the same thing. Now I'm back on Python, lol. BUT there wasn't a time where I was doing both Python and C# - it was one or the other.

That's my two cents.

 

When you learn a language, make sure you're learning it to do something -- even if it's just to make a task list. If you pick a "something" that should be done with more than one language naturally (for example, building a website using C# and JavaScript), then it only makes sense to learn more than one language simultaneously. So, yes it's very possible for that to be a good idea, just not the way you're describing it.

 

Of course you can learn more than one language at a time. You learned more than one subject at a time in school, didn't you?

The important thing is using each language to do something that YOU are intensely interested in, every single day.

 

For the most part, you should pick one language to learn the fundamentals of programming (ie: loops, if conditionals, objects, classes, etc). Once you understand those concepts, I would say it's fine to explore to your hearts content. The only real change is syntax between languages.

Personally, I would recommend JavaScript since you can do front and back-end development. Once you have those concepts in place, you can jump to something that might be interesting to you like Ruby on Rails, PHP, Python or a specific JS front-end like React, Vue or Angular.

 

As other people said here, I think learning multiple things at the same time is not a good idea, multitasking is generally not a good way.

I used to learn multiple languages at the same time and the only time it wasn't a bad idea is when I decide to learn the functional paradigm through a language : first a learned multiple language ( Scala, Java 8 Streams, Kotlin ) then I selected one and " forget " the others. That's allow me to select the language I preferred the most and made my learning session less painful.

 

Hey Marco,

Good question!

I'm the kind of guy who plays all the available characters in a video game and never gets to be a "pro" at any of them. Sure, I might not be super special, but the general knowledge I get from trying all of them helps me in the long run. But this may or may not apply for programming languages, I guess it might depend on the person itself.

Based on my experience, I would recommend finding some documentation, videos or courses about ONE language and don't look back. I love the way Mosh Hamedani teaches in his Udemy courses and that motivated me to finish all the 3 C# courses (beginner, intermediate and advanced) and I don't think I'll ever have a way to repay him how much I learned from him.

Now that I have a higher level of understanding of how things work in C# I can apply them to my day to day work, in which I mainly use Java, because even tho it may not have all the features C# does, I can almost always find the "Java-Way" of doing the same thing, which most importantly improves your research abilities a lot.

 

You reminded me of an essay I wrote that talked about how knowing other languages (idioms) makes the subsequent easier to learn. Us humans can only learn by comparing the new stuff with the one we already know.

 

I wouldn't recommend it for (even remotely) similar languages. But for totally dissimilar languages this should be fine. For example I'm currently learning both golang and erlang, and it's as efficient as learning them one at a time. But I wouldn't learn e.g. C and golang at the same time, or even python and golang at the same time.

Also, I wouldn't recommend learning more than one language at a time until you know well at least two - three dissimilar languages (i.e. at least two different paradigms, e.g. structural and OOP)

 

I wouldn't recommend it. But if you are left with no choice then try to read the concepts behind it rather than the syntax i.e such as HashMap, LinkedList, Classes/Interfaces and so on and then lookup the syntax whenever required.

 

It depends on your level of experience I think. If you are new to programming you'd probably wish to stick with one language and learn it well before moving on to another one. Otherwise you might get basic concepts confused.

Afterwards though I see no problem in using multiple languages at the same time. Most large projects will tend to include bits in various languages so you can't really avoid it anyway.

I also don't draw much of a distinction between using and learning a language. Beyond the basic syntax, and some speical constructus, you'll need to continually learn the API and best practices of whatever language you are using.

The more often you encounter a language that more you should follow-up on the syntax and look for language-speicfic approaches to solve your problems. It'd be bad to try and force the same syntax, or approach, into all the languages you use.

 

Well, it depend on you, and more likely on your stage.

When I was learning to code, it would have been disastrous to try to take on more than one language. Is not just because learning a new language can be hard, but because in these stages I was also learning patterns, structures models. I'd even had headaches trying to differentiate javascript from jQuery.

After few years in different positions and technologies, I hasn't been uncommon taking projects with a completely new stack (for me) of technologies and/or IDEs, and tough it always supposed a couple weeks of adaptation, I went trough it more or less transparently.

 

You might get confused learning multiple programming languages at once. It's best to fully focus on one language at a time. That's just my personal opinion though.

code of conduct - report abuse