Interested in reading this amazing post all about the basics of programming languages? Check it out over on CodeMentor.io.
It’s not news that STEM talents are in great demand and are paid well. Online postings for software jobs across the U.S. grew 31% from 2007 to 2012 – nearly 3x faster than overall job postings. The US Bureau of Labor Statistics estimates software developer jobs to continue to grow at 22% from 2012~2022, with a median pay of $95,510 for software app developers as of May 2014.
If you’re looking to learn how to code, the sheer number of programming languages may be overwhelming – what language should you indeed learn? This article hopes to give you some pointers by comparing the salary, popularity, and prospective future associated with different programming languages.
Statically Typed Languages
Apps built with statically typed languages are known to be more scalable, stable, and maintainable. Static languages are usually more strict with catching errors through type checking, and it takes more code to build a prototype. Game engines, mobile apps, and enterprise-level backends are usually built with statically typed languages.
As a general-purpose language, Java is used to build Android apps, desktop apps, and games. Java is also commonly used as a server-side language for enterprise-level backend development – 90 percent of Fortune 500 companies use Java.
Furthermore, Hadoop is a popular Java-based framework used for storing and processing big data, and is implemented by enterprises such as Yahoo, Facebook, and Amazon Web Services.
C is often used to program system software and is the lingua franca of Operating Systems.
C has influenced almost all programming languages we’ll be examining in this article, especially Objective-C and C++. So, if you know C well, you’d probably have less difficulty picking up other popular languages. Since C takes more complex code to perform simple tasks, beginners may find it tough to keep themselves motivated if they choose it as their first language. However, knowledge of C will definitely help you as a programmer.
Objective-C / Swift (for iOS development)
Objective-C is a layer built on the C language, making it static, but it can also be used for dynamic typing. Apple’s Swift is a static language designed to be compatible with Objective-C, but its static-typing makes it more resilient to errors.
Inspired by Python, Swift aims to be easy for coding newbies to pick up, and has been designed to fix some of the issues of Objective-C.
C++ is a powerful language based on C. It is designed for programming systems software, but has also been used to build games/game engines, desktop apps, mobile apps, and web apps. C++ is powerful and fast, so even Facebook has developed several high performance and high reliability components with it.
Many pieces of software have been built with C++, including Adobe Systems, Amazon, Paypal, Chrome, and more. Much like C, C++ is generally considered harder for beginners to learn on their own, so if you decide to learn C++ as your first language, feel free to look for a mentor via Meetups or find a C++ Codementor.
C# (“C Sharp”) is developed to be used for Microsoft’s .NET framework, which runs primarily on Microsoft Windows.
C# is used for web development, game development, and general Microsoft development. Although Microsoft was not known for being cross-platform compatible in the past, Xamarin has been working on an open-source project called Mono, which aims to port C# to other platforms and bring better development tools to Linux developers. Recently you can also use C# to build native mobile apps for iOS and Android through Xamarin.
SQL (“Sequel”), or Structured Query Language, is a query language used to communicate with databases. Although SQL cannot be used to build apps, it is used to manage the data in apps that use relational database manage systems (RDMS).