There are many ways to pick what programming language to use in a project or which one to learn and dedicate ones career to. Most programmers are naturally techie people who loves to argue for hours about the merits of certain syntax of a particular language or programming style.
But I think that’s the wrong way of approaching the question. Instead you should ask the more fundamental question: where do I want to work for the rest of my life?
They don’t tell you this in school, but there’s a certain organizational personality connected to each language. For example:
- C++. Very techie, if you want to work in the engineering department in a large industrial company, pick C++. Also the language of choice for most games.
- Java EE. Software architects love Java EE. It is used mostly in the financial world, banks, insurance companies, large web sites usually use Java. If you enjoy writing PTS reports and working in a cubicle, pick Java. Expect to spend a lot of time going through huge log files with debug exception print-outs.
- C. Also very techie and close to hardware. There are usually wires and expensive prototype equipment involved when you program C. Expect to spend a lot of time chasing memory leaks or optimizing code to fit in to a finger nail.
- PHP. Rapid development of web sites, pretty common amongst web hackers, startups and PR agencyes building WordPress sites for customers who wants to “get in to social media”. Usually a fun and relaxing atmosphere – or total chaos depending on your point of view. Many PHP programmers are self-taught – and that shows.
- Ruby. This is the smarter sibling of PHP. Common in startup environments or web agencys.
- Scala. Java EE refreshed. You can probably get away with using Scala in a Java organization, making your life in the cubicle a little less miserable but don’t count on it showing up in a job ad – yet.
- Java SE / Java ME / Android Java. A completely different beast than Java EE. Java SE on the desktop is hardly used anymore but Java on mobile phones is of course a growing opportunity. Java ME is a dying breed of Java and most of the development is done in India or Eastern Europe. Android Java will be huge the coming years and the kind of organization that will want Android developers is wide and varied.
These are just a few programming languages but I hope my point goes through: every language has a certain personality and a certain type of organization that uses the language. You have to pick a language that fits your own personality. I am myself a Java developer who started out as a C++ developer but now coming to realize that I actually like the more fast paced world of PHP and Android development better.
It’s not a matter of the powers of the languages themselves but how they are used and who uses them and what kind of projects will you be doing with the language. Just try to keep that in mind if you’re thinking about becoming a programmer.
I should also add that you definitely should learn more than one language for precisely the same reason: to learn different ways of thinking and widen your perspective.
Update: as always, good discussion on Hacker News.
7 thoughts on “Picking a programming language based on personality”
Pingback: Tweets that mention Picking a programming language based on personality -- Topsy.com
Du glömde Cobol, det är det mest använda programspråket i det globala finansiella systemet och det är ett stort och komplext system. Kvantar som programmerar algoritmer och avancerade handelssystem gör det nog med C idag dock.
“The statistics that surround Cobol attest to its huge influence upon the business and financial world. There are over 220 billion lines of Cobol in existence, a figure that equates to around 80% of the world’s actively used code. There are estimated to be over a million Cobol programmers in the world today. Most impressive perhaps, is that 200 times as many Cobol transactions take place each day than Google searches – a figure that puts the influence of Web 2.0 into stark perspective. “
Pingback: Posts about Programming from google blogs as of April 28, 2010 « tryfly.com
Very interesting post and comments. I wonder what do you think about other languages, like C#, Python, not mentioning new and fast growing languages like Go.
This is the best side of programming argument I have ever liked. Which language is the best over other depend highly not only on the project but the person or the group involved and the personality of those individuals.
Pingback: Working as a programmer in Sweden