Computer software consists of a series of instructions in a programming language; the programmer complies those statements into a form that a computer processor can understand. Building software requires knowledge of computer languages, syntax and logic to complete the process from start to finish. In addition to the technical knowledge required, a programmer must be familiar with the specialized software tools needed in the form of an editor, a compiler and a debugger.
Building computer software begins with the programmer's choice of the three classes of control statements. Control statements process data, make decisions and repeat groups of instructions. The sequence structure describes program statements executed one after the other. The programmer inserts branching statements into a program wherever the program needs to follow two or more courses of execution based upon the evaluation of a piece of data. The final group of control structures repeats a statement or group of statements a specified number of times or until a certain event occurs.
A key concept that a programmer must understand holds that the computer will only do what she tells it to do. All program instructions must accomplish a task in a step-by-step manner. For example, adding two numbers requires a number of steps: Get one number and then get the other, add the first number to the second and place this sum in a new memory location. The programmer cannot assume any portion of the arithmetic statement.
Repeating this addition problem requires that the programmer place it within a construct called a loop. The loop adds some new variables to the problem such as how many times to repeat the addition statements. Without the consideration of this requirement, the program can enter an infinite loop that crashes the computer.
Many programming operations will follow one sequence of instructions if a condition is true (e.g., "Is it windy outside?") and another sequence if it is false. Branching control structures enable this capability within a program.
Choosing a Programming Language
Programmers must choose a language in which to work from among the hundreds of languages available. As of 2010, the most popular languages are C++, Visual Basic and Java. If the developer wants to target her software to the Internet environment, PHP and Ruby make excellent choices. Each of these languages is relatively complex, and the programmer should plan on spending some time learning the specific syntax of the chosen language before setting out to build a piece of software.
Choosing Development Tools
The most important tool the programmer must select to build software is the compiler. Modern development environments combine all of the software tools needed to develop a program into a single suite. The programmer will use an editor to write the program statements and save them into a file. A compiler will read this file, checking the syntax as it does, and then convert the programming statements into instructions a specific computer processor and operating system can understand. The result is an executable file that the programmer can use or sell. Programmers can use individual tools (editor, compiler, etc.), but the all-in-one suite makes the process much more convenient.
Preparing to Program
Building computer software requires the proper tools, an understanding of a computer language and the ability to think logically. Software operates with hard logical constraints with no gray areas; the computer processor will not guess or make decisions on its own. The programmer should prepare to think through what he wants to accomplish with his design before sitting down at the keyboard to create a software masterpiece.