Viddyan

What is programming?

Programming is writing code (a set of instructions) to be interpreted and executed by a computer or another electronic device. These instructions can create programs, and tell applications how to operate or function. People who program are called programmers and write their code using a programming language.

OR

Programming refers to the process of designing and building an executable set of instructions to accomplish a specific task on a computer to get the desired result. It includes various tasks such as analysis, generating algorithms, determining their accuracy, and the implementation of algorithms in a chosen programming language. Testing, debugging, source code maintenance, and implementation of build systems are also a part of the programming process.

OR

Programming is the process of taking an algorithm and encoding it into a notation, a programming language, so that it can be executed by a computer. Although many programming languages and many different types of computers exist, the important first step is the need to have the solution. Without an algorithm there can be no program.

All data items in the computer are represented as strings of binary digits. In order to give these strings meaning, we need to have data types. Data types provide an interpretation for this binary data so that we can think about the data in terms that make sense with respect to the problem being solved. These low-level, built-in data types (sometimes called the primitive data types) provide the building blocks for algorithm development.

Data Structures + Algorithms = Program

Why Do We Need Programming?

Programming enables so many things in our lives. Here are some examples:

  • When you browse a website to find information, contact a service provider, or make a purchase, programming allows you to interact with the site’s on-page elements, such as sign-up or purchase buttons, contact forms, and drop-down menus.
  • The programming behind a mobile app can make it possible for you to order food, book a rideshare service, track your fitness, access media, and more with ease.
  • Programming helps businesses operate more efficiently through different software for file storage and automation and video conferencing tools to connect people globally, among other things.
  • Space exploration is made possible through programming.
  • Finding a sequence of instructions to automate tasks that are time-consuming and repetitive to solve a problem.
  • Creating a set of computer instructions for performing operations and exhibiting expected behavior.
  • Improving efficiency since manual tasks can be completed using computer programming.
  • Building programs for different purposes using various programming languages.

How does a computer understand programming language ?

A computer does not understand programming languages in the same way that humans do. Humans can understand the meaning of the words and symbols in a programming language, and can reason about how they can be combined to create a program. Computers, on the other hand, can only understand machine code, which is a language made up of binary digits (0s and 1s).

When a programmer writes a program in a high-level programming language, such as Python or Java, the program is first translated into machine code by a compiler or interpreter. The compiler or interpreter is a program that reads the source code of the program and generates a corresponding machine code program. The machine code program is then executed by the computer's central processing unit (CPU).

The CPU is the part of the computer that actually understands and executes machine code instructions. The CPU has a set of registers, which are small amounts of memory that it uses to store data and instructions. When the CPU executes a machine code instruction, it loads the instruction into a register and then decodes the instruction. The decoding process involves understanding the meaning of the instruction and determining what actions the CPU should take.

Once the CPU has decoded an instruction, it executes the instruction. The execution process involves performing the actions specified by the instruction. For example, an instruction might tell the CPU to add two numbers together, or to store a value in memory.

In this way, a computer can understand and execute programs written in high-level programming languages by first translating them into machine code. The compiler or interpreter is responsible for translating the source code into machine code, and the CPU is responsible for executing the machine code instructions.

What is a Web Page? How to Create a Web Page

Classification of Programming Languages

When we refer to programming languages, we can usually classify them into four distinct categories.

1. Machine Language

Ever heard the phrase, ‘computers understand only 1s and 0s’? This is machine language (or machine code). It’s a set of binary digits (1s and 0s) used by a computer’s CPU to execute directly.

A computer has transistors, tiny electric switches with two options, on (for 1s) or off (for 0s). The computer’s CPU can read combinations of these on/off electric signals and create the desired output. In general, machine code is referred to as a low-level language.

And just for fun, here’s an example of machine code for the word ‘Hello’.

Machine Code Example:

 
    01001000  01100101  01101100  01101100  01101111     

2. Assembly Language (ASM)

These were introduced because machine code can be tedious and prone to error. So, instead of using binary digits, code is written with commands that include symbols and characters.

As a computer can only execute 0s and 1s (machine code), programmers must use an assembler to translate assembly language into machine code before execution.

Still, this isn’t human-friendly, and it requires in-depth knowledge of computer memory and CPU processes to make sense of it. Like machine code, assembly language can also be referred to as a low-level language.

We’ve also included an example of assembly language to print the word ’Hello’ to a screen using x86 assembly language.

Assembly Language Example:

 
org  0x100  

mov  dx, msg     
mov  ah, 9       
int  0x21        

mov  ah, 0x4c    
int  0x21        

msg  db 'Hello', 0x0d, 0x0a, '$'

3. Mid-Level Language

When you move away from low-level languages, you tend to encounter the higher-level languages that most people think of when they hear the term programming language.And while it’s okay to bundle these all together, it can help to divide these modern languages into two sub-categories, starting with mid-level languages.

These allow you to write in more human-friendly syntax while retaining access to a computer system's abstraction layer. You can still control the underlying hardware directly, making mid-level languages a bridge between lower and higher-level languages.

Mid-level languages use compilers to translate their syntax into machine code, allowing the computers to execute the code.

Some common examples of mid-level languages include C, Pascal, and Cobol. And to keep up our habit of looking at actual code, we’ve added a small block of C code to output the word ‘Hello’ to the screen.

Mid-Level Language Example:

 
#include < stdio.h >
  int main() {
    printf("Hello");
    return 0;
  }     

4. High-Level Language

Much like mid-level languages, when you hear the term programming language, these are often what’s being referred to. Most computer programmers use them for their day-to-day activities and work.

High-level languages use special translators called compilers to translate into machine code, allowing computers to execute the code logic.

These languages have a human-friendly syntax and include general purpose programming languages like Python, JavaScript, and PHP. You can also count domain-specific languages like SQL and HTML as high-level.

We’ve included a JavaScript code snippet that outputs the word ‘Hello’ to the console screen.

High-Level Language Example:

 
console.log("Hello")

Types of Programming Languages

Mainly there are five types of programming languages, they are:

  1. Procedural Programming Language
  2. Functional Programming Language
  3. Object-oriented Programming Language
  4. Scripting Programming Language
  5. Logic programming Language
1. Procedural Programming Language

Procedural programming language is a language which follows a systematic approach consisting of statements, functions and commands to execute a computational task.Some of the procedural programming languages are:

  • BASIC
  • C
  • FORTRAN
2. Functional Programming Language

Functional programming languages use the concept of reusability. This means each program consists of a set of functions that can be invoked to repeat a task until a condition is met.

  • Common Lisp
  • F#
  • Clojure
3. Object-oriented Programming Language

Object-oriented programming language or OOP relies on organising and encapsulating data in terms of objects instead of depending on functions and logic. With concepts like inheritance and polymorphism, this language encourages reusability, thus lessening the complexity of the code.

  • Python
  • Java
  • C#
4. Scripting Programming Language

Scripting programming languages are used to design, develop and enhance an application’s or operating system’s features. Mainly it is used to provide the functionality to the characteristics of a system. Scripting languages are interpreted quickly and can swiftly execute code.

  • BASIC
  • C
  • FORTRAN
5. Logic programming Language

Logic programming languages are slightly different to the types we discussed above. They aim to convey restrictions to the system about statements the developer uses to consider the possible outcomes of other actions adeptly.

  • Absys
  • ALF (algebraic logic functional programming language)
  • ASP (Answer Set Programming)

Computer Programming Industries

A career in computer programming can open doors into various industries. This gives programmers ample opportunities to apply their skills in different contexts that match their interests and expertise.

“Computer programmers can work in nearly any context, from public sector work for cities to manufacturing and retail enterprises,” explains Dr. Jo Ann Oravec, a professor of information technology at the University of Wisconsin at Whitewater. “These various kinds of programming contexts have some similarity, though, in terms of need for quality control, documentation, and structure.”

Some industries that rely on computer programming include:

  • Information technology and software development
  • Finance and banking
  • Health care
  • Automotive
  • Manufacturing and automation
  • Telecommunications
  • Entertainment and gaming
  • Education and e-learning
  • Transportation and logistics
  • Energy and utilities
  • Aerospace and defense
  • Retail and e-commerce
  • Agriculture and food production
  • Biotechnology and pharmaceuticals
  • Environmental and sustainability

Your industry influences the types of programs and products you’ll work on.

“Programmers in finance develop and maintain trading algorithms, risk analysis tools, and customer-facing applications, while those in health care focus on creating electronic health record systems, telemedicine platforms, and medical research tools,” says Darkazanli.
“Automotive and aerospace industries rely on programmers to develop embedded systems, autonomous vehicle technology, and flight control software,” he continues. “In telecommunications, programmers contribute to the design of network infrastructure and communication protocols, while those in the entertainment sector create games, streaming services, and virtual reality experiences.”

How to get started in computer programming

Follow these steps to embark on a journey in the growing field of programming.

1. Identify your programming goals.

An important first step is to reflect on your goals and motivations. With clarity on what you want to achieve and why, you can align your actions with the outcomes you desire. Here are some examples of programming goals:

  • Launch a new programming career in a specific industry.
  • Explore programming in your current role and take on new projects that combine programming with what you already do.
  • Pursue programming as a hobby and complete projects that match your interests.
2. Enroll in an introductory programming course.

Once you know your goals, it’s a good idea to find a course on programming to introduce you to popular programming languages and different avenues for applying programming skills. You can also use an introductory course to refine your goals and focus your efforts.

3. Build essential programming skills.

As you’re taking courses, you’ll want to ensure you’re developing essential programming skills, particularly if your goals are to pursue a new career or enhance your current one. While a course you’re enrolled in may provide an overview of important programming skills and then structure the learning experience accordingly, you may find it helpful to find out what employers are looking for.

4. Connect with other programmers.

When you build a network and connect with other programmers, you can gain exposure to programming trends, opportunities, and solutions to common challenges. Ways to connect with other programmers include:

  • Attending tech conferences and networking events
  • Signing up for a coding bootcamp
  • Subscribing to programming influencers and thought leaders
  • Joining an online community, such as CodeNewbie or Kaggle
5. Complete projects.

Completing projects is a great way to apply your skills and discover your programming potential. Find tutorials online to complete beginner projects such as:

  • Creating a mobile app
  • Creating a calculator app
  • Building a simple game
  • Building a basic website from scratch
6. Explore your future in programming.

The more you learn about programming, build skills, and complete projects, the closer you will get to achieving your goals. On a routine basis, reflect on the kind of future you’d like to have in programming and explore the possibilities, including job listings in programming, freelancing as a programmer, building apps for friends and family, and advancing your education.