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
July 24th, 2019

تلخيص وحل أسئلة مهارات التحليل

المطلوب تلخيص الفصل الاول وحل الاسئلة الخاصة به كما هي في المحاضرة هنا مع كتابة الاسم بالعربي

July 12th, 2019

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

كتاب مهارات البحث والتحليل https://drive.google.com/open?id=1_VcimjIcHc_74Lw0hx96mMlEWzw5gUpi محاضرات مهارات البحث https://drive.google.com/open?id=1WGdflCQr8FCi-id9aTP-tRHF03T-injY

May 3rd, 2019

محاضرات د. ريهام كاملة

ده اللينك كامل للمحاضرات https://drive.google.com/open?id=13xEjlrqikE118vFuG6eNIpH3c9ubhhd4  

April 22nd, 2019

Information Security Exam

Click here
April 15th, 2019

Information Security Revision

محاضرة هامة …. طريقة الأسئلة    https://drive.google.com/open?id=13Qb4cDfx8eVmoTXoLCR8IiFcChuDhpEv

March 31st, 2019

محاضرات

https://drive.google.com/open?id=1ww7t0sVLpMi9CaCvzWWOXlNjxOcFx3TN

March 19th, 2019

virus attacks

What is the most famous virus attacks in the world?

March 16th, 2019

محاضرات

1- 8085 instruction set Arabic https://drive.google.com/open?id=1RDTaBXB6nybHepz-k9z86EjT-G8jXzlr 2-Programming with 8086 https://drive.google.com/open?id=1YGzthEPYpR3DZqzr9BY_HDblmZH-hLQe 3-8086 Assembly Programs https://drive.google.com/open?id=1dX5JdtgYHnRtzoIQNUWPDwonrE5kTAYn  

March 12th, 2019

المحاضرات

1- Introduction to Microprocessor Systems https://drive.google.com/open?id=1AKQYTiDPHDB-WCGTis-_LU_yuSSOGf_b 2-Memory and input and output ports, Interrupts, Direct Memory Access, Cache memory, Register file. https://drive.google.com/open?id=1MxerliIPqQd7bkT0r3gVHN1UGoqrccg0 […]

March 4th, 2019

Microprocessor Notes

Download this file https://drive.google.com/open?id=1g6bEojykzvlaaNgNsNBLZyq2ism1A-Ai

March 4th, 2019

Report

March 4th, 2019

Report

March 4th, 2019

Report

What is operating systems, Types of operating systems, and how it works? What is an Application? its Types? give examples […]

March 4th, 2019

Midterm Exam

 

February 18th, 2019

موقع مهم

الموضعات هنا ممتازة في البداية .. ربنا يوفق الجميع http://www.qariya.info/electronics/beginer_page.htm

February 17th, 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?

February 16th, 2019

How computer change our life ?

How computer change our life ?  Leave your answer in comment 

December 14th, 2018

QUIZ

“”” Write a program do the following: – ask the user to enter number of students in the class – […]

December 10th, 2018

Python Examples Run

Program 1 https://trinket.io/python/f80f228607 Program 2 https://trinket.io/python/22ce0558f5 Program 3 https://trinket.io/python/4188b4c32c Program 4 https://trinket.io/python/2b043e2b05 Program 5 https://trinket.io/python/a53e7f9e82 Program 6 https://trinket.io/python/7f7a015b33 Program 7 […]

December 9th, 2018

اختار موضوع واحد فقط

كيفية إنشاء موقع مجاني والتسويق من خلاله التسويق بإستخدام محركات البحث وكيفية الوصول إلي عملاؤك اسرع من منافسيك . علم […]

December 4th, 2018

Python examples

“”” use python while loop to print the following output ***** **** *** ** * “”” x = 5 while […]

December 3rd, 2018

امتحان مهارات البحث علي الانترنت

Click here
November 19th, 2018

Quiz 3

ما هو محرك البحث ؟ ما هي أهم خدمات جوجل ؟

November 19th, 2018

Quiz 2

مميزات وعيوب البحث الالكتروني ؟