What are the best programming languages to learn now?

What is the best order in which to learn all the popular programming languages?

  • like.. Python, Ruby, C#, C++ , java, Objective-C  . what should i learn first and what last  ?

  • Answer:

    There isn't really an 'order' to learning programming languages. Each language will have its own quirks and abilities that you will need to familiarize yourself with. However, my best advice would be to learn and master the programming concepts (loops, arrays, OOP, etc) before trying to learn a bunch of languages. By being strong in the concepts, you enable yourself to program in any language fairly well. Also, you will only need to learn the syntax differences between languages when/if you decide to try something new.

Benjamin Knickelbine at Quora Visit the source

Was this solution helpful to you?

Other answers

For learning purposes, using only those languages you list, it really doesn't matter much. Except perhaps depending on low/high level, in that some people tend to learn quicker by first looking at the detail, while others find looking at the overall first gives them insight quicker. That's very much up to you. In which case from those languages the two extremes would be C++ (for low level) and Python (for high-). Other than that, those languages are very much the same thing. In all of them you'd do pretty much the same actions in exactly the same manners. Actually they are so close to each other that I'd say if you're reasonable in one, you should be able to pick up the gist of the others in very short order. Prospective programmers always ask "What language?" That's a red herring. The more important question is what concepts and paradigms to focus on first? The language is only important in that you want to find enough resources (examples, books, tuts, courses, etc.), it should suit your particular learning regimen and understanding, and you might like to have something which you can place on your CV and get some work reasonably quickly. Those are the only reasons you may choose one language over another (especially if they are similar like those in your list) - popularity, suitability & prospects. The real stuff you want to learn has little to do with the language. It's all about the concepts. And those concepts are the EXACT SAME in those languages you list. Even when thinking of some of the short hand stuff in Python, it's still the same ideas as the long winded way of doing the exact same thing in Java (and visa versa). That's because all of those are imperative languages (at least mostly) and designed to implement object orientation idioms. So from your list you are only learning a small portion of the entire programming landscape. Even if you learn all those languages to the expert level, you'd still only be a rather average (at best) overall programmer. That's because you'd mostly have no clue about functional / declarative / logic / meta / etc. To get the best overall, I agree with Toby Thain's answer - you need languages from widely different paradigms (at the least) to become "good". And unfortunately that takes time, especially as languages from different paradigms means a lot of what you've already learnt about one isn't of much use in the other(s) - thus the usual idea of learning a 2nd language goes quicker is muted between these.

Irné Barnard

More important is, in what order are you going to study the important paradigms—functional, imperative, declarative, logic, etc? Learn any one of the languages on your list and you've learned them all; they are all more or less the same. But you will have only learned one paradigm of programming even if you study all six. This will limit your ability. The short answer is to break out of that list and think in terms of paradigms, modelling and problem solving. For specific guidance, please see

Toby Thain

As suggested by other posters, it's best to get somewhat comfortable with one language before trying to learn a bunch of them. My personal experience: Because a lot of syntax is similar (but not the same) between languages, syntax errors are more common when switching between multiple languages.  This is less likely to be the case if you're an experienced programmer or extremely smart. It's as important to learn libraries, APIs and frameworks as it is to learn programming languages.  For example, if you want to learn JavaScript, you probably want to learn about the browser DOM and using jQuery (if you are doing front-end stuff) or node (for back-end).  The same goes of Objective-C and learning, e.g. about iOS application development. Re: Luke's comment on Ruby on Rails, it's also a good way to get learn about MVC.  (I'd bet that most people who learn Ruby do so in the context of the Rails framework.) It can be much easier to learn if you have an application you really want to use.  That way you'll be motivated to find answers to your questions as you go, using web resources and forums as you go.  IMO it's much better than (only) following examples and exercises in a book.

Rahim Nathwani

Really if you're asking about OOP programming languages such as these, you're really asking about imperative AND OOP, because the code inside methods, classes etc. is just imperative code. In this answer I take the general approach that it is better to start off easily and then get to the nitty-gritty of things. As such, in summary I recommed you learn Python, Java, C++, C, Objective C then Ruby. C# can go in place of Java, or after Java. I think I'm something of a strange person in this regard, in that I really recommend you learning Python first for the basic imperative experience you need. I know, this sounds wacky, but Python is such an incredibly easy language to learn in my opinion that it lends itself to the imperative paradigm. Once you've got the syntax down, solved a good amount of problems etc., move on to Java. My personal advice to you with Python is not to delve into OOP just yet, as from my personal experience while Python is an excellent teaching language for imperative programming, Java is an excellent teaching language for OOP. This is because Java does not give you the option of programming imperatively. It FORCES you from the outset to program in an object-oriented fashion. And this is, I think, what taught me OOP the best. C and C++ come next. Why? Because pointers are hard to get your head around - and these languages themselves are lower-level than Java and C#, making them, as the rule goes, harder to program in. Learn C++ first - I know some people recommend learning C first, but since by this point you'll be used to the OOP paradigm courtesy of Java, learning C++ shouldn't be stepping into the deep end just yet. Objective C uses pointers like C++, but the reason I did NOT tell you to learn this before C++ is simply because from personal opinion, C++ tutorials will probably help you learn pointers better. Why did I save Ruby for last? Because unlike the rest of these languages everything is an object. This is something I still have trouble getting my head around. Ruby is also quite different syntactically to most of these programming languages, so as far as you're concerned I think you should learn the C-derivative languages (C++, Java, C#, Objective C) in one bundle so the transition isn't too hard on you. There you have it. An INCREDIBLY biased order in which to learn the popular programming languages.

Stephen Rudd

I 2nd Toby answer. Rather than language, types of language structure come first. ;) Imho, depending on the learner age and aspiration. For elementary student, start on visual programming, like Construct 2, then goes to OO programming with Gui like Qt, then to Relational Sql language, then goes to declarative, like QtQuick / html 5. With those 3, He / She can develop anything. For mid schooler and above, He can start on specialized courses to maximize Their aspirations like gaming (above then Unity), design (above then Maya), databases (above then MongoDb etc), and so on.

Renan Prasta Jenie

The only specific language I'll recommend is Python for just starting off in your studies.  From my experience I feel that Python is an invaluable tool for beginning programmers, as its relatively simple syntax allows the novice to focus on programming concepts rather than fretting over semicolons and braces before her Hello World program will even run.   That being said, you have to fret over semicolons and braces eventually, so you don't necessary want to just learn Python.  But I'll be honest.  If I didn't know any better, and it'll sure look like this to someone just looking at the languages for the first time, but languages like C, C++, C#, and Java all look a lot alike at first.  They're not alike!  They each have differences which make them more well-suited for different tasks, different platforms, etc. but you can't really tell from a superficial glance at the syntax of the language.   Figure out what you want to DO, then just pick a language.  Any language.  I've learned some C#, and a little bit of C, C++, and Java and the biggest takeaway I've gotten from my experience so far is that it doesn't matter which one I use; not yet.  What matters right now is that I DO SOMETHING and write code; the rest comes later.

Frank Harvey

Start with Ruby on Rails which will force you to understand object orientated programming methodologies. From there you can move wherever you want to.

Luke Aikman

Related Q & A:

Just Added Q & A:

Find solution

For every problem there is a solution! Proved by Solucija.

  • Got an issue and looking for advice?

  • Ask Solucija to search every corner of the Web for help.

  • Get workable solutions and helpful tips in a moment.

Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.