|What is programming|
If you want to take your first steps in the world of programming and how to learn it, then you are in the right place. This guide is not like other sources on the Internet that talk about what programming is.
The difference in this guide is that you will find in it the following:
A simplified explanation with practical examples of the meaning of programming.
You will know how different programming languages originated. Why are there so many programming languages?
You will know the meaning of the word “program” in a simple and fun way.
You will understand well the meaning of some programming terms such as [(Algorithms) - and Syntax)] and others with practical examples.
You will learn about the most important programming specializations in demand in the labor market.
You will learn the meaning of (Programming Paradigm), and the most famous different programming methods.
This is not all, the most important thing in this guide is that I will put many practical comprehensive guides for you to learn programming from the best sources.
This guide, which you are reading now, is just part of a large series that we have started to prepare recently in the field of computer science in all its disciplines in order to help young people by providing all the information they need in a simple and practical way so that they can enter the labor market without fear.
That's why I hope you read every word in this guide, because you'll find a lot of useful information and the links I put for you between the lines...ok? Good, let's get started!
What is programming?
Programming is the process of building and designing computer programs that any computer can understand, in order to perform specific tasks – such as arithmetic, drawing, or memorizing and storing information.
Programming is one of the most important fields of computer science because it is involved in almost all computer tasks, regardless of the industry or application. The missile industry depends on programming, so let us learn more about the computer and the role of programming in dealing with it.
A computer is a very stupid tool, anyone who deals with it must tell it everything that is required of it step by step until you give it to him… Let me give you an example.
Imagine with me that you are an expert in the coffee industry and you want to explain to one of your friends how to make an excellent cup of coffee… Now imagine with me that your friend not only does not know anything about coffee, but that he is blind and does not see anything.
Do you imagine the accuracy and size of the steps that you have to explain and describe to your friend in order to implement the required, for example, you will tell him while you are standing in the kitchen:
Move 4 steps forward.
Raise your right hand up 50 cm until you find the coffee grounds.
I carry a bag of coffee.
Lower your right hand 15 cm until it hits the table.
Put the coffee bag on the table.
Move 3 steps left.
Raise your right hand up 30 cm.
In front of your hand you will find the coffee pot that we use to make coffee.
Carry a pot of coffee in your hands.
Move 3 steps to the right.
Raise your left hand 25 cm until you hit the tap.
Move your left hand 8 cm to the right until you find the faucet switch.
And other long, neat and precise steps that you shouldn't misinterpret until your friend makes coffee...that's programming.
The previous steps are similar to the different programs that the computer deals with… The program is nothing but specific, organized steps that it can understand and deal with.
The computer is a tool that does not know, see, or hear anything but electricity… Is the electricity on or off? In other words, the language of binary numbers (0 and 1).
any part or piece of any computer such as:
temporary memory (RAM)
And many others are nothing but a set of electrical circuits that communicate with each other according to specific instructions or as the programs are called... There are thousands of programs that the computer relies on to carry out any task required of it.
I want you to imagine with me how many programs or steps your computer or phone has implemented until you read these lines now... This is the world of programming, my friend.
How to communicate with the computer
Programming is only a way to communicate with the computer, and in order to know what programming is in a deeper way, you must know how that communication takes place.
The computer first started as mechanical machines that use gears and genius engineering designs to carry out some computational tasks to save effort such as (knowing the timing - performing large arithmetic operations such as collecting the population census - storing information).
Communication with this type of device was some mechanical movements (opening a valve - moving a pointer)… You can watch the following video to see what I am talking about specifically.
After the discovery of electricity, scientists and engineers exploited it in the development of various mechanical devices. Electricity is easier to control and moves much faster than gears and mechanical transmissions.
At that time, all you needed to communicate with electrical devices was to close some switches (Off or 0 in binary numbers) or open some switches (On or 1 in binary numbers) in order to control the movement of current in different electrical circuits.
With the development of mankind and the advent of the invention of the transistor, which is considered by many to be the most important invention ever known to mankind, it became easy to design thousands of electrical circuits and control the movement of current in them at a lower size and cost.
Here the problem arose; In this case, when you communicate with the computer, you will have to control thousands of electrical circuits simultaneously… In other words, you will have to give instructions like this 1100001100.
Imagine with me that the previous binary number represents the number 780 in the decimal system that we know well... So what if we wanted the computer to write a much larger number? What if we want to tell him to store this number in memory or perform any arithmetic operation?
This is called (Machine Language - Machine code), it is about giving instructions to the computer in the form of codes consisting of zero and one.
Machine language is the only language that a computer understands, but it is a difficult language for ordinary humans... Here scientists have developed a translation system.
What is meant by a translation system is a way in which we can write some instructions in a simple language that we understand, which that system converts into machine language in order to execute them.
For example, that black screen that you may have opened in your computer before (Command Line).
|more command windows 10|
It is an example of the translation system that I told you about... The instructions you write in this program are translated into machine language that the computer understands and then executes.
There are specific methods for writing these instructions… This is where programming languages come in.
What is a programming language?
So, what is the difference between English and French? The letters are almost the same and the way of writing is the same (from left to right)... The main difference is the rules and the way of pronunciation.
The same applies to different programming languages, as we mentioned before, programming is the process of communicating with the computer to give it instructions to carry out a specific task.
So the programming language is the way we write these instructions, and like normal human languages there are rules to follow (Grammar) there are also rules in programming languages.
These rules in the programming world are called Syntax. Each scientist, developer, or entity that has worked on developing a particular programming language has developed its own Syntax and how the language works in general.
Look at the image below for a simple program whose function is to display the word "Hello World" - this is the first program you will learn if you want to become a programmer - in several languages:
|Hello world in several programming language|
Example of Syntax in several programming languages
As you can see, every programming language has a way of writing (the form of brackets - quotation marks) and others... This is the syntax in practice. Don't worry, you will know later on yourself that writing in itself in any programming language is easier than you think.
As I mentioned earlier, programming languages appeared in order to reduce humans from dealing with machine language directly, and for this we can classify programming languages as follows:
Low Level Languages: These are languages that are very close to machine language.
High Level Languages: These are languages that move away from the language of machines, and approach our normal language, which is the most common now, and most programmers rely on them for their jobs every day.
You can watch this simple video to summarize the above about the definition of a programming language:
What is the programmer's job?
Man has invented the machine to help him solve various problems, saving time and effort, and this is the job of any computer or computer, whatever its type or shape.
A programmer is someone who understands well the type of problems he deals with, knows how a computer works, and how to communicate with it in order to rely on it to solve these problems.
We can summarize the programming process in the following steps:
1. Understand the problem: Any program or application you deal with is basically a solution to a specific problem (the Uber application is a solution to the transportation problem - File Explorer on Windows is a solution to the problem of searching for files in an easy and visible way).
A successful programmer is someone who knows well the problem they are dealing with.
2. Determine a solution to the problem: The programmer understands well how it works and how to use it to solve the problem in an easy, intelligent, logical and tidy way.
3. Converting the solution to the problem into a program: In this step, the programmer writes some code using one of the programming languages in order to create a specific program to solve the problem.
4. Program testing: At this stage, the programmer first tests the program that he made himself, and then gives it to some ordinary users to try it out in different situations, and ensure that it performs all the tasks required of it.
5. Modify and improve the program based on the feedback from the previous steps.
6. Documentation of the program: This is the last step in the programming process. The programmer has to explain and explain everything about his program, and how it works so that it is easier for any other programmer or any ordinary person to use it in the future.
What are (Algorithms)?
As long as you are looking for what programming is and want to learn it, you will find the term “algorithms” frequently in front of you, which is why I wanted to explain it to you here, and also explain to you the difference between an algorithm and a program.
An algorithm in computer science is a set of logical steps and instructions to solve a specific problem or perform a specific task, and by the way, the word “algorithm” came from the name of the scientist Abu Jaafar Al-Khwarizmi.
I also noticed the definition of an algorithm is very close to the definition of a program; Both are a set of ordered logical steps, but the difference is that the algorithms are more comprehensive.
Remember the coffee cup example that we talked about earlier, in fact this is an example of an algorithm, not a program, when you convert those steps into code written in a programming language then we can call it a program.
This is the essential difference between the algorithm and the program, and the algorithms came from mathematics, and that is why you find the focus on them in the use of different (functions).
For example, if I give you a large table with more than 1500 numbers, and I want you to tell me what is the largest number in this table… What would you do?
The solution to this problem is a simple mathematical algorithm, which is why you will find in most programming languages a function that depends on (Sorting).
The programmer's job is to find the best possible algorithm to solve any problem or perform any task... The best algorithms are those that require the fewest possible number of steps.
Think of the previous arrangement example, don't you think there is more than one way to solve this problem.
For example, you can compare each number in the table with other numbers (and this is the longest possible solution).
Or you can take the first number and subtract from it the next number and then the next ... and so on until you find the result of the subtraction is negative, and in this case you take the new number you found (because it is bigger) and repeat the same previous step (subtract the numbers that follow in the table) until you find a result negative.
And so on until you finish the 1500 numbers in the table, this is also an algorithm, but it will take fewer steps than the previous solution... These are algorithms in practice.
That is why you find that most programming and computer science courses in general dedicate a part to teaching algorithms, because they are the basis that is used to build any program.
Different paths of programming
If you look at the computer science field guide, you will know that programming is closely intertwined with the rest of the branches of computer science, and for this there are no clear and specific paths to the field of programming in the labor market.
Nevertheless, I made sure to collect for you the most famous and most important tracks currently available in order to help you choose the track that suits your interest.
It is also worth noting that we are working on a more detailed guide entitled (the most important programming jobs required in the labor market), which contains more information about each job, the tasks required of it, and the skills and programming languages that you must master in order to perform your job efficiently.
Now let me give you a summary of the most important programming paths in the labor market:
1. (System programming)
Systems programming is the field specialized in working on different operating systems such as (Windows - Android - Mac - Linux), and the complex programs on which these systems depend.
This is in addition to dealing with servers and information storage centers such as (Cloud services), and all this requires a strong knowledge of how a computer works accurately so that anyone can develop appropriate systems and take advantage of all available capabilities at the lowest costs.
2. (Application Programming)
What is meant here is application development or application engineering; It is the work of building high-quality applications that run efficiently on different operating systems.
For example, the calculator program that you use is one example of this, as are the applications on the phone.
3. (Web Development)
Web development is the path concerned with developing websites and applications that operate mainly on the internet. The Seo7u website you are reading these lines now is one example of a very simple web application.
Read also: The 8 Core Web Design Standards
4. (Game Programming)
Games are one of the most prominent and sought-after programming paths in the market, and the gaming industry generates billions of dollars in revenue annually.
Game programming is fun and interesting, and at the same time requires knowledge and experience in many different programming technologies.
5. Dealing with (Data)
The term (Data Science) is one of the most searched terms in the programming world due to the importance of this field and its continuous escalation.
All companies and institutions rely on data in making decisions, and this requires a great effort from programmers in building mechanisms for collecting this data, saving it and dealing with it in various ways.
We are currently working on a comprehensive and detailed guide on the world of data, and how anyone can start using the best international courses and platforms… Follow us constantly so as not to miss it.
6. Artificial intelligence and machine learning
When you open your phone's camera to take a selfie, don't you see the square that the camera places on your face? Have you ever asked yourself how the camera recognizes faces so quickly and easily.
This is one of the simple examples of artificial intelligence and machine learning that aims to make a computer simulate the human brain in thinking and making decisions.
7. Internet of Things
The Internet of Things is the field of connecting all the tools and devices we rely on to the Internet by programming them in certain ways, such as smart watches that measure running rates and heart rate and have applications on the phone.
And surveillance cameras that are connected to your phone, through which you can watch a live broadcast of everything the camera sees, and all of this can be linked to security locks to send an alert in case of danger and to address the police and fire departments, and others to take the necessary completely automatically.
This was a quick summary of the most popular programming paths that you can choose from, and start learning the skills required in it in order to break into the job market while standing on solid ground.
At the end of this guide you will find a selection of resources and tips to help you choose the right path… Let's move on!
There are many programming methods or patterns, which are called (Programming Paradigms), and the programming pattern is the method that is relied upon to solve problems.
I mentioned to you earlier that the goal of programming is to use the computer to solve problems by giving it some commands...
Just as humans differ among themselves in the way they solve problems, so do programmers, each trying to solve problems in a particular way and a special method.
There are two main types of programming methods:
1. (Imperative programming paradigm): In it we give the computer step-by-step instructions in a detailed and accurate manner.
For example, if we want to add numbers from 1 to 10, we will tell the computer to add 1 + 2, then take the result and add it to 3, then take the result and add it to 4 ... and so on.
2. (Declarative programming paradigm): In it, we do not give the computer precise instructions, but rather tell it what we want from it directly, and it takes care of the rest.
For example, if we want to add numbers from 1 to 10, we will tell the computer (add from 1 to 10 and give us the result) using some functions without having to write all the steps as in imperative programming.
Under each of these types are other forms of programming patterns that follow the same method, but with the addition of other characteristics and features.
Here are the programming styles that are based on the imperative programming style:
( Procedural programming paradigm )
( Object-oriented programming paradigm )
( Parallel processing approach )
Here are the programming styles that are based on the declarative programming style
( Logic programming paradigm )
( Functional programming paradigm )
( Database processing approach )
I do not want you to feel pressured or intimidated by the abundance of information and terms, you are still at the beginning of your journey looking for what programming is and how to learn it, and this is what we will talk about in the next part of this guide.
Do not worry, you will learn all this and more in the near future, knowing that the reason I put all this information in this guide is my desire for it to be a comprehensive resource in which the reader will find all the information he needs to know.
Why should you learn programming?
In ancient times, the most valuable thing in the world was gold and precious stones, and after civilization developed a little, the most expensive thing in the world became petroleum because it is the fuel for machines that move almost everything on the surface of the globe.
And as civilization developed more, the most valuable thing in the world became information. Data collection and analysis to make decisions, and all this information is handled by a computer.
Think a little about your life and the amount of smart devices you rely on every day in your work, study and communication with people… This is in short the importance of learning programming at the present time.
You will learn how to communicate with these devices, how to use them to solve your daily problems, how to have a place in the future that will depend entirely on the capabilities of computers and artificial intelligence techniques.
Watch this video of some of the most famous entrepreneurs and programmers - including Bill Gates and Mark Zuckerberg - talking about the importance of learning to code.
Let me tell you the importance of programming in more detail through the following points:
1. Programming will make you gain a lot of skills
There are many skills that you will gain when you learn programming such as:
Logical thinking: You will learn how to think, analyze and arrange your thoughts, which is a more than wonderful skill that will benefit you in all areas of life.
Problem Solving Skill: You will learn how to solve any problem you face in an orderly, scientific way.
The skill of interpersonal communication: You will learn how to speak, explain and explain everything to those around you as you do while explaining to them how a particular program works.
Self-confidence: All of the above skills will make you a confident person and his decisions.
Time management skill: You will learn how to use your time well as you learned how to use all the possibilities available to you to solve a specific problem in a precise order.
Creativity: programming makes you think outside the box and look for unconventional solutions to problems.
All these skills will make you a better person in life in general.
2. Programming will open the way for you to get a job
Most companies and institutions are looking for professional programmers to help them solve problems and develop various systems, as programming is one of the most important fields required in the labor market now and in the future.
3. Coding is the new face of entrepreneurship
Do you not hear every day about a new application, a new service, or a new website that aims to deal with people and earn money from them… such as new delivery orders services, distance learning, hiring professionals and craftsmen and selling new and used products of various kinds…etc.
All of these projects and others are based on programming. If you have a project idea, then programming will certainly help you turn it into reality.
4. There are many different areas of programming
As I mentioned earlier when I talked about programming paths, there are many specializations that suit anyone, if you love games, you can specialize in this field.
If you love drawing and creative work more, you can also work in that field through programming, but if you love numbers and analytics, you may turn to data science.
Programming is suitable for anyone regardless of their background or personal inclinations.
5. You can work from anywhere in the world
The nature of the programmer’s work and the tasks required of it make it more flexible than others in terms of choosing a place of work, as most programmers only need a computer and the Internet to perform most of the tasks required of them.
For this reason, you find many programmers are not satisfied with traditional jobs, and prefer freelance work in dealing with clients and achieving new monthly income.
All this is in addition to the need to work from home, which has become a reality for most of the inhabitants of this planet due to the economic conditions that we all live in now. Programming helps to solve this problem as well.
6. Anyone can become a programmer
Programming does not require certificates, studies and great experience, unlike medicine, law or engineering, which require years of work, study and accredited certificates to get a job opportunity.
There are millions of programmers all over the world who have learned programming on their own even without studying at a university or institute, and have held the most prestigious positions or started their own projects.
Also, programming does not require a certain age to start learning it… There are those who are sixty years old and have learned programming and there are 8-year-olds who can write complex programs to solve many problems.
All of these reasons will make you want to learn now, not tomorrow. And that's what I'm going to help you with in the last part of our talk today about what programming is.
The goal of this article is to motivate you to want to learn this important and required skill, which will surely change your life for the better.
How to learn programming
Programming is a big world with many paths and specializations as I mentioned earlier, so you will find hundreds of resources and information published on the Internet to teach programming.
All this makes many beginners feel bewildered and hesitant... and sometimes even prevents them from learning programming despite their desire and enthusiasm.
For this reason and our desire to help you, dear reader, we have made comprehensive and practical guides that help you learn programming from the best sources while providing information and instructions that help you to overcome any obstacle that stands in your way.
You can find these guides through the following links:
What are the fields of computer science Computer: In this guide, you will look in general on the fields of computer science and programming, one of which is… An important article for anyone who wants to learn programming.
Types of programming: a comprehensive guide that shows you the most important types of electronic programming and the differences between them.
Best Programming Books: A great selection of the best books from the best authors in the field.
The most famous programming languages: In it, you will learn in a simple way the most famous programming languages and the uses of each of them, with examples of global institutions that use them.
A large and comprehensive guide to the best resources for learning programming.
The best YouTube channels to learn programming: (Your trusted guide to learning programming through YouTube)
What is the best programming language for beginners?: With it, you will get rid of the confusion in choosing which programming language to start with.
Best programming courses for beginners: a guide that contains the best resources to learn programming in every discipline (web development - mobile application development - game development - data science and artificial intelligence).
And other guides that we are currently working on - as I mentioned earlier - that's why I advise you to search in seo7u first for any topic you want to learn about before even searching on Google?.
If you have any question, feel free to leave it to us in the comments... I wish you success in your journey in the world of programming, and to meet you soon!