views:

402

answers:

13

I wonder if I should learn more than one programming language at once?

Are there any examples of language duos that 'go well' togather?

+10  A: 

Probably best to focus on one language at a time, preferably by using it to build a small project. In my experience, using a language in anger is the only way to really grok it.

Jason Etheridge
+1  A: 

I think the hardest things about programming language is the syntax and the language nuances.

I think once someone has been well versed in a type of programming language, its fairly easy to pick up other languages.

The hardest part is separating the nuances and syntax of one language from another. Worst are the ones that has different meanings, or overlapping meanings in different languages.

I found it easiest to learn them by itself in focused bursts, one mini/major project at a time.

zxcv
I disagree, the syntax is something which is learned in a few days. The actual idioms and especially the libraries take much longer.
Mauli
+7  A: 

Depends how similar the languages are I would suggest.

e.g. learning Java and SQL together might not be too bad since they're pretty dissimilar.

Trying to do Java and C++ or Java and .NET together might prove to be more confusing.

cagcowboy
+3  A: 

Probably no problem. Many languages share the same philosopy (C / Pascal), others share the same syntax (C#, Java, C, C++, Javascript). Others share the same framework (C#, F#, VB.NET)

I would not try to something as different as Ruby and F# at the same time. But, on the other hand, they might be so different that it makes no harm.

mliesen
+3  A: 

If you want to blow your mind, try learning just one that is completely different from what you are currently using.

If you are on C#/Java now, try to learn a functional language like Lisp, Haskell or Erlang.

jop
+2  A: 

From my experience, if you are hell bent on "reading thru" a book on two languages, then you could use a VM with an OS of choice and your desktop OS both for each language. (ubuntu-python, windows-java)

Never use the same IDE for learning the same language, if you are a beginner.(like using eclipse for java and python)

Of course be prepared to fight it out when you have internal battle of "one-line-code in python is put forth in java as a design pattern". As long as this battle doesn't pull you down, it's worth it.

Mak
+1  A: 

If you are just starting with programming, it is better to stick with just one language. Once you have written sizable programs (like semester projects) in that language, you can start doing more than one languages in parallel.

Our university program, for example, had C in first semester, C++ in second and SQL and Assembly in third semester with projects at the end of each semester. This worked out pretty well for me.

And that was more than a decade ago. Now with wide availability of learning resources on the internet, learning new languages has become easier and much more fun. I have learned Groovy, PHP and a bit of Python mostly through web based resources and e-books.

Tahir Akhtar
+3  A: 

If you're new to programming, learn one language well.

If you are an experienced programmer, and intend to use the programming language in a commercial environment, learn one new language well.

If you are an experienced programmer, and are just interested in learning a new language for personal reasons, it really doesn't matter how many languages you learn: just learn learn one new concept at a time.

Kramii
+2  A: 

I would say it heavily depends on the language/type of language. Like learning different OOP-based language should be no problem, if can remember all those differences and quirks. More complicated is it to learn one OOP like Ruby and one functional language like Haskell.

I would suggest just to focus on one language and make your experience with it. It's much easier to learn a new language when you have more experience.

unexist
+2  A: 

What languages do you know already?

IMHO when you know a procedural language (C, Pascal, etc) then learning other procedural language is easy, it's more a matter of syntax than semantics. So, learning two or more languages similar to something you already know is not that difficult.

On the other hand, trying to learn two conceptually unfamiliar languages (say, functional programming ones like LISP and Haskell when you just know C) is much more confusing...

Couples that, in my opinion, will NOT blow your mind:

  • Python & Java
  • SQL & Java
  • Python & LISP (seems odd? actually is what i'm doing...)
  • C & assembler (after all, we know C is just an assembler wrapper! :-D ok, joking)
Myrrdyn
+2  A: 

There is no golden rule, it depends on you in just about every way. Some people could flourish learning 10 languages in one go while another might struggle with one. "There are horses for courses" as the saying goes.

mm2010
A: 

What would you achieve by learning two programming languages side-by-side that you cannot by learning one after another (or more reasonably, one when there's a need to learn one)?

ayaz
+1  A: 

I have learned both perl and php at the same time .. I also think that if you are good at one programing language you can easily pickup others..

vik