How to Start in Software Development?

Update: 2018-09-12 19:18 IST

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?

Programming Languages:
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.

Web Development:
First, we have web development, where the software is divided into front-end and back-end. 

Frontend:
Front-end is what the user sees, what runs on your computer inside your browser. 

The front-end requires a knowledge of three languages: HTML, CSS, and Javascript. HTML is not a general purpose language, it's a domain specific language used for creating the elements of a web page. CSS is used as a set of rules to apply styling and formatting the HTML page so it's not really a programming language. Javascript is what brings an HTML to life and makes it do all the cool features of the web today.

Javascript is currently the most dominant programming language and you'll see that it's being used in the other fields we'll mention later on.

Backend:
The back-end is what runs on the web site's server, which is the computer where the code for the website is located. The backend, for the most part, is responsible for supplying data to the frontend and dealing with the databases and different database systems. There are many languages used in the backend, the most common ones are Javascript, PHP, Ruby, and Python. The easiest, to begin with, is Ruby since it's super developer friendly. Python is also a powerful language that's used in many different fields and it's pretty much easy to pick up as well. Keep in mind that all these languages are general purpose languages, and whichever website you'd love to build can be built with these technologies.

Mobile Development:
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.

Recently, you can actually make an Android and an IOS application off the same code without having to know these languages by using what's known as hybrid frameworks that utilize Javascript.

Game Development:
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:
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. 

However, there are many other languages that you can use if you learned Javascript for web development you can still use it in machine learning, C++, C#, Java, R can all be used to create machine learning applications.

Ethical Hacking:
If you want to get into ethical hacking and security in general, then things might be a little tricky You'll need to know and understand a few languages and not only that but also understand how the systems work, how communication is made between software pieces and where vulnerabilities might be. Java, Python, Ruby, C++, and Javascript are among the languages that you could learn to start a journey in this field.

Data Science:
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.
 

Tags:    

Similar News