Introduction to Programming
If you work in a software development company as a non-programmer, you may wonder what the programmers do. And you hear new buzzwords every day. This post was written with you in mind. Whether you are a sales person, a medical doctor, attorney, a business lead, or an accountant, if you’ve ever had it in mind to learn how to code, this is a good place to start.
How this article is organized
This write-up is divided into 4 parts. After reading through each part, you will find a quiz section to help you better recall what you’ve read. Then you’ll find a “going forward” section and answers to the quiz.
Note that each buzzword introduced in this series is in bold, such as algorithm.
Part 1 — What is Programming?
A simple answer would be, “Programming is the act of instructing computers to carry out tasks.” It is often referred to as coding. So then, what is a computer program? A computer program is a sequence of instructions that the computer executes. Computer in the definition above is any device that is capable of processing code. This could be smartphones, ATMs, the Raspberry Pi, Servers to name a few.
A Good Analogy for Programming
First, there are patterns to our everyday lives. The universe operates in a somewhat predictable way; For example — day and night, seasons, sunrise and sunset. People go through routines such as rising in the morning, going to school or to work. We get instructions from other people such as our superiors at work. How we cook certain recipes can be explained in finite steps.
Second, every time we use smart devices, some code is running in the background. Moving a mouse pointer from one part of your computer screen to the other may seem like a simple task, but in reality, so many lines of code just ran. An act as simple as typing letters into Google Docs leads to lines of code being executed in the background. It’s all code everywhere.
Computer programs are also referred to as code. Do not use the word ‘codes’(code should be used as an uncountable noun). Okay, this is not an English class, let’s get back to business.
The Natural Language of the Computer
Machines have their natural language like humans do. Computers do not understand the human language. The natural language of computers is the binary code — 1 and 0. These represent two states: on (1) and off (0). That is the natural language of electronic equipment. It would be hectic for us as humans to communicate with the computer in binary.
Enter Programming Languages
To communicate with machines who speak binary, we do so in a language that’s closer to our own natural language. Such as English, French, Swahili or Arabic. Programming languages are close to our natural languages. But they are more structured and must be thoroughly learned. They could be high level or low level languages. High level programming languages are farther away from the machine language than low level languages. This “farther away” is usually called an abstraction, but we will not go into that in this series. Let’s not get distracted 🙂 The computer needs a way to understand our human language. To do this, we’ll need a translator.
What are Translators
Source code refers to code written in a particular programming language. More of this in Part 2. Translators have the responsibility of converting your source code to the machine language. This is also known as binary. Remember ones and zeros. We may refer to the binaries as Object Code, the Program or a common word today: App.
Translators can be any of:
- Interpreters
- Compilers
- A hybrid of Interpreters and Compilers
- Assemblers
Interpreters
Some languages are interpreted. The translator processes the source code line by line and runs every line in the final program or app. This means that interpreted source code starts running until it encounters an error. Then the interpreter stops to report such errors. More of this in detail in Part 3. Python is a good example of an interpreted programming language.
Compilers
Compilers function differently. They convert the source code in its entirety via a compilation process to binary. The binary is then executed. If there were errors in the source code, they are detected during the compilation time and flagged. This interrupts the compilation process, and no binary is generated.
Interpreters translate line by line and execute the line before going on to the next line. Compilers translate all lines of a program to a file (binary) and execute the whole file. Remember the definition of computer program? It’s a sequence of instructions that is executed by a computer. An executing program is usually called a process. Such programs use certain resources on the computer system or smartphone such as memory, disk space and the file system. An executing program can also be said to be running. We use the word ‘run’ when we execute a computer program. The time it takes to run such programs is known as the run-time of the program. It is common to see programs referred to as Apps. We also associate programs with the platforms or environment in which they run, or are designed for. There are web apps, which run on web browsers, such as Google Spreadsheet. There are mobile apps, which run on smartphones such as Candy Crush. There are also desktop apps such as the Evernote desktop app.
Again, interpreted source code is executed directly from the source file. Compiled source code is converted to a binary file. The binary file is then executed. Compiled source code may fail during run-time even after successfully compiling. See Part 3.
Hybrid Translators
A hybrid translator is a combination of the Interpreter and Compiler. A popular hybrid programming language is Java. Java first compiles your source code to an intermediate format known as the Bytecode.
The Bytecode is then interpreted and executed by a runtime engine also known as a Virtual machine. This enables the hybrid translators to run the bytecode on various operating systems.
Assemblers
There’s the Assembler as well for translating low-level Assembly language to binary.
For this series, we will only focus on the High-level languages.
A good way to look at Translators is to see them as a program in themselves. You need to download or get them, install them on your computer system and understand their basic workings.
An Often-Asked Question
Here’s a question beginner usually ask.
What language do I learn first?
There are hundreds of programming languages. They are ranked by popularity, community, long term support, pedagogy, business use. They can also be ranked by technicality, such as whether they are functional, imperative, static, strong, or loosely typed. Some languages are more pedagogical than others. Some languages are for educational purposes and not for business use. There are languages written, for example, for kids to learn how to code. There are very powerful languages that are easy to setup and learn. Python is one such programming language. I usually recommend it to beginners.
If you are interested in exploring more on your options for “first language,” here’s some good research by Philip Guo.
When you want to learn a new language, you know now that you would need that language translator. This is a program you install and setup on your computer system. I recommend that you start learning how to use a CLI (Command Line Interface). The CLI is the terminal or shell. Think of the terminal as an alternative to a GUI (Graphical User Interface).In GUIs, you interact with the computer through the mouse pointer. You also depend on visual renditions of directories, and about everything you do.But, when using a CLI you interact with the computer using commands which you type at the prompt or a blinking cursor
$_
In Windows, the shipped-in terminal is the command prompt. For Mac and Linux users, you already have a default Bash terminal. To get the same experience on Windows, install Git Bash OR PowerShell.
Going Forward
Now that you’ve been mildly introduced to what programming is. You need to prepare yourself for your first line of code 🙂
To get started you will need the following:
- A computer system at this point, you do not need a sophisticated or very expensive one, you only need a computer that works well.
- Install the CLI I recommend this crash course to get you started on how to use the CLI.
- Install a text editor we will come back to this in Part 2
- Learn a programming language in this series you will learn the basic elements that make up the fundamental knowledge of most programming languages.
Leave a Reply