List

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 codeDo 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

Your email address will not be published. Required fields are marked *

  Posts

1 2 3 4
March 25th, 2020

تقرير تسجيل فيديو

     المطلوب تسجيل فيديو لا تزيد مدته عن 5 دقايق عن كيفية العرض والالقاء الجيد ورفعة علي اليوتيوب ووضع […]

March 25th, 2020

مهارات اتصال وعرض فديو الفصل الخامس

https://www.youtube.com/watch?v=RvAaeSEaxH0&feature=youtu.be
March 25th, 2020

محاضرات الفصل الثالث والرابع فديو الجزء الثاني

https://www.youtube.com/watch?v=C4UOFvPGJjE&feature=youtu.be
March 25th, 2020

محاضرات الفصل الثالث والرابع فديو الجزء الاول

https://www.youtube.com/watch?v=4UmJeYcKfn4&feature=youtu.be
March 25th, 2020

Information Security introduction

https://www.youtube.com/watch?v=1Z7UXEgJ6ts&feature=youtu.be
March 25th, 2020

حل امتحان Midterm

March 20th, 2020

Inverse z Transform part3

https://www.youtube.com/watch?v=QwchLQXSulA
March 20th, 2020

Inverse Z Transform part 2

https://www.youtube.com/watch?v=uAxI9xUnrFQ&feature=youtu.be
March 18th, 2020

Algorithms, Flowcharts & Program Design

https://www.youtube.com/watch?v=Wq2IfM1e1eM&feature=youtu.be
March 18th, 2020

Introduction to Computer Network

https://www.youtube.com/watch?v=DBDmYx1dmIM&feature=youtu.be
March 17th, 2020

اسئلة مهارات الاتصال للأعوام السابقة بالاجابات

اسئلة مهارات الاتصال للأعوام السابقة بالاجابات https://drive.google.com/open?id=16xk6b8b0iPQuFuzItK0y-YUYg3qwJ4Gl

March 17th, 2020

تحميل محاضرات الاتصال والعرض

تحميل محاضرات الاتصال والعرض https://drive.google.com/open?id=1Z5L2yAHCp-Rgo6F6sF0Hpd14Ozjq7y-A

March 17th, 2020

تحميل كتاب مهارات الاتصال والعرض

تحميل كتاب مهارات الاتصال والعرض https://drive.google.com/open?id=1Du5Bd_kImzBs6e6bTMAJ3AlIyxdVQBTb

March 17th, 2020

امتحان مهارات اتصال وعرض

Click here
March 4th, 2020

الشيت الاول_ مهارات الاتصال والعرض

أجب علي الاسئلة التالية في كومنت واكتب اسمك كامل بالعربي في اخر الاجابة السؤال الاول : عرف عملية الاتصال ؟ […]

February 12th, 2020

اكتب اسمك

الي طلاب مهارات الاتصال والعرض … اكتب اسمك عربي بالكامل

November 24th, 2019

Why information security is important?

1-What is information? 2-What is information security? 3-Why information security is important? 4-What is information security management?

November 24th, 2019

محاضرات حاسب _ الفصل الخامس

                                                Introduction to Computer Security تحميل المحاضرات عن طريق هذا اللينك https://drive.google.com/open?id=1Yp5IJTlkeltBoVqPLPB8f9jy71HMocBw   مع التحيات بالتوفيق … د. مروة عيد […]

November 11th, 2019

Programming Syllabus

Introduction to programming Computer history Program How do computer execute program? Generations of  programming  language 1st Gen. (Assemble) 2nd  (C  […]

November 11th, 2019

Report (Write an algorithm )

■Write an algorithm Only  that will calculate the roots of a quadratic equation ax^2+bx+c=0 ■ Hint: d = sqrt (    b^2-4ac  […]

October 28th, 2019

محاضرات حاسب 5&6

محاضرات مهارات الحاسب 1& 2 تحميل المحاضرات عن طريق هذا اللينك https://drive.google.com/open?id=1H_ie4ogVyvXaOKSuu4K735Sp5Fv9qKUw   مع التحيات بالتوفيق … د. مروة عيد […]

October 19th, 2019

محاضرات مهارات الحاسب 3& 4

تحميل المحاضرات عن طريق هذا اللينك https://drive.google.com/open?id=1xi2RiMvmYr6g1TXkl5lbCC4gShznb4cY مع التحيات بالتوفيق … د. مروة عيد & د. السيد القناوي

September 30th, 2019

محاضرات مهارات الحاسب 1& 2

محاضرات مهارات الحاسب 1& 2 تحميل المحاضرات عن طريق هذا اللينك https://drive.google.com/open?id=1WyL00v9l6J7_3rZhxRtWT3rNeUfe7Z7v مع التحيات بالتوفيق … د. مروة عيد & […]

July 25th, 2019

تبدأ برمجة ازاي .. ؟

طلاب كتير بتسأل تبدأ برمجة ازاي .. ؟ خد عندك يا هندسة الترتيب المنطقى للتعلم هو كالآتي: HTML (1 month) […]