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.
Pythonis often used for...
Learning programming concepts
Small to medium scale desktop apps
Small to medium scale web applications
Data science / analytics
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)
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)
Javais often used for...
Medium to large back end web development (Java EE, Spring)
Medium to large distributed enterprise applications
C#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: