In today's world, we are all heavily reliant on various software products that were carefully programmed by developers. But what is computer programming?

In this article, I will provide a definition of programming, as well as examples of different types of programmers. I will also suggest a list of courses you can take to start learning how to code.

Definition of programming

A computer program consists of code that is executed on a computer to perform particular tasks. This code is written by programmers.

Programming is the process of giving machines a set of instructions that describe how a program should be carried out. Programmers will spend their whole careers learning a variety of programming languages and tools so they can effectively build computer programs.

Programmers will start by using a code editor or IDE to write what is called source code. This is a collection of code written in a programming language that other programmers can read.

Source code needs to be converted into machine language so machines can understand the instructions and execute the program. This process of converting source code into machine language is known as compiling.

Examples of compiled programming languages would be C and C++.

There are other languages that do not use compilers. Instead, these languages will use an interpreter that will read and execute the code.

Examples of interpreted programming languages would be JavaScript and PHP.

Once the code is executed, then the computer program can run. The different types of computer programs include Word processors, Database systems, video games, and websites.

These computer programs allow us to interactive with different software devices and services like phones, websites, and the computers themselves.

History of Programming

Many historians believe Ada Lovelace was the first to create a published computer program in the mid 19th century. She was a mathematician who translated Luigi Federico Menabrea's writings on the Analytical Engine.

In this translation, Ada had added her own extensive notes and created a method for calculating Bernoulli numbers for the Analytical Engine.

The work of mathematician Alonzo Church as well as the Turing machine were the first introductions of computer codes.

In the 1920's, computers were created which was followed by the earliest programming languages. For the next century, as machines and technology continued to evolve, so did the number of programming languages.

Types of programming languages

There are hundreds of programming languages in existence. Developers will first consider the needs of the application so they can decide which languages would be appropriate to use.

Here are a few popular programming languages.  

  • Python
  • JavaScript
  • C/C++
  • Java
  • C#
  • Ruby
  • PHP

Some of these languages are primarily used in one field of development while others are more general purpose programming languages.

JavaScript is primarily used in web development and is usually the first programming language learned by beginner web developers. JavaScript can also be used for mobile and game development.

Python can be used in a variety of areas like data analysis, machine learning, and web development.

Programming languages are  grouped in a variety of categories. Here is a list of some of the categories.

  • Machine language – a low level language that consist of 0's and 1's (binary). High level languages are compiled into machine code so the code can be executed by the computer.
  • Assembly language – a low level language that is compiled by an assembler. Assemblers translate human code to machine code.
  • Procedural languages – this approach goes through a series of procedures before a program is executed on the computer. (For example, Go and Julia)
  • Scripting languages – these languages often times don't need to be compiled but rather interpreted. Interpreted means an interpreter will read and execute the code instead of being compiled into machine code. (For example, JavaScript and PHP)
  • Functional languages – this works with the idea of building complex programs through a collection of smaller functions. (For example, Haskell and Scala)
  • Object-oriented languages – this works with the idea of building programs around collections of objects. (For example, Java and Python)

There are many more software paradigms and languages to explore that we didn't cover in this article. But this should give you a good start into the various types of programing languages out there.

Types of programming jobs

There are many types of programming jobs that you can choose from. This article will just focus on a few areas.

Web developer

These types of programmers build applications for the web. They will work with languages like HTML, CSS, JavaScript, PHP, Python, and more.

There are plenty of courses that you can take online to teach yourself. You can also go through a bootcamp which entails months of intensive study.  

Salaries will differ between locations but they tend to be high paying jobs.

Here are some resources to look into if you are interested in this field.

Mobile developer

These types of developers build applications for mobile devices. Programming languages will include React Native, Swift, Flutter, Java, and Kotlin.

There are plenty of courses that you can take online to teach yourself. Salaries will differ between locations but they tend to be high paying jobs.

Here are some resources to look into if you are interested in this field.

Game Development

These programmers will build custom games for mobile, desktop and game console use. Programming languages can include, C++, C# and Lua.

These programmers will work for small independent game studios as well as larger international companies like Sony.

There are plenty of courses that you can take online to teach yourself. Salaries will differ between locations but they tend to be high paying jobs.

Here are some resources to look into if you are interested in this field.

Computer Systems Engineer

This profession combines computer science and engineering to work on complex business applications.  Programming languages will include Python, Java and C++.

The typical educational path would be a formal bachelor's degree in computer science. Salaries will tend to be in the six figures.

Skills programmers should have

A professional programmer will have a variety of responsibilities when it comes to building computer programs.

Here are some of the important skills needed in programming.

  • Writing clean and efficient code
  • Problem solving
  • Testing applications
  • Fixing errors ("bugs") in the code
  • Good communication and listening skills
  • Ability to work well within a team
  • Patience and perseverance

It is the job of a programmer to take the needs of the client and create a solid working application. Developers will spend a lot of time researching, building, fixing and testing their code.

After the application is released, developers will spend time maintaining the product and working to make it better.

Conclusion

Computer programming can be a very rewarding career both intellectually and financially. Programmers need to be willing to learn new things and solve complex problems.

There are many different fields of programming to explore like Web, mobile, game development or systems engineer. Some fields will require formal education while others are open to self taught programmers.

I hope you enjoyed this article and best of luck on your programming journey.