
So you’re ready to learn a new programming language? You might be entirely new to the world of application development, in that case, welcome! Or you’ve might have been creating applications for years, but now you feel you’re ready for something new. Picking a programming language can be a daunting task. There are an enormous amount of options, hence this short and handy guide.
Note: This article is also available in Serbo-Croatian.

I created this flowchart after reading Seven Languages in Seven Weeks. I realized that the wealth of programming language choices might be the reason why few developers venture out of their familiar turf and try on a new language. So here’s your chance, pick your choice and work it!

75 Comments
Peter,
Obviously there are plenty of choices, possible additions to the chart:
- embedded devices: C
- mobile development: plenty of frameworks, e.g. http://www.appcelerator.com/
- web: php ref. http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Hey Dirk,
I totally forgot about embedded devices. C is definitely a good choice in that case, although I’ve seen C++ too (for instance the Arduino) It’s been a while since I worked with anything embedded though, so I’m sure I’m not a good reference
I’m a bit hesitant to advice any one to learn JavaScript. It’s an important language for sure, but is it something that will help you grow as a dev? I’m not sure. I have similar feelings towards PHP (it’s probably a good idea to add those two to the “job security” part of the chart).
JavaScript can definitely help you grow as a developer, in essence every programming language can. You can’t skip out on JavaScript and PHP because of that reason, simply because, although they have a high scriptkiddy level at some sort, they both embrace the most complex technical concepts, development methodologies and testing environments available to us as developers.
You miss crytical system (ADA…), processor design (VHDL…), IA (prolog / lisp…), sys admin (shell / powershell / perl), maths (MathLab…), legacy systems (Cobol / Fortran …), drivers and microcontrolers (asm…)
JS totally can help you grow as developer because of its cool OOP-like features and ability to easily use functional style
interesting.. php is not mentioned which is very popular on web env.
I probably should’ve expressed my comment a bit better. You’re quite right that JavaScript has a number of significant advantage over more “traditional” languages (e.g. Java). I have more than a few previous posts on JavaScript and I believe we haven’t seen the best of JavaScript yet.
Judging by much of the code that is available on the Internet (including my own, I’m afraid), there’s also a downside to JavaScript: it’s terribly easy to write very cluttered code with enough side effects to cause a Haskell programmer to go into cardiac arrest.
yep but RoR vs PHP…
no grails? should go hand in hand with familiarity and web.
Grails is a framework, the language is groovy.
i realise that, but writing Ruby for web is pretty weak…
Funny — by day I spend most of my time in JavaScript, digging my own grave with side effects. By night, I detox for a couple hours with Haskell. I’m not dead yet, though.
great post! i do think javascript is an important language to know for html5-style development, and also event-based programming on the web (a la node.js)
Really cool. Keep posting charts like this.
while RoR might be a nicer programming language, failing to mention PHP with regards to web is a massive omission, given the sheer number of sites built with PHP…
yeah but it isn’t actually a very good language. Hence the recommendation of Ruby
Also RoR isn’t a programming language. It’s a web framework for Ruby.
VB
Ruby is not that better.
If you want job security, PHP is pretty much the only safe bet in the web.
cool post but you missed “Scientific Programming” for which Fortran (77, 90, 2003,….) is mostly used
What kind of flow chart is this?
You guys are taking this chart too seriously.
sure – I know RoR isn’t a language, but when folks talk about Ruby, it’s generally in the context of Rails
No it’s not. Ruby enables Rails and Groovy enables Grails.
No F#? I am disappoint.
Haha. So much is wrong. Lua isnt a programming language. JS xD
haha I learn c++ after objective c and cocoa.
obviously ruby was written for web just because of rails… 1+1=2?
i would argue ruby isnt a good language. it’s all opinion.
where is prolog o-o
You’re a fucking idiot and don’t know what programming is.
You’re a fail troll and a fucking tool.
Job Security, not a better language. Herp derp you tool.
chill. this post has obviously brought out a lot of strong opinions but there is no need for that
Many many thanks… I wanna learn “RUBY”
You miss Desktop development. using languages like Delphi and C++
Everyone, lets try and keep the discussion civilized. I’ve had to remove a few comments that weren’t appropriate.
It could be interesting if you try to explain why you prefer a language. I know it isn’t always easy and a lot comes down to personal choice.
For example, are there other reasons besides job security to choose PHP over Ruby? I have to admit I only have limited experience with PHP. I’ve written a basic CRUD application, created small WordPress plugins, tried to create Drupal plugins and have also seen code based on the Zend framework (never written any). I thought the Zend code was very clear, but a little lengthy (something that really bothers me in Java).
Does PHP have certain language features that set it apart from Ruby?
>I realized that the wealth of programming language choices
>might be the reason why few developers venture out of their
>familiar turf and try on a new language.
I’m a software developer and have been programming for fun since my teens.
However, I didn’t program because I loved any language but because of what I was programming, such as learning 3D graphics in QBASIC in my teens, writing physics simulations, games, utilities etc.
I’d try a new language if there was a market for it but I definitely won’t be wasting my time learning programming language as a hobby, there’s just so many better things to do, such learning to play a piano or learn a foreign language. Or becoming involved in a sport, etc.
There’s no best computer language, the power is relative to its developer.
Works on every platform but not well known…. haXe.
It compiles to Flash/JS/PHP/C++/Neko, and C#/Java coming soon
No Visual FoxPro?!
It’s good =)
But now you need to add “Did you learn Qt?” => “any .NET”
I often see this question asked from an academic context. This is a VHS vs Betamax question (or Xbox 360 vs PS3). PHP is an ugly language (object notation = ->? yuk).
The technical merits of a language are of little consequence if you can’t find a job writing it (which will ultimately result in the language becoming irrelevant – beautiful but irrelevant). English isn’t the most elegant language in the world, but accidents of fate have led to it’s supremacy as the global lingua franca.
So when asked “what language should I learn next re: web dev” – to exclude PHP, arguably the “english|VHS|X360″ of the web is a major oversight from a commercial perspective. From an academic perspective, Ruby and Python are undoubtedly far more elegant (although personally I think Python has a broader scope)
Power Builder still kicks a$$
Ruby written just for web? No. Written just to be a pure OO scripting language. Rails came after. Hey that reminds me, any place for Smalltalk and (ugh) Perl?
I second Richard Minerich disappointed! Where is F#?!
By the way, it’s a fun chart. I say grow it until it is all encompassing and takes over the world.
Well, I love this flowchart as, after answering No to everything else, I got to the bottom and found, to my delight, the very languages I’ve already focused my radar on: Haskell and Python.
I prefer VBA…especially for calculation intensive apps
Please update your chart (yes, that means 8 weeks) to include C / C++ for Embedded (very cool robotics stuff!) and PHP/JavaScript for Job Security = Web. Then we can slashdot your site…
I don’t think PHP has anything that Ruby doesn’t, though I know very little Ruby so far. I do know you can do a lot with PHP that people think you can’t; for instance I’ve worked on an intelligent distributed system which uses long running cli processes which are capable of shutting down gracefully and even recovering gracefully from fatal errors and getting themselves back up and running when appropriate (yes, without manual intervention,) and letting us know what happened if exiting is appropriate. PHP might not have been my first choice for this – I’d prefer C++ or Python – but we’re a primarily PHP based company, and there’s nothing we’ve wanted to do that we couldn’t do in PHP. The language is very capable as long as the programmer is very capable.
Most of what people say is bad about PHP is actually them not understanding the language and what it can do or judging it on the worst code they can find (as though bad English authors means James Joyce’s prose is also ugly,) or on what a standard website needs to do, which is such a tiny portion of its capabilities. Java’s syntax is uglier (it’s the ugliest language I’ve used, in my opinion,) and yet people agree it can be used to create good programs, so beauty is pretty much irrelevant to people who care about functionality first.
My PHP code is as well structured and readable as anyone’s C++ or Java or Python or what have you.
I’ve been learning how to write javascript properly, and even without jQuery etc it is amazing how good it actually is. It’s definitely helping me grow as a programmer, because of the use of closures, but I know you get those in other languages also so I wouldn’t say you have to learn it to learn anything particular.
Yes, it is easy to write crap javascript, and it is also easy to write crap PHP. Then again some of the crappiest code I have ever seen was in C, C++ and Java. There was a C++ program that had memory leaks, but was so badly written we couldn’t fix it and we just rewrote from scratch and had no memory leaks and beautiful easily maintainable code.
If nothing else, doing Javascript or PHP as a first language is actually a great way to teach someone to write good code, because the languages don’t force you to, you have to *want* to.
How about APL? Do a whole web site in one indecipherable line. Even better than Perl.
I don’t see JavaScript at all there, should I say that with it, you can develop very easy and fast web applications, extensions for FireFox and Chrome ?
DB Programming = OpenEdge from Progress.
My pick for this year :
More Java stuff(Android for Mobile, Scala (and Lift) for the web),
More ActionScript and JavaScript (just cause they both rock)
Hello friends, I am new to programing. I have learnt C language and learning C++ & java now.
Please suggest me which language will be best for me to learn and are reqired to make a career.
PHP,JAVA,python,ruby or asp.net/c#.net?
I am not able to decide.
Please help me.
thats right
Perl is the write only language. APL does everything above board.
nice option will be there
Not sure why Ruby is considered to be a better language to learn for web developer then python. Just take a look at trends and you’ll see the reality: http://www.google.com/trends?q=django,+ruby+on+rails&ctab=0&geo=all&date=all&sort=0
People always under estimate the power of C#. Have you look into C# 4.0?
Try some of the old languages as 4TRAN is still used and is increasing same with cobolt, Progess, 4glp (mainframe), they have been turned into dotnet app (easy to download to learn). Learn technique, not a language. As for PHP, ASP, RoR they all have good and bad points and I prefer PHP.
It’s sad that there is no mention of javascript. as more n more things are going to web js will play a dominant role
Want to work on Linux and need a language to make chores easier -> perl?
Wonderful post.
It engaged conversation and probably triggered developers and enthusiasts to check what others are using for any sake – not just commercial.
PHP is indeed missing from this chart for being practical, extendable, useful and community oriented.
I do not know any other scripting language with so many frameworks (big and small), forums, blogs, online reference comments and examples, and most important developers from all levels and server deployments.
PHP for business (and lots of it), Python when possible.
The English analogy is hilarious (and true).
Thanks Marcus
Amusing to see how wrong one could be… Lua is a programming language, for sure, and one of the bests in its category.
am in interested in software development ans web applications please can you give me a tip or steps i need to develop the skills. am currently studying computer engineering please i will glad to receive your advice.
C-Net 0.5 Codename : “WinChester”
http://twitter.com/stevedbs/
Languages are like guns – everyone likes the one that kills what they are hunting. PHP is widely used, but not a good entry option. Javascript is similar to Java which is similar to C# which is similar to C-whatever. Everyone needs a solid compiled language and a solid interpreted language. after that , use whatever language solves the problem.
Thanks for the great post, Peter!
For mobile development, I would add C# since it can be used for iOS (monotouch), Android (monodroid), and also for windows phone 7. It is one programming language supported in three different mobile platforms.
Although Microsoft supports only its own platform, the open source project Mono supports C# development in iOS, Android, Linux and MacOS.
Good tip, Rocha. I didn’t know C# can also be used on Android and iOS. Do you have any idea how feasible it is to use the same code across all devices?
Could you please post the joke version of this (funni-fied?)
It’s in a proof-of-concept stage. Unusable for anything.
As for PHP, ASP, RoR they all accept acceptable and bad credibility and I adopt C,C++.
toshiba coupon codes
10 Trackbacks
[...] This post was mentioned on Twitter by Jay Isaak and Shantanu Kumar, Toby Blanchard. Toby Blanchard said: What Programming Language to Learn (Next): So you're ready to learn a new programming language? You might be ent… http://bit.ly/ehsVh7 [...]
[...] En cette période désertique au niveau des billets, et avant de me rattraper puisque je suis bientôt en vacances pour deux semaines, je partage ici même un schéma (cliquez dessus pour l’agrandir)que je trouve génial et qui vous dira pour quel langage vous êtes fait si vous comptez en apprendre un prochainement, tiré du site streamhead. [...]
[...] 2011Seriously, what language you are hoping to pick up next (or what have you just started)?[via Streamhead]Related PostsAbout the Author /**/ Tom McFarlin Tom is a software engineer and web developer. He [...]
[...] hat schon vor einiger Zeit eine tolle Infografik veröffentlicht, die – wie der Name schon sagt – einem bei der Entscheidung hilft welche [...]
[...] What Programming Language to Learn (Next) [...]
[...] ?????? ??? ???????? ????? ?? ??????? ?????. ??? ?????? ?????? ??? ???????. → ?????? ??? 1 [...]
[...] ???????????????????????????????????????????????????????? [...]
[...] What Programming Language to Learn (Next) (tags: programming career development) [...]
[...] respuesta es depende de lo que quieras. Como podemos ver en What Programming Language to Learn (Next), depende de lo que quieras aprender ¿Escritorio, móvil o servidor?¿Tienes experiencia con otros [...]
[...] [via Streamhead] [...]