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 3 4
November 4th, 2018

Quiz 1

من هو المالك الحقيقي للانترنت ؟ وماهي مراحل تطوير شبكة الانترنت ؟

November 4th, 2018

Lecture 1 what is the internet ?

تاريخ الإنترنت ظهرت فكرة الشبكة الحاسوبية للمرة الأولى خلال المرحلة البدائية من تطوير شبكة الاتصالات، حيث تكمن أهميتها في إتاحة […]

October 28th, 2018

Lecture 5 Computers Have Changed the World

The progress in Computer Science education, digital skills and opportunities that flow computing innovation in machine learning. Here are some […]

October 28th, 2018

Python examples

1- Write Python Program to Print Hello world! https://www.programiz.com/python-programming/examples/hello-world 2- Write Python Program to Add Two Numbers https://www.programiz.com/python-programming/examples/add-number 3- Write Python Program […]

October 24th, 2018

Lecture 3 & 4 ( Understanding Computer Systems)

operating system (OS) manages all of the software and hardware on the computer. Most of the time, there are several different computer programs running at […]

October 24th, 2018

Computer skills quiz 2

Click here
October 18th, 2018

Download Python

 السلام  عليكم ان شاء الله ده اللينك اللي تقدر تحمل من عليه برنامج البايثون بما يناسب نظام التشغيل الخاص بك […]

October 14th, 2018

Report ( python keyword-list )

يرجي تلخيص المحتوي الموجود في هذا اللينك التلخيص يكون بخط اليد https://www.programiz.com/python-programming/keyword-list

October 13th, 2018

Lecture 1& 2 final (Introduction to Computer Technology)

Computer A computer is an electronic device, operating under the control of instructions stored in its own memory that can […]

October 7th, 2018

ظاهرة التوحد

لوحظ مؤخرا أن التوحد  أثار جدل الكثير من العلماء والباحثين لكونه أصبح من أعقد الاضطرابات النمائية إلي الآن . بناءا علي […]

October 7th, 2018

Quiz chapter 1

Click here
October 1st, 2018

العلاقات العامه (Public Relation)

العلاقات العامه (Public Relation) بإختصار تعتبر واجهة أي شركة والممثل لها ؛ كونها لسان و سمعة الشركة في كل ما […]

September 30th, 2018

Lecture 2 Introduction to Computer Technology

Software Software is a generic term for organized collections of computer data and instructions, often broken into two major categories: […]

September 30th, 2018

نظام الساعات المعتمدة

لأى حد هيدرس بنظام الساعات المعتمدة Credit hours وال مش فاهمين النظام ولا ايه ال GPA وعاوز يفهم ايه النظام […]

September 28th, 2018

Quiz 1

What basic tools do you need to start programming? What command would you use for the following in bash (CLI)? […]

September 28th, 2018

Lecture 1 Introduction to Programming

Introduction to Programming If you work in a software development company as a non-programmer, you may wonder what the programmers […]

September 27th, 2018

  (interview مقابله عمل )  اجتماع بين شخص او اكثر يمثل المؤسسة او الشركة اللي عندها استعداد تعين حد ان […]

September 25th, 2018

How Computer and Information System Change our Life?

How Computer and Information System Change our Life?   write your answer in comment including your name (Arabic) (اكتب إجابتك […]

September 24th, 2018

Embedded systemالأنظمة المدمجة

(Embedded systemالأنظمة المدمجة) عبارة عن كمبيوتر صغير معمول عشان ينفذ تاسك واحده او مجموعة تاسكات الفرق ما بين embedded system […]

September 24th, 2018

هل هناك فرق بين الهندسه الكهربيه والهندسه الالكترونيه ؟

اولًا للاجابه عن السؤال هنعرف تعريف كلًا منهم .. اما عن الهندسة الكهربائية فهي أحد فروع علم الهندسة، والذي يختص […]

September 19th, 2018

quiz

Welcome to your Computer Skills Quiz 1 Your Name ID Your Mobile Email A computer is an electronic device ? [...]
September 19th, 2018

Lecture 1 Introduction to Computer Technology

Introduction to Computer Technology what is engineering ? course plan !  Functionalities of a Computer Computer Components Input Devices &  Output […]