DEV Community

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 alwa...
Collapse
 
mohanarpit profile image
Arpit Mohan

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():.

Collapse
 
djtai profile image
David Taitingfong

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.

Collapse
 
mccannyoung profile image
R@MY

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.

Collapse
 
christianhoward profile image
Christian Howard

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.

Collapse
 
jim_hubbard profile image
jim_hubbard

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.

Collapse
 
chrisvasqm profile image
Christian Vasquez

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.

Collapse
 
marksasp95 profile image
Marco Suárez

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.

Collapse
 
aolivier profile image
Adrien

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.

Collapse
 
mortoray profile image
edA‑qa mort‑ora‑y

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.

Collapse
 
bmadusudanan profile image
Madusudanan.B.N

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.

Collapse
 
elmestre profile image
Carlos Mestre

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.

Collapse
 
kwabenberko profile image
Kwabena Bio Berko • Edited

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.