Programming: what is it? How do you learn programming?
What is programming?
If we want to talk a little technically, programming (in English) is defined as the process of writing instructions and commands for electronic devices such as computers and phones, in order to make them achieve a specific goal. But let us from the formal definitions; Simply put, programming is writing codes in special languages known as "programming languages", in order to create a program that performs the function required of it by the programmer, such as developing a chat program, a site to watch movies, or even a car racing game.
A computer or smart devices are all capable of carrying out these tasks, but they need someone to explain to them, in a language they understand, what is required of them. And here comes the role of the programmer: Programming languages are languages that can be automatically converted into a language that computers can understand, but they are precise languages and need elaboration. For example, you can't tell your phone to give you a calculator. You design the interface, and tell the computer exactly what to do when the user presses each button. The computer (and here by the computer what is meant is any electronic device that processes information, such as a computer, telephone, PlayStation and other devices) does not think. The programmer is the one who sets the way the program works (the so-called algorithm), and the computer applies it literally.
What are the programming paths?
Now that you know what programming is, the second point in your journey is deciding which path you will specialize in. It should be noted that a good programmer must have a general idea of all the tracks, but his specialization must be in one track, giving him all his time to master it. There are several sub-paths in programming, but the main paths can be divided into 4 general paths, which are:
1- Website development
2- Development of smart phone applications
3- Game Development
4- Desktop software development
Let's explain in detail each one of these paths.
1- Website development path
One of the most popular majors in the Arab world, and the reason is that it is relatively easy to enter by those who are not academically literate in programming, in addition to the great demand for websites at the present time. This path is divided into two sub-paths, which are Front-End and Back-End.
Front-End refers to the part of the site that users interact with. Anything of the site components that you can view and interact with, such as text, buttons, fonts, colors, images, animations and other things that the user sees and interacts with. Simply, everything that appears in front of you on the screen when you enter any site is part of Front End.
But mastering these languages is not enough, as the front-end developer must have a technical view and experience in UX and UI (that is, the experience of using and designing interfaces respectively) in order for the site to be beautiful, and at the same time easy to use by visitors and users.
As for the back-end, and it may also be called Server-Side, it means the part that is built to link the pages visible to the user, data, and different applications. In other words, it is the part that is executed and read by the server and is concerned with verifying that data is received and sent correctly to and from the browser. Of course, this part of the code is not visible on the browser, but its results appear. For example, if you enter the login page on any website, the user name and password fields are via Front End. But the verification process that takes place, which checks whether the password is correct, is via back-end.
The languages used in the back-end are many, the most famous of which are PHP, Python, Ruby, Java and MYSQL for databases. It should be noted here that to achieve faster and better results, working environments of the aforementioned languages are used, which will facilitate the development process for the programmer. The most famous of these environments is the PHP Laravel environment. You can see a detailed article about this development environment through this article in one click.
There is also what is known as a full-stack developer. This is the programmer who has a lot of experience in both of the previous branches, meaning that he can develop a complete website on his own. Of course, if you have enough experience to master the two branches, that is excellent. But in the beginning, focus all of your focus on just one track. Each track is very deep, and will take you a long time (maybe years) to master it professionally. So don't get distracted, focus on just one, while learning the basics of the second track. That is, if you choose to work as a back-end developer, knowing the basics of HTML is a must, and the opposite is true for a front-end developer, albeit to a lesser extent.
2- Smartphone application development path
As the name indicates, the specialists in this path are working on developing applications for smartphones such as Android and iPhone. If you choose this path, you will be able to develop applications in various fields, such as web applications (linked to sites or servers in general, such as the Facebook application), or practical applications, such as applications to learn a specific language, or a smart alarm application. Profit through this path can be very high, even if the application is programmatically simple. The important thing is that the application is unique, and there is a demand for it. The Alarmy app, for example, which is an alarm app that asks you to do something before you can turn off the alarm (such as solving math problems or moving the phone quickly for a minute, for example), has garnered tens of millions of downloads.