Incremental Steps
In this lesson, we will provide an explanation of how to learn programming
and also I expect today our era is experiencing a huge information
revolution and it will increase with the increase in educational platforms
in the previous period. We have witnessed several initiatives either at the
level of governments, companies or even individuals in the education of
information technology and computer science and because in this era the
focus has become The technology is significantly and noticeable, and a
number of governments and companies have accelerated in automating their
transactions.
The demand for developers and programmers Has become high, and with the provision of incentives, rewards, and the
position that the community has placed for the developer and programmer,
many students have become interested in learning these techniques that
enable them to create applications or websites, so they begin by asking
several questions:
How do I know how to program an application? How do I know I am
designing a website? How do I know how to make a program like
Twitter? How did my father create a site like YouTube? How
do I learn programming?
And many guiding questions that do not stop in the minds of those who
want to learn, and it is strange that when you search on Google, you
find many topics with titles that are completely similar to each other,
such as "The Road Map for Web Learning" The Comprehensive Guide "and
other bright titles.
But a beginner rarely finds what he is looking
for and starts searching from article to article, from video tutorial to
course, and starts spiraling in search of the right information.
Browsing through many article guides to learn programming, I found an
important missing element and I don't know if bloggers agreed to hide it
or if it failed?!
We find that most of the topics start directly with technologies, tools,
and languages before proceeding with the important topic, which is
Introduction to Computer Science. Therefore, I believe that every
novice should learn the principles of computer science and understand the
machine's operation from hardware and systems, and then familiarize
themselves with computer fields before starting to learn the first line of
code.
So we find the common answer to the question How do I learn to
code? Choose your field! As if the first thing that comes to
the questioner’s mind is which field?! We will divide the answer
into several
First Steps
It starts from knowing the reason for the invention of the computer in
order to understand the logic of the machine.
The first thing we must know is that the computer did not exist from the
wrong place. It is a complementary invention to the previous human
inventions based on arithmetic mechanically. direct current
(transistor)
- Of course, the computer in our time is more sophisticated, but -
as we said, the reason for its invention was to perform arithmetic
operations, and as long as there is arithmetic, there is also logic, which
undoubtedly leads us to the science of mathematical logic.
Which is 1 + 1 = 1 * Your information is correct is equal to 2, but
the topic is different here in computer science.
Two Steps
You can imagine that this strange machine only uses a binary counting
system, meaning only two digits, one and zero, to direct the electric
current so that (one means “on/open”) and zero (zero “off/off”) if all the
matter is in how to direct this current Is logic alone sufficient? Of
course not. We need the science of probability and algorithms in order to be
able to control and regulate the flow of electric current.
Third Steps
Area Strings (you can have two options, True or False). Arrays (a cabinet
that contains a lot of data arranged in one place) This is almost the most
common data in most programming languages.
(C) If we ask and say what can the machine do with these data
Iteration loops (they repeat the process and often a counter is defined
with the symbol i) implement conditions, and often come with iterations
(for example, repeat the equation until the counter sum is greater than
ten) Duplicate code and consume space in memory (container or class
is known as “class”), as if you create a specific container that has
common characteristics, such as cars, all have a model and a manufacturer,
but they differ from each other with names, and they often include objects
(objects) as the company says the factory Ford and model 2018 This
is called an object, and you can also add another object as you say the
manufacturer Toyota and the model 2011. So most of the objects are placed
in the container “Class”)
(D) - We almost covered a good percentage that enables you to learn which
programming language you want.
At the end of this post, we are interested in knowing the types of data
and what the machine can do. These are most of the common things that
trainers constantly talk about for new students,
Each Programming Language differs by definition grammatically from the
other language, For example, the sky, in Arabic it is pronounced “sky,”
English pronounced “sky,” French “ciel” and Spanish “filo.” However, due
to the different environments, languages differed, so the pronunciation
and the name differed.
Programming languages Before we do not enter the languages, let us
define what is meant by the fields, such as what we mentioned, the
computer.
The reason for its invention is arithmetic. There is no scientific field
except that there are arithmetic operations in it.
So we find that in sciences such as physics, mathematics, astronomy,
chemistry and statistics, it is directly related to the computer because
of the services it performs that serve the interests of those existing
sciences. On the account.
So, we conclude from the multiplicity of fields, the reason for the
multiplicity of programming languages, and each programming language was
created to serve a specific field in a particular specialization.
To review the history of the emergence of generations of programming
languages in a simplified way, we review three generations and each
generation, its advantages and the most prominent problems.
First Generation
Use a direct machine-oriented language through the input board
directly to the memory, and the advantage is that the code is executed
immediately without the need for an interpreter or interpreter so that
it goes from the input board to the processing unit directly,
However, there are problems that have emerged in this generation, and
they are articulated problems that need solutions, and these problems
include:
Machine language is very difficult to modify errors also difficult to
add additional information in the same place Need to transfer the
previous information to another place in memory The inability to copy
programs to other machines, so that the code is rewritten in each
machine Those problems limited the continuity of programming in
machine language, and solutions to those problems He led us to
the second generation.
Second Generation
In this generation, the basic structure of the logical environment was
established so that some features that were not in the previous generation
were addressed and developed, most notably the customization of the code to
work on a dedicated environment or family of processors.
A feature was also added that enables the programmer to read and write the
code and the possibility of converting it into machine language. Thus, the
term assembly was introduced.
The developments in the second generation provided a fertile environment for
the third generation to make a real technical revolution.
We come to the most prominent problems of the second generation: - Customizing
the code to work on a specific environment for processors. The text code is
written on paper, then translated and entered into the machine.
Designing the program costs the programmer a very high effort to focus so that
any error, even if it is small, stops the work of the program permanently.
These problems and their solutions led us to the third generation. Despite
the shift that was introduced in the second generation, the third generation
completed that process with the addition of some improvements and
fractur.
Third Generation
In this generation, new classifications of languages emerged,
so that the languages of the first generation were called
low-level languages. What do we mean by low-level: that is, the
language that the machine understands but the modern developer
does not understand, and the third generation languages were
called high-level languages: that is, understood by the
developer and not understood by the machine. Also, the
term multi-user programming language appeared as another level
of assembly language.
There were also terms such as: a multipurpose language and
patterns (it has many uses (objective programming language)
created separately and combined with some saving time and
reducing costs and errors (structural programming language)
depends on the structure and form of the program (all of these
names and terms are applied to most languages of the
generation Third .
The most important advantages of the third generation
languages: - Its proximity to the human language. Making the
machine take care of the details of errors, creation, and
linking between the code and the processor automatically. It
made the machine take care of unnecessary details, after that
was the programmer's task in the second generation. We come to
The most prominent languages of the third generation:-
C language (named C because before it was a language called B)
C language plus plus (development of C language (Java
language) for the purpose of object-oriented programming)
after the tremendous development in the third generation and
the true qualitative shift of programming science so that it
was covered Most of the needs of users from various
fields, and graphic and visual systems that depend on
interaction have appeared, so developers have accelerated to
develop their applications and systems for the purpose of
investment first, because the need for a computer showed a
high and rapid demand for the features it provides, such as
shortening time and reducing effort and cost. With this
remarkable and rapid develop ment, the most prominent terms
appeared. as:
Quantum computers, servers for personal computers,
operating systems, databases, and so on, every field that is
created comes with its terms and nomenclature with it, and it
is called the programming field or the programmer's
specialization. Let's start with the most famous programming
languages and the most prominent frameworks
Language C#
Language adopted and supported by Microsoft. It is a modern language that
enables you to build desktop applications as well as web applications based
on ASP.net that supports C#.Net, as well as hybrid mobile applications based
on the “Xamarin” platform. As for the games domains, it is a supported
language in an environment Unity is for developing games. You can deal
with it and build applications by downloading the Microsoft Visual Studio
program.
So, what are the areas available to you after learning the C Sharp
language:
Desktop application programmer. Web application
programmer. Mobile application programmer. Game programmer.
Language Java
It is owned by Microsystems Inc. When we mention Java, we
must mention the most prominent characteristic of that
language, which is the “strongest language.” I don’t know
why the developers repeat the phrase “Java is a strong
language,” but it seems to me because it was built on the
rules of C and C Plus Plus (C++/C) as well as It has
huge factions libraries that enable you to build desktop
and web applications, as well as enable you to build
original mobile applications for the Android system
(Android) based on the (Android Studio) program, and you
can use them in programming graphical user interfaces
(GUI), and you can deal with them through the two programs
NetBeans ( netbeans ) and ( Eclipse ).
Java SE desktop application version. Mobile version java
ME Server, database and web version java EE.
The areas available to you after learning the Java
language.
Its fields are many, but I will focus on the most
prominent three areas, which are:
Desktop applications programmer.
Native mobile applications programmer only for (Android)
applications. Solutions applications programmer for
institutions or government agencies.
Language Python
Its beginning was 1991, but its actual beginning was 2001, and its popularity
seemed to increase year after year for the following reasons:Ease of learning It works on several platforms without changing the code
Simple and clear in writing commands The possibility of extension with the C
language Recognizing the types of variables without the need to define them
from the programmer With each update of Python increases its popularity and
comprehensiveness and its multiple fields, as well as, but its most important
areas are artificial intelligence, giant data and machine learning, as well
as 3D graphics, information security and graphics, as well as containing
frameworks and libraries that enable the programmer to manage large projects
with less effort and easy and flexible code.You can also expand with other languages such as (C, Java) and you can deal
with it through the pyCharm program to write Python codes, if the areas
available to you after learning the Python language:Its fields, such as Java, are numerous, but I will focus on the most
prominent five areas, which are:-Artificial Intelligence Web Applications Data Analysis Information Security
Development of Graphical InterfacesOf course, as we mentioned in the beginning of the article about Java and
Python that they are holistic languages that you can use in more than one
field because of the huge libraries and the multiplicity of frameworks, so
learning them requires patience and persistence while trying to apply what you
learned first. - We exclude, of course, C Sharp - after that we move on to mentioning
other areas in a dedicated, non-exhaustive manner, the most prominent
languages used in them, with links to lessons for them, and the most
prominent requirements. The first field of development of original smartphone
applications:The Android system is in Kotlin, a modern and simplified language created by
the GetBrain company, which has programmed Android Studio running on the Java
platform, and it has been officially supported and approved by Google for the
development of mobile applications with the Android system.Website domainFront End (Design): It depends on three languages, it is preferable to learn
them in order:HTML language syntax (encoding). Css Format Language. The
programming language is JavaScript.
It has several languages, but given the
Arabic
content, the explanations are mostly for PHP and MySql
databases.
Conclusion
In conclusion, we tried as much as possible in this post
to get acquainted with the latest and required
technologies in the market by focusing on Windows and
Android operating systems, as well as technologies that
contain explanations in Arabic. We talked about C Sharp,
Java and Python and their most prominent areas. As a
beginner student, you must determine the field of
specialization and then choose the most appropriate
language for you. Do not try at first to learn the three
languages together, thinking that this will make you a
better programmer. Do not concern yourself with
comparisons between languages before you start learning
any of them, or move between courses without finishing
them. With patience and commitment, then write down
the information and review it constantly, and do not
forget the most important thing is that you apply what you
learn from the lessons, and you should be proud of your
first applications, whether a calculator, an X-game, or
even an application to add two numbers.
[And here we come to the conclusion, I hope you benefited
from this lesson].