Programming
What is programming?
Programming is the process of developing computer programs that do certain tasks and is used in nearly every aspect of our lives. Programming differs from many other technical professions in that programmers do not need to be licensed or pass any certification tests in order to call themselves “programmers”.
Programmable devices have existed at least as far back as 1206 when the automata of Al-Jazari could produce various rhythms by moving around pegs.
The first computer program and therefore the first computer programmer dates back to 1843 when Ada Lovelace created the first algorithm for Charles Babbage’s early mechanical general-purpose computer.
Terminology
In programming, there are many specific terms that are used regularly.
- Bug – An error in coding that causes a program to produce incorrect results.
- Compiler – A program that takes the code you have written and translates it into machine-readable code.
- Debugging – The process of finding and fixing errors in the program.
- “Hello, World!” – A computer program that displays the text “Hello, World!”. Being a very simple program, it is often used to illustrate the basic syntax of a programming language.
- Syntax – The structure of statements in a computer language.
- Source code – A computer program is written in a high-level programming language that is converted into machine-readable code.
- Variable – A named storage location which can then be modified during program execution.
Quality requirements
To ensure that a program is of high quality, it should follow multiple quality requirements. Few of the most important are:
- Efficiency – how good is the program’s performance.
- Maintainability – how easy it is for programmers to fix bugs, add new features, etc.
- Reliability – how often the results of the program are correct.
- Robustness – how well does the program respond when it encounters errors like incorrect input or corrupt data.
- Security – how safe is the program from security hackers.
- Usability – how easy and intuitive it is to use the program.
Programming languages
A programming language is a computer language used to communicate instructions to a computer. Like natural languages, programming languages conform to a specific set of rules.
No programming language is perfect. They each have their advantages and disadvantages and can look very different from each other. However, most of them contain basic instructions like:
- Input – receive data from user
- Output – display or save data
- Arithmetic – perform basic arithmetic operations
- Conditional execution – check whether certain conditions are true or not
- Repetition – perform some action repeatedly
Here are a couple of the most popular programming languages and their corresponding “Hello, World!” programs:
- Java
- C/C++
- C#
- Python
- PHP
- JavaScript
To read more about them and see their comparisons, visit the links below.
Types of programming languages
There are dozens of types of programming languages and a single language can follow multiple types. Here are a few:
- Declarative
Declarative languages describe a problem instead of giving a solution. Solving the problem often looks like automatically proving a system of logical statements. - Imperative
Imperative languages describe a system of state changes. The program is given steps to follow and they change its state. - Functional
In functional programming, the program receives some information as an input and uses this information to create output. - Object-oriented
In object-oriented programming, information is placed into a single unit called object. Objects can interact with each other.
Learn programming
Online there are numerous websites and courses dedicated to learning programming. Here are a few sites you might want to explore:
Read more
- Computer programming – https://en.wikipedia.org/wiki/Computer_programming#Methodologies
- Comparison of programming languages – https://en.wikipedia.org/wiki/Comparison_of_programming_languages
- List of programming languages by type – https://en.wikipedia.org/wiki/List_of_programming_languages_by_type
- The Tower of Babel – http://www.cprogramming.com/langs.html
- TIOBE Index – https://www.tiobe.com/tiobe-index/