Introduction
Programming is the process of writing instructions that somehow explain to a computer how to perform particular tasks. It is very valuable to learn how to do this for people in many situations. For us, one of the best parts of knowing how to write computer programs is that it's a lot of fun to create things! The word software is used to refer to computer programs, while hardware refers to the physical devices that make up a computer. Programming is often also called coding and programmers called coders. Programming is just one part of software development, the process of creating computer software.
Languages
The natural electronic forms in which computers store information and instructions are not very natural for people to use. As a result, there are many kinds of human readable languages used when developing software. The name for a particular document in a computer language is source code.
Programming languages are our main focus here. They are used to define computer programs.
Scripting languages are a type of programming language that some people distinguish. We don't bother too much with classifying languages as scripting languages or not, since this isn't a very useful distinction.
Markup languages include HTML and XML. Instead of telling a computer how to perform a computation, they describe how something should look, what information should be associated with it, etc..
Operating systems
An operating system (OS) is a collection of software that creates a good environment for running all sorts of other programs in a safe and cooperative way. Some people define an OS simply as "the software on your computer that you cannot avoid." You're running an OS now on your computer to be viewing this.
The two basic kinds of interfaces that people use to their OS's are:
CommandLineInterfaces, which involve a text interface where you run commands by typing lines of text and see the results as text
GraphicalUserInterfaces, where you see graphical pictures, windows, and other things, often interacting with the mouse as well as the keyboard
Some common operating systems are:
Microsoft Windows, the most popular OS today for personal computers. It is created entirely by the Microsoft corporation, whose goal is to make money and not necessarily to give you the best software. You can't find the source code to Windows freely available, if you want to fix a problem that you find in it or just want to learn from it. Windows is mostly used through a GraphicalUserInterface, though there is an old style of CommandLineInterface associated with its predecessor, MS-DOS.
GNU/Linux, the most popular Free OS. All of the source code for GNU/Linux is entirely free for anyone, making this the most popular OS for FHP members and most others who write a lot of software. It's a very programmer-friendly OS. We recommend using it if you want to have the best tools for developing software available to you most easily. You can find both good CommandLineInterfaces and GraphicalUserInterfaces for GNU/Linux.
Unix is now a family of operating systems. The original Unix was created at Bell Laboratories, and Linux is based almost directly on it. Some other free Unix clones that are also excellent choices for programmers are FreeBSD, NetBSD, and OpenBSD.
Mac OS X is the latest version in the popular series of OS's for Macintosh computers. It is the first such version based strongly on Unix, making it a reasonable choice for software developers. However, it isn't free.
Note: Linux is practically a subset of UNIX. The "definition" of UNIX hinges on POSIX compliance-- a guiding force in the development of the Linux kernel. So saying Linux is NOT UNIX is correct, albeit only on a technicality. For all practical purposes, Linux, BSD*, SunOS, etc.-- they're all the same type of operating system: UNIX.
Programming tools
A Compiler is a program that transforms one language into another. Often, the final target language is the native language of your computer, allowing most anyone to run your program, as opposed to just people who have special tools for the language you used installed.
An Interpreter is a program that runs your program in its current form without compiling it. If you run your programs in an interpreter, you will need to make sure that other people have that interpreter or another one for the same language if you want them to be able to run your programs.
A Debugger is a program that helps you find problems in your programs. They often act similarly to interpreters, letting you step through every thing your computer does in running your program and seeing what happens at each. If something unexpected happens at some step, you can gain a clue about what you have done wrong in your program.
An IntegratedDevelopmentEnvironment (IDE) is a program to help you with every stage of writing software. It will contain text editing tools to help you write code, simple ways to compile it, and tools for debugging it.
To begin developing software, Windows users will tend to need to buy or download any of the above tools that they want. Users of Linux and other Unix clones will generally have some of these tools for some languages installed, but will probably still end up downloading tools for new languages and upgrading their existing development software to newer versions.
For more information...
read LearnProgramming.
