Hundreds of different programming languages and tools have been developed over the years. Why so many? There are several reasons for this but the most basic one is that not all software is alike so we should try creating it using the “right tool for the job”.

We have different priorities for different kinds of software. Reliability, speed to develop, speed to execute, easy to upgrade.   Sometimes we want to develop a business or mobile app as quickly as possible to automate a task, sometimes we want to create software to autopilot a plane as safely as possible.  The reality is that these priorities often conflict with one another.  The easiest programming language and set of technologies (stack) to develop a website quickly is not the same set of technologies that will allow us to create the most reliable self-driving car.

You will likely learn at least two or three languages throughout your study or career.  What can inform your choice of course direction is knowing a bit more about what each of our main programming languages are often used for professionally.  Please note, not all uses would be covered on a particular course in that language.

Simon Grogan – eTutor

Hover over each box to learn more.


is often used for...

Learning programming concepts

Small to medium scale desktop apps

Small to medium scale web applications

Data science / analytics

Data visualisation

Artificial Intelligence (AI) / Machine Learning (ML)

Internet of Things (IoT)

Network automation and scripting

Infrastructure as a Platform (IaaP) scripting

Software testing automation

Single-board programming (e.g., Raspberry Pi)


is often used for...

Web page development (JS manipulates HTML and CSS)

Front end web development

back end web development through frameworks (e.g., Node, Express)

Data visualisation (e.g, D3.js)

Browser extensions


is often used for...

Medium to large back end web development (Java EE, Spring)

Medium to large distributed enterprise applications

Android applications


is often used for...

Microsoft’s flagship language on their “.NET framework”

Windows desktop programs covering all Windows devices including touch screens and Surface.

Any scale of web apps (with ASP .NET framework)

Game development (with Unity and other game engines)

Cross platform Mobile apps for Android and iOS (with Xamarin framework)

If you have an idea what area of software development you want to pursue, then there may be more specific information to be sought, but when people ask me which language they should start with, my (very) general advice is this: 

“If you know your goal is to create websites or web apps, then you should start with HTML, then add CSS, then add JavaScript.  For all other programming goals, or if you’re not sure what you want to program yet – start with Python.”