What is Programming? What are the types of computer programs — 2020 introduction

Mohammed S. Hassan
7 min readMay 8, 2020

What we are going to cover in this article:

  • What is programming?
  • What is a program, software, or app?
  • Why we build programs in the first place.
  • Types of computer software.
  • Generally how computers programs are built.
  • Programming languages that are used to build different types of computer software.

What is programming?

Programming is making computer programs. Yes, it is that simple. But if you are a fan of long definitions, here is Wikipedia’s definition for programming:

The process of designing and building an executable computer program to accomplish a specific computing result.

I’m confident that you did not come here for just that simple clear information so yes, let’s get into it.

What is a program?

A program is a tool you build using a programming language to accomplish specific results or solve problems.

So for example, tons of years ago, banks suffered from having many people coming to branches. They wanted to allow their clients to make most of the banking transactions from ATMs in the streets 24 hours. And for that reason, they build a computer program to be used on a machine (ATM) to allow their clients to check balance, make withdraw, deposit money, transfer, and so on. Same idea with the mobile phone banking apps.

So this is an example of a program that was built to solve a problem.

Here is another example,

Many years back, some people wanted to find a way to help humans communicate better and in a much easier way, so came up the beautiful instant messaging and chatting applications like Telegram, Whatsapp, and Discord.

More examples:

Google created Google Docs to help people write documents in a fantastic and more collaborative way. Google also helps all the world finding information online using their Google.com search engine.

Adobe and Gimp offer the world beautiful tools to edit and design beautiful images.

Many programs can be found on other devices too. Like blood pressure devices, washing machines, traffics lighting system, and many many more.

I guess you get the idea.

People build programs to help them do some tasks or solve certain problems.

Type of computer programs

The examples we mentioned earlier represents almost all the types of computer application programs.

Desktop Apps

Built to run on your computer with the help of an operating system (like windows, Linux, or Mac OS). It does need any other tools to run with or over.

Microsoft Office (Word, Excel, PowerPoint,…), Adobe Photoshop, GIMP, Calculator, Solitaire game, Chrome, Firefox, Itunes app, Pages app are all examples of desktop applications.

Web Apps

Needs web server to run on and a client browser app for you to access.

Think of a web server as a computer placed somewhere. Programmers create web applications and put them on that server (same as you put files on your computer). These servers, however, are public on the internet and you can access them by using a browser app (like chrome or firefox). So you open your chrome browser, write the address of this web application (example. medium.com), the webserver gets the content of that website and serves it to you.

*There are many details in the process but it is out of the scope now as we are learning the basic concepts here.

Mobile Apps

Those are computer programs built to run on your phone devices with the help of a mobile operating system like Android and iOS.

And don’t get me wrong here about say “Computer Programs”. A computer is anything that computes. So your phone, your desktop PC, your laptop, even your dishwashing machine (part of it) are considered computers here.

Whatsapp, Facebook App on your phone, Telegram, Dialer app, Camera apps, and tons of others are all examples of mobile apps.

Embedded Apps

Embedded apps (most commonly referred to as embedded software) are the type of programs that runs on a hardware circuit or chip and usually intended to do 1 task forever.

Examples are the programs on your dishwashing machine board, the control ship that opens your garage with a button click, the software on your microwave with which you set the program and timer, and so on.

Operating Systems

Microsoft Windows 10, Linux, Mac OS, Android, and iOS are operating systems. They are not apps.

Software, Program, or App?

By now, some of you might got confused about the terms. Is it software, program, r app. Let’s clear that confusion a bit.

Software (same as Program)

The most general word that could be called at any program or app written for any purpose. Remember your basic computing course when teachers divided computer components into 2 parts: Computer hardware and Computer Software. Yes, it is that general. Operating systems and apps of all the types we mentioned before can be called a program or software.

Application (same as App)

A more specific type of software that’s built to be used for a certain purpose on a certain type of operating system or hardware. Like building a Facebook mobile app to be used on Android or iPhone or a calculator app to be used on Windows only.

How computer programs are built?

We started by defining programming as building computer programs and knew the types of programs we can build. To build such programs you need to learn and use a programming language alongside with some tools.

What is a programming language?

It is an artificial language that, like natural language, have some syntax and semantic rules and can be converted to the only language that computer can talk, binary language (0101010101010). You probably have heard of C, C++, Java, C#, F#, Kotlin, Python, PHP, and many more. They are all examples of programming languages.

Which programming language for what purpose?

Each programming language used to build or more types of applications. Here are some examples based on the type of applications we mentioned earlier.

Web Apps

To build web applications you will need to learn one or more of the following. There are many more languages out there but the following are some examples to name a few in each category.

Frontend (client-side)

The part of the web application that builds what you usually see when you open a website or web application. The colors, layouts, images, input fields, and so on.

  • HTML, CSS and JavaScript
  • Bootstrap, Angular, Vue

Backend (server-side)

The part of the web application that you normally don’t see. Like the part responsible for checking your username and password if they are correct or not then connect to the database and get your data.

  • PHP
  • Python
  • Java EE
  • ASP.NET

Desktop Apps

  • Java SE
  • C#
  • C++ & Qt
  • Python

Mobile Apps

Android

  • Java, Kotlin, Dart

iOS

  • Swift, Objective C, Dart

For both platforms (hyperid or cross-platform frameworks)

  • Flutter, React Native, Xamirin, Ionic ,..

Embedded Systems

  • C
  • C++
  • Jave (sometimes)

What about tools?

Depends on the language you will need a set of tools to help you. Like an editor to help write the code, a compiler or an interpreter tool to convert the code you write to the code computer understands (010011010).

IDE (Integrated Development Environment)

An all-in-one tool that combines many tools and provides you one single interface for developing your applications.

  • Netbeans
  • Intelij IDEA
  • Visual Studio

Other tools

  • Local Webserver (for testing web apps) like Apache
  • Simulator / Virtual devices (for testing mobile apps)

What’s next?

If you are excited to start your career in programming, and after reading this introduction, your next steps should be selecting which type of applications you are intending to build and search for it specifically then learn the language and tools required for building such apps.

Final Advice

Before selecting a web, mobile, or other tracks, and if you have no previous experience in programming, I’d suggest taking an introductory course in programming using an easy language (like c) to get your mindset ready about writing code and thinking logically of how to build small programs. Then you move from there.

Summary

We covered the following in this article.

  • What is programming
  • What is a program, software or app
  • Types of computer software
  • Generally how computers programs are built
  • Examples of programming languages that are used to build different types of computer software

Thank you!

Thanks for reading, hope it was useful enough for you. Feel free to follow me to get updates about my next articles.

--

--

Mohammed S. Hassan

Technical Product Manager | Lead Software Engineer |Instructor