Programming languages are a fundamental pillar of programming, everybody talks about them, there are tutorials everywhere of different languages and people are often debating which language is the best for a certain application. To gain a better understanding of what languages you should learn first to start your journey in the software world, we first need to understand a few things about programming languages. What are the programming languages anyway?
How to Start in Software Development?
If you remember the imitation game movie or know some information about the very earliest computers like the Colossus, you’d know that these computers were working without coding programs. Instead, the functionalities and tasks were wired up directly, which didn’t allow for much room for general tasks. The next game changer was machine language, which was a set of instructions written directly to the CPU to perform certain tasks.
However, writing complex programs with machine language is notoriously hard, and comes with many challenges as it’s a strictly numeric language. We still use machine language today, but without writing it. Rather, we write code in a simpler language, a programming language, and that code we write gets translated by special pieces of software - depending on the language- to machine language.
Programming languages also are composed of a set of keywords or instructions that need to be written in a certain way, a syntax specific to each language.
There are a few keywords that you’ll hear in conjunction with language definitions so let’s explain these.
A general purpose language is a programming language that is used for a variety of domains, C/C++, for example, can be used to create games or to create websites. A domain specific language is one that is made for strictly one domain and doesn’t go beyond that. If you are looking to find good online programming tutorials/courses then Hackr.io is a good place to find those including C++ or C tutorials.
A strongly typed language is one that requires you to define the types of data you’re using in your program. If a certain piece of software will receive data, it needs to know if it is a number or a text or a list of numbers, etc On the other hand, weakly typed languages do not care about the types, as they can infer the type from the data itself. This is also referred to as static languages for strongly typed and dynamic languages for weakly typed.
So let’s get into the different fields of software and explain more details about the languages they use.
First, we have web development, where the software is divided into front-end and back-end.
Front-end is what the user sees, what runs on your computer inside your browser.
Next, there’s mobile development, which is mainly split between the realms of Android and IOS. If you want to create mobile apps you’d need to know Java or Kotlin. Java has been the dominant language for quite some time in different fields, Kotlin is known to be easier, but if you’re a Java fan or ever wished to learn then don’t hesitate to. To build IOS applications, you need to learn a programming language like Objective-c which is a part of the C languages family or use the younger and easier alternative, Swift.
Game development is an interesting field and includes making games for the mobile, the pc, PlayStation, etc. There are many languages used in making games, but the most dominant ones are C++, C#, and Lua. Game development requires fast execution of code to produce high performance in games and create the best in-game experiences, which is why C++ and C# are so good at it since they are among the fastest programming languages out there.
Machine learning is one of the hottest fields right now, it’s the field involved in creating artificial intelligence applications and leverage that power in various business fields. Machine learning is the branch of artificial intelligence that attempts to make the computer able to learn and make decisions on its own rather than being hardcoded like in the fields mentioned before.
The most dominant language in the machine learning field is Python since it’s really easy to pick and learn and the syntax is fairly easy which allows it to be adopted easily by researchers and scientists who are not involved in programming.
Data Science is a pretty famous field and it’s closely related to machine learning. Python is one of the most popular languages used in data science as well, but R is also a popular language. You’d also need to be at familiar with the concepts of SQL. SQL is a domain specific language that deals with data.