First | Next | Previous | Last | Glossary | About

## Introduction

- About programming
- What we use
- What you need to know to start

## About programming

If you are thinking about a career as a computer programmer or if you are interested computer programming then this is a particularly good time to learn programming. Truth is, there never was a time when learning computer programming wasn't a good thing! But it is more so now than ever before. One indicator of this is the growth in the number of widely used computer languages. You can choose from:

- Pascal
- C and C++
- Fortran
- Basic
- Java
- Perl
- Python
- Tcl
- COBOL
- ADA
- PL/I

and many, many more.

Return to top of page

## What we use

Many of the languages come wrapped in powerful application development systems. For example the finest Pascal platform is Inprise's Delphi which uses Object Pascal as its language. A very popular and very powerful C/C++ development system is Microsoft's Visual C++.

There are other factors that make programming just good fun, an intellectually rewarding pastime as well as financially rewarding. There are many very fine compilers which are quite free. These marvels are made available by the dedication and unstinting effort and unselfishness of enthusiasts around the world. If genius is 90% perspiration and 10% inspiration then the evidence of the free software world demonstrates clearly that we are blessed with some brilliant people.

Before moving on I should explain what is meant by free software. I guess it is a sign of the times but whenever we see the word "free" associated with a product of some kind we tend to think of it being free in the financial sense, that is no cost. This is true in a sense but free software is more than that. Often, although software is free, it doesn't mean it is unencumbered. You usually must comply with the owner's copyright requirements. You can't claim the software as your own work. You will probably have an unrestricted right to use it for you own use but cannot use in a commercial venture. Very often the free software in this category is binary only, the executable package, and you have no access to the source code.

For many people the most important type of software freedom is the software that is free in the way speech is, or ought, to be free. The Free Software Foundation is one organisation that promotes this notion of freedom. One simplified definition of this class of software is:

- Free software is software that comes with permission for anyone to use, copy, and distribute, either verbatim or with modifications, either gratis or for a fee. In particular, this means that source code must be available. ``If it's not source, it's not software.''

Just about every computer language has a free version available somewhere. Amongst the most popular is the GCC family of C and C++ compilers and that is the compiler I use for this course.

The ready availability of robust, powerful, high-fidelity software which is free is even more enhanced by the amount of learning material that is available via the internet.

Return to top of page

## What you need to know to start

There are some prerequisites. You should have a good grasp of concepts like:

- What a computer programming language
- What an algorithm is
- What is meant by a data type
- What is meant by a variable
- Process constructs
- Decision constructs
- Iteration or looping constructs
- How to define algorithm using written and graphical techniques
- Basing algorithm testing techniques

These concepts can be learned from a variety of sources and one you might find useful is 3rd Generation Language Program Design.

You will also find it useful to have a good grasp of number systems and coding schemes. A useful reference is Microcomputer Architecture.

You should also be comfortable with the operating system you are using. You should know how to find your way around its file system. How to use the various utility programs and how to use a text editor.

Return to top of page

Copyright © 1999 - 2001 David Beech

First | Next | Previous | Last | Glossary | About