What, Why and How about programming?

Programming now is more like a required life-skill. Why you ask? Well firstly, we live in a digital era where we are progressing towards automation and digitization. That is enough of a reason to get you started and acquiring this new skill set. So let’s get started.

People think that computer science is the art of geniuses but the actual reality is the opposite, just many people doing things that build on each other, like a wall of mini stones.

~ Donald Knuth

Photo by Fotis Fotopoulos on Unsplash

Our first task is to understand what programming is. In simple layman terms, programming is a way to communicate with the machine and make it do the tasks that we want it to perform. The task can be anything, something as mundane as addition to collaborating with people half way across the world, programming aids us to achieve them. In order to do so we need to establish a medium of communication. Let’s break this down to get a better understanding. Computers are powered using electricity. The two modes that exist are ON and OFF. The computers can sense and differentiate between them. So for convenience let’s assign ON as 1 and OFF as 0. So this can be a way to communicate. 1 means on, and 0 means off, but these does not provide us with the enough options to perform. So we started using combinations of ON and OFFs, ie 0’s and 1’s to represent various things. So this language is called as binary language and is the language of the machines. But imagine how tedious of a task it would be to communicate with the machine if the only medium of communication is the binary language. It is more work than what we signed up for. So to make it a little easier for humans to interact with the system, the assembly language was born. Here is a glimpse of what assembly language looks like.

section	.text
global _start ;must be declared for linker (ld)
_start: ;tell linker entry point

;writing the name 'Zara Ali'
mov edx,9 ;message length
mov ecx, name ;message to write
mov ebx,1 ;file descriptor (stdout)
mov eax,4 ;system call number (sys_write)
int 0x80 ;call kernel

In comparison to binary language, this is a more user friendly language. But it requires 10 lines of code just to assign a name to a variable. Writing programs to do complex tasks would means billions of lines in the very least. To serve this very purpose various languages such as C, C++, Java, Python etc came into existence. There are what we called a higher-level language in contrast to assembly language which are low-level languages. Here is a glimpse of what the above program looks like in a high-level language (Python3).

String name = 'Zala Ali'
print(name)

Donald Kuth is a legend in the Computer Science world. He once said the following…

Let us change our traditional attitude to the construction of programs. Instead of imagining that our main task is to instruct a computer what to do, let us concentrate rather on explaining to human beings what we want a computer to do.

This is the very purpose of high-level languages.

This constitutes what programming is and why we need to learn programming. Now how can we do what we want to do? Well, learn a language and perform your desired task with the help of it.

And yes, it is as simple as it sounds, computer languages in contrast to human languages are way simple and easy to grasp. And as long as you understand the underlying logic behind the task you want to perform, you are good to go.

So you up for learning a life-skill? Don’t delay, get started and get learning !!!!

just another X-shaped personality, love to learn and tinker with new tech.