Intuitively it seems like this might be the case. Is there real research or authoritative anecdotal data (yes, please) supporting (or contradicting) this theory?

  • 5
    No matter what language you're studying, they key is to use it. I used to teach programming, and I always had some bright students who would do poorly on a test and then say to me "but I studied the book really hard..." Feb 5, 2012 at 17:59
  • 1
    There is a well-founded body of evidence in favor of learning multiple languages and paradigms simultaneously. Just read the curriculum of any of the world's top CS universities.
    – SK-logic
    Feb 6, 2012 at 9:15

4 Answers 4


It is not necessarily confusing to teach beginners two different ways to program if done correctly.

The curriculum at ASU's Robotic Camp introduces middle and high school students to programming and robotics. In a two week period, it covers two programming environments, Alice and Microsoft's Robotic Studio Visual Programming Language (VPL). I have participated (as a teacher) in this camp, and we have survey data and empirical evidence that shows that most students learn enough about these two different languages to be able to produce their own creations in each language, and they feel much more comfortable about programming after the camp is over.


Keep in mind that most developers have to be able to at least read and patch multiple languages. It would be rare to find a developer that uses only one main language for multiple years.

By looking at more than one language in short order you will begin to see the similarities and differences between the languages. Once you have been exposed to your first language there is no need to struggle to understand the different types of loops, or what is a class.

  • True, but at the same time many developers do have a language as their forte or as a foundation for their career.
    – sjsam
    Jun 6, 2016 at 4:00

I would say no! Because your aim is to grasp the concepts of programming. It is advantageous to learn programming languages with different syntaxes and styles. As a beginner, it is good to learn Python/Visual Basic and Java if you are totally new and naive to programming (also depends what age group you fall into).

If you are like to pursue programming as a career then it is best to start with C and/or C++ and then learn Java as in C you come to know about memory management using pointers and C++ is a multi-paradigm language besides being OOP language.

Essentially programmer should concentrate on logic and skills rather than just the syntax and constructs of the language.


I would say, learning more than one programming language from the beginning is not the best thing you could do. I've taught C# at my university for two years. Some people always thought that they were able to learn java and c#, without any preknowledge, from scratch at the same time, let me tell you they were not able :D

Learning a programming language is more than learning some vocabulary. It's more than that, it's a step to have a complete new look on objects and progresses. Learning C# or Java isn't very hard, but learning the right way to develop and to analyze problems to find a solution is the problem.

And that's the point when it becomes difficult for beginners. You have to keep algorithm in mind together with a complete new vocabulary, or grammar ;-). And java and c# or php or or or are sometimes similar but not completely. So start with one language and after that you can try to learn more than once.

I think it's the same like development. Working in one project is fast with a good quality. Working in more projects at the same time is bad for quality and you need much time for all the projects.

  • 3
    Learning C# and Java in parallel is not a good idea, I agree - they're too similar, there is just no point in doing this. But learning, say, Scheme, C, Prolog and Forth all in the same time, as the very first languages is beneficial. This way beginners would be able to understand how things work, instead of just memorising the magical incantations, like most of those who start with Java do.
    – SK-logic
    Feb 6, 2012 at 9:12
  • ok... I would always say: One thing a time. But what I could prefer is learning a development language like C, Java or C# together with some dialects or markup languages and databases. But never two languages per time :-)
    – Smokefoot
    Feb 6, 2012 at 9:39
  • 2
    did not you get my point? Learning multiple paradigms simultaneously would give you a much deeper understanding of the very basics - of what the computation is, what is algorithm, what is complexity, etc. Learning the slightly different facets of a single language (C/Java/C#) is pointless and markup languages has nothing to do with programming per se, so I'm not getting your point at all.
    – SK-logic
    Feb 6, 2012 at 10:13
  • ok now I get your point :) Sorry missunderstood :-)
    – Smokefoot
    Feb 6, 2012 at 10:55