Software development is interesting for both programmers and those who want to become one. The article touches upon the concepts needed to get started.
What is programming?
The simplest and most accurate answer is: “Programming is the act of instructing computers to perform tasks.” It is also called development or coding.
So what is a computer program? Software is a sequence of instructions executed by a PC. A computer is any device capable of processing code. This includes desktop PCs, laptops, tablets, ATMs, Raspberry Pi, servers, etc.
- Software development and analogy.
There are examples of programming even in everyday life. The universe is pretty predictable: day and night, seasons, sunrise and sunset. People go through stages such as meeting a new day, attending school, university or work. We receive instructions from superiors and teachers. There are also recipes, following which you can cook the dish.
Secondly, every time we use devices, the code built into them is already running in the background. Moving the cursor from one part of the screen to another may seem like a simple task, but in fact, quite a few lines of written code are responsible for this process. An act as simple as typing letters into Google Docs results in code running in the background. These are normal daily processes inherent in all IT devices.
Computer programs are also code. However, it is better not to use the word “codes”: this is unprofessional.
- Natural computer language.
Machines use their own language. They do not understand Russian, English or Spanish. The natural language of electronic equipment is binary code – 1 and 0. They represent two states: on (1), off (0).
In order to communicate with machines that speak binary, we learn languages that are as close as possible to our own, namely programming languages. They are clearly structured and should be carefully studied.
There are high and low levels. High-level programming languages are further away from machine language than low-level languages. This “further” is usually called an abstraction. The computer needs to understand our human language. This will require a translator.
- Definition of translators.
Source code refers to code written in the chosen programming language. Translators, on the other hand, are responsible for converting the source code into machine language (the very ones and zeros). We can refer to binary files, such as object code, program, or the common term today – application.
Translators can be anyone:
- hybrids of interpreters and compilers;
For software development to be successful, you need to understand that languages can be interpreted. In this case, the translator processes the source code line by line and in the finished program (application) also runs each line. This means that the interpreted source code runs until it encounters an error. The interpreter then stops reporting such errors.
Python is a good example of an interpreted programming language.
Compilers work differently. They completely convert source code via compilation to binary. Then the binary code is executed. If there were errors in the original version, they are detected and flagged at compile time. This interrupts the binary code generation process. Interpreters work line by line and execute one line before moving on to the next. The compiler, on the other hand, translates all lines of the program into a file (binary) and executes it in its entirety.
Remember the definition of a computer program? This is a sequence of instructions for a computer. The execution of a program is usually called a process. Such software uses certain resources in a computer system or any other device. Resources include memory, disk space, and the file system. We use the word “run” when executing a computer program. The time it takes to run is called the program execution time.
Usually considered products known as applications. We also associate programs with the platforms or environments they run on or are designed for. There are web apps that run in browsers, there are mobile apps that run on smartphones, and there are desktop apps like Evernote. Interpreted source code is executed from source file, compiled source code is converted to binary file. This file is then executed. Compiled code may fail at run time even after successful compilation.
- Hybrid translators.
A hybrid translator is a combination of an interpreter and a compiler. Java is a popular hybrid programming language. Software development in Java is convenient. First, the source code is compiled into an intermediate format known as Bytecode. The Bytecode is then interpreted and executed by the virtual machine. This allows hybrid translators to run bytecode on various operating systems and make it cross-platform.
Assembly language is also used to translate low-level assembly language into binary language, but we will focus on high-level languages. A good way to understand the differences between translators is to see their work in person. Just download the necessary ones and install on your computer.
When you want to learn a new language, you will need a language translator. It is a program that is installed and configured on a computer system.
We recommend that you start learning how to work with the command line (CLI). Think of the terminal as an alternative to the graphical user interface (GUI). Working with a computer through the GUI, you depend on visual representations of directories and everything you do. But when using the CLI, you interact with the computer directly, using the terminal and special commands.
On Windows, the built-in terminal is the command line. For Mac and Linux users, the Bash terminal is installed by default. To use it on Windows, install Git Bash or PowerShell.
Software development has begun! Let’s get ready to write the first line of code. This will require the following:
- Computer system. Not necessarily a complex or very expensive PC. Just a computer that works well will do.
- CLI installation. Here is a good course to get started.
- Installing a text editor (for example, Notepad++).
- Understanding at least one programming language. From the article, you will learn the basic elements that form the foundation of most PL.
To recap the above, we’ve covered the basics with an introduction to translators.