What Programming Language Should I Learn?

This is a fairly subjective question, much like asking “Should I learn Spanish, French or German if I want to be an interpreter?” It’s difficult to answer without knowing something about what you’d like your career to look like once you become a programmer.
Because you’re likely reading this ebook with minimal knowledge of programming languages, I don’t want to throw out 25 language possibilities for you to learn.
There are groups of languages based on the Software Development Worlds I listed above. In general (note: I’m making sweeping generalizations and choosing the most popular languages simply to cut down on confusion):
- Desktop products are typically written in C++, C#, VB.NET, or Java
- Web applications are typically written in ASP.NET, PHP, Ruby on Rails, or Java
- Corporate development typically uses either the Desktop or Web languages, or both
- Embedded software typically uses a specialized version of C or C++
- Game development typically uses C++ (and more recently, C#)
- Consulting and Freelance work tend to be done in the Desktop and Web languages
Since there is a lot of language crossover between the worlds, I’m going to assume that one of your higher priorities is to get a job in most developed parts of the world, and that you want to invest your time into learning a language that will continue to show job growth over the next several years. Following that logic and the opinion of many people in the software industry (including me), desktop application development is dying. It’s not dead yet, but for the most part, web languages are the direction to head for future growth. Web programming is a growth industry, and it’s going to be around for a long time. With that in mind, here are the major web languages:
ASP.NET
ASP.NET is my platform of choice (C# and VB.NET to be specific). ASP.NET runs on Windows and the IIS web server (included with Windows). You use Visual Studio to develop, and typically use a SQL Server database ((free versions of both tools are available).This is the route I would recommend only because it’s easy to start developing if you have a Windows computer, and it allows you to work for large enterprises, small companies, web product companies, or yourself. There are many, many .NET jobs available and .NET is one of the most popular programming platforms in the world.
PHP
PHP is an open source scripting language, and one of the only other languages you should consider. It’s great for building websites using free tools. It runs on the Apache web server, and typically uses a MySQL database (both are open source).There are many PHP jobs out there, but not as many high-paying jobs as .NET developers. As an aside, enterprises are more likely to use .NET or Java, while startups are more likely to use PHP or Ruby on Rails.
Ruby (on Rails)
Ruby on Rails is a cool, new web 2.0 framework. Ruby is the programming language, Rails is a framework that allows you to build web applications super fast. It’s not being taken seriously by too many large companies, but due to the speed of development, startups are using it left and right.Java
Java is an open-source enterprise language that’s owned by Sun. You can develop desktop or web applications using it, but Java is losing ground to PHP and Ruby on Rails on the startup front, and .NET on the enterprise (large company) front.ColdFusion
ColdFusion is owned by Macromedia (now Adobe). It’s more for designers, but it’s an easy scripting language that integrates well with Java. I wouldn't bother learning it; it’s been on its way out for a while.Perl
Perl is an old open source text parsing language. It’s still used here and then, but it’s much more of a language for back-end maintenance scripts. You'd be nuts to build a new website using it these days.If being gainfully employed is your goal, becoming a web developer is, in this developer’s opinion, the best approach. There are tons of ASP.NET, PHP and Java jobs out there (and more Ruby on Rails jobs every day).
Ruby on Rails development is hot (and also a lot of fun). If I were starting out I would build a crazy cool project in C#/ASP.NET or Ruby on Rails, and leverage that to get my first programming job. Before you decide on which language to learn, look at Dice for your area and figure out which languages are in high demand, and what type of company you’d like to work for.
If you know for sure that you would rather become a game programmer, learn Microsoft’s XNA, which is an introductory platform for making games that run on Windows and the Xbox 360. As a game programmer you will eventually need to learn C++, but I would not attempt to learn it as my first language.
Comments
Post a Comment