What Programming Language Should I Learn?

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.

Reblog this post [with Zemanta]

152 thoughts on “What Programming Language Should I Learn?

  1. I’d recommend ‘Go’ as a starter language as it’s brand new accept it doesn’t really exist in the real sense except in some pixy imaginary sense. Can’t be downloaded and configure by me right now using command line args etc. Support is so poor that I’d avoid like the plagu – just another geekgasm that all spilled all over the carpet horrible – mess. If I have to build my own nails before I hammer them I’m not happy – the geekgasm movement is not helping.. AT ALL

    IMO, the solution is simple – look at the industry – not necessarily which web sites are biggest, but which are fastest, and most reliable and find out what they use. c c c c c
    For web, LAMP stuff is best


  2. If you want to learn programming from square one, and not get bad habits along the way then start with http://htdp.org/ and PLT Scheme. Once you are done you will know enough to then learn any other language and code properly in it.


Comments are closed.