What is computer programming?
How do you plan on programming a computer? Are you going to create a simple calculator? a document editing application? a multi-functional interactive game? something else? Whatever your plans, the road ahead is an interesting one. Computer programming is a challenging and rewarding discipline.
Computer programming is defined as telling a computer what to do through a special set of instructions which are then interpreted by the computer to perform some task(s). These instructions can be specified in one or more programming languages including Java, C, and C++.
A computer goes through a set of steps whose purpose is to achieve something. These steps are instructed to the computer by computer programs. Essentialy, computer programming is the process by which these programs are designed and implemented.
There are many advantages to learning computer programming such as gaining new skills, being able to tell the computer what to do, and becoming better acquainted with computers. Whether you are a computer hobbyist, a student, an IT professional, or are just curious about the subject, learning how to program a computer will be highly beneficial.
While computer programming can be a great tool used to achieve many things, there are a few misconceptions about it. Let’s clear them up!
- You need to have some kind of special software to write programs
It does help, but such software is not required, and for beginners it is better to work without it for the purpose of gaining experience.
-
To be a computer programmer, you must have vast technical knowledge
While it is true that some computer programming languages are highly technical, most do not require you to have vast technical knowledge. So dont worry, you don’t have to be an expert to write code.
With computer programming, you tell the computer what to do. The more you master the subject, the more power to you!
Computer programming concepts
The concepts discussed on this page are essential knowledge to anyone who wants to become skilled in computer programming. While some are not universal, these concepts are present in the majority of computer programming languages and/or are a fundamental part of the programming process.
-
Algorithm
A set of steps for carrying out a specific task. Algorithms are used extensively in computer programming to arrive at a solution for a problem. The process of creating an algorithm involves documenting all the necessary steps needed to arrive at the solution and how to perform each step. A real world example of an algorithm would be a recipe. The instructions of a typical recipe (add ingredients, mix, stir, etc.) are an algorithm.
-
Source code
The actual text used to write the instructions for a computer program. This text is then translated into something meaningful the computer can understand.
-
Compiler
A software tool that translates source code into data that the computer can understand. Specifically, a compiler is used to turn source code into object code. The object code is then passed through a program called a linker which turns it into an executable program.
-
Data type
The classification of pieces of information in a program. The amount of different data types varies between languages. Typically, there are data types for integers (whole numbers), floating-point numbers (numbers with a decimal part), and single characters. To distinguish between different data types, a computer uses special internal codes.
-
Variable
A container which represents a value in a program. Variables can store different types of data including numeric values, single characters, and text strings. The value of a variable can change all throughout a program.
-
Constant
The same thing as a variable with one major difference – the value of a constant does not change, while the value of a variable can change all throughout a program.
-
Conditional
A set of code that will execute only if a cetain condition is true. Conditionals are used to test expressions and perform certain operations accordingly. For example, you could test a number input by the user and if it is too high print the message “The number entered is to high” and the program exits. Thanks to conditionals, a program can work differently every time it runs.
-
Array
A special type of variable used in many programming and web languages including PHP, Javascript, and Java that contains a list of related values. For example, a colors array would contain a list of colors.
-
Loop
A segment of code that executes repeatedly based on a certain condition. Loops are used to perform tasks repeatedly a certain amount of times. For example, if you needed to print the numbers 1 to 10. You can use a loop for this task instead of manually printing all the numbers.
-
Function
A set of code used to carry out specific tasks. A function can take parameters which will effect its output as well as return values. Functions prevent unneccesary redundancy because you can use them as much as needed instead of retyping some code over and over. For example, if you need to multiply two numbers, instead of doing the calculation manually every time, you can supply the data to a function through some parameters which will do it for you.
-
Class
A template for a real world object to be used in a program. For example, a programmer can create a car class which represents a car. This class can contain the properties of a car (color, model, year, etc.) and functions that specify what the car does (drive, reverse, stop, etc.). Classes are used in object-oriented programming.
The different types of languages
Not any computer programming language can do anything. There are limitations, and actually, different languages are used for different tasks.
This lesson focuses on:
- Web languages
- Software languages
- The different generations of languages
- Procedure oriented programming
- Object oriented programming
Web languages
Used for creating and editing pages on the web. Can do anything from putting plain text on a webpage, to accessing and retrieving data from a database. Vary greatly in terms of power and complexity.
-
HTML
Hyper Text Markup Language. The core language of the world wide web that is used to define the structure and layout of web pages by using various tags and attributes. Although a fundamental language of the web, HTML is static – content created with it does not change. HTML is used to specify the content a webpage will contain, not how the page functions. Learn HTML at my HTML lessons section.
-
XML
Extensible Markup Language. A language developed by the W3C which works like HTML, but unlike HTML, allows for custom tags that are defined by programmers. XML allows for the transmission of data between applications and organizations through the use of its custom tags.
-
Javascript
A language developed by Netscape used to provide dynamic and interactive content on webpages. With Javascript it is possible to communicate with HTML, create animations, create calculators, validate forms, and more. Javascript is often confused with Java, but they are two different languages. Learn Javascript at my Javascript lessons section.
-
VBScript
Visual Basic Scripting Edition. A language developed by Microsoft that works only in Microsoft’s Internet Explorer web browser and web browsers based on the Internet Explorer engine such as FlashPeak’s Slim Browser. VBScript Can be used to print dates, make calculations, interact with the user, and more. VBScript is based on Visual Basic, but it is much simpler. Learn VBScript at my VBScript lessons section.
-
PHP
Hypertext Preprocessor (it’s a recursive acronym). A powerful language used for many tasks such as data encryption, database access, and form validation. PHP was originally created in 1994 By Rasmus Lerdorf. Learn PHP at my PHP lessons section.
-
Java
A powerful and flexible language created by Sun MicroSystems that can be used to create applets (a program that is executed from within another program) that run inside webpages as well as software applications. Things you can do with Java include interacting with the user, creating graphical programs, reading from files, and more. Java is often confused with Javascript, but they are two different languages. Learn Java at my Java lessons section.
Software languages
Used for creating executable programs. Can create anything from simple console programs that print some text to the screen to entire operating systems. Vary greatly in terms of power and complexity.
-
C
An advanced programming language used for software application development. Originally developed by Dennis Ritchie at Bell Labs in the 1970’s and designed to be a systems programming language but since then has proven itself to be able to be used for various software applications such as business programs, engineering programs, and even games. The UNIX operating system is written in C.
-
C++
Descendant of the C language. The difference between the two languages is that C++ is object-oriented. C++ was developed by Bjarne Stroustrup at Bell Labs and is a very popular language for graphical applications.
-
Visual Basic
A language developed by Microsoft based on the BASIC language . Visual Basic is used for creating Windows applications. The VBScript language (also developed by Microsoft) is based on Visual Basic.
-
Java
A powerful and flexible language created by Sun MicroSystems that can be used to create applets (a program that is executed from within another program) that run inside webpages as well as software applications. Things you can do with Java include interacting with the user, creating graphical programs, reading from files, and more. Java is often confused with Javascript, but they are two different languages. Learn Java at my Java lessons section.
The different generations of languages
There are currently five generations of computer programming languages. In each generation, the languages syntax has become easier to understand and more human-readable.
-
First generation languages (abbreviated as 1GL)
Represent the very early, primitive computer languages that consisted entirely of 1’s and 0’s – the actual language that the computer understands (machine language).
-
Second generation languages (2GL)
Represent a step up from from the first generation languages. Allow for the use of symbolic names instead of just numbers. Second generation languages are known as assembly languages. Code written in an assembly language is converted into machine language (1GL).
-
Third generation languages (3GL)
With the languages introduced by the third generation of computer programming, words and commands (instead of just symbols and numbers) were being used. These languages therefore, had syntax that was much easier to understand. Third generation languages are known as “high level languages” and include C, C++, Java, and Javascript, among others.
-
Fourth generation languages (4GL)
The syntax used in 4GL is very close to human language, an improvement from the pervious generation of languages. 4GL languages are typically used to access databases and include SQL and ColdFusion, among others.
-
Fifth generation languages (5GL)
Fifth generation languages are currently being used for neural networks. A nueral network is a form of artifical intelligence that attempts to imitate how the human mind works.
Procedure-oriented programming
A type of programming where a structured method of creating programs is used. With procedure-oriented programming, a problem is broken up into parts and each part is then broken up into further parts. All these parts are known as procedures . They are separate but work together when needed. A main program centrally controls them all.
Some procedure-oriented languages are COBOL, FORTRAN, and C.
Object oriented programming
A type of programming where data types representing data structures are defined by the programmer as well as their properties and the things that can be done with them. With object-oriented programming, programmers can also create relationships between data structures and create new data types based on existing ones by having one data type inherit characteristics from another one.
In object-oriented programming, data types defined by the programmer are called classes (templates for a real world object to be used in a program). For example, a programmer can create a data type that represents a car – a car class. This class can contain the properties of a car (color, model, year, etc.) and functions that specify what the car does (drive, reverse, stop, etc.)
Some object-oriented languages are C++, Java, and PHP.