What Programming Language Should I Learn?

Written by robdiana

As I do my professional and personal work, I am always looking for the best tool for the job. In software development, there are several programming languages that can be used for a wide variety of reasons. I am often asked by people new to software development what is the best language to learn. They get confused when I ask them what they plan on doing. The reason is that people think there is going to be a best language for everything. However, everyone knows that there is no silver bullet. On the other hand, there are some languages which are better suited or more widely used in specific areas. So, given that idea, I came up with a list.

Enterprise Software DevelopmentJava is typically used in this space as people are moving many administrative applications to an intranet.

Windows DevelopmentC# should be used for any Windows development, this includes anything interface with the Microsoft Office Suite. Don’t tell me about POI for Java, I have used it, but the native libraries kick POI’s ass.

Rapid web prototyping and anything WordPressPHP is really good for rapid prototyping what a web site should act like. It may even qualify as v1.0 for your site. It may not be a good long term solution and there are better options for large-scale development. It is also the main language for anything related to WordPress.

Web Prototype with a backbonePython has quickly gained acceptance as the “next step” after PHP. Many current web applications use Python extensively. Adoption will continue as more services natively support Python like Google’s AppEngine.

General Web Development(X)HTML, CSS and Javascript must be in your toolbox for any significant web development. If you try to remain standards compliant (which you should) then you need to look at the XHTML standards.

Data IntegrationXML and JSON are the main data interchange formats on the web and in corporate development. With XML, there are various syndication formats (likely the subject of another post) and other business format standards to review.

DatabasesSQL is critical to almost any application. If you learn standard SQL, then you can translate this to almost any database product on the market especially the popular engines like Microsoft SQLServer, Oracle, DB2, MySQL.

Toolbox – Every programmer should be able to do more than just program in one language. In addition, there are many scripting tools that can be part of your toolbox which can make you extra productive. Cygwin is a Unix shell that you can install on Windows, and I can not live without it. Unix scripting is very powerful when dealing with batch processing of files or even just interacting with the file system. Perl, the Pathetically Eclectic Rubbish Lister, is another language that can be used for web development, but it really shines when dealing with file and text processing.

I know I have ignored various tools and languages, but this is really just a starting point. In software development, it is always helpful to keep learning new things and new concepts. If you really want to stretch your mind, start working in Artificial Intelligence and programming in LISP, or do some logic programming in Prolog. If you feel really adventurous take a look at Standard ML. I am not sure what it is really useful for, but it is a completely different language than most.

20 thoughts on “What Programming Language Should I Learn?

  1. Frank Z

    I’m finding PHP to be great for creating an XML services server. I use it almost exclusively.

    I’d add ActionScript 3 up there for multimedia web work. There’s nothing better!

  2. doggy72

    Java and c++ is nice

    I would recommend python as first programming language though,
    then go to java or c++

  3. arvind singh

    are yaar.. i m getting confused ..which language should i learn…..plz helpabt

    php
    java
    dotnet
    sql
    c#

  4. James Sanders

    Arvind Singh – Don’t let “Realistically” discourage you; full comfort with English is not a prerequisite to learning a programming language, only a familiarity with it, which you have.

    +1 to Ruby, which is very similar to Python in its utility on the back end, and in my opinion has easier to learn web frameworks in Rails and Sinatra compared with Python’s Django and TurboGears. I say forget PHP, Python and Ruby are just as good for rapid prototyping and much better in every other way.

  5. Viz

    Hi Arvind,

    The article is guiding you well to learn which language for which purpose. I personally learnt PHP for web development 2 years ago because I found it was a boom and had many oppurtunities. And it turned out true. Just go with what is popular and liked by service buyers.

    As for general computer programming, I learnt C recently and can work with files and simple games. Also, with C you can build small Windows applications which have GUI similiar to all windows applications in Windows XP, Vista and 7.

    For Enterprise software programming, meaning, you have a small business or are targeting a business and would like to create an application that will connect all employees and director of the company but will not be visible to external world, it is good to learn Java language which has a platform built especially for it.

    I liked this tutorial. Thanks a lot.

Comments are closed.