When people talk about a computer program or computer programming, they’re talking about two different things.
A computer program is a set of instructions for a computer to follow saved in a file. It can be a single pass of instructions or, more commonly, an instruction set that loops back on itself and does work until stopped. In contrast, computer programming is the act of writing a computer program.
It really comes down to one is the creation, and the other is the act of creating. So let’s take each concept a little further.
What is a computer program?
A computer program at the base level is a set of instructions that a computer uses to execute the actions it’s intended to perform. More than that, it includes all of the details and instructions for creating the user interface, all of the controls, and the program data.
The program starts as a computer language text called computer code. That text gets saved in a file or set of files. The text files are then run through a special program called a compiler. The compiler reads the text files, looks for errors, and if none are found, it converts the text files to machine code that the computer can execute.
Some programs are a single string of instructions that runs once, and then it’s over. Usually, that’s necessary when you first install a program or if you have a simpler task you need to complete infrequently. Frequently enough to create a program to do it, but simple enough, it only takes a single set of instructions to complete it.
Other programs use what’s called a loop. A loop lets the same set of instructions repeat over and over until interrupted. This technique is used to keep a program running as long as you need it to be running.
Something that may be difficult to understand if you’ve never written any code because a computer program is an abstraction. That is to say; it’s an idea that has been realized in computer code and presented to people in pixels or network bits. So it isn’t a tangible thing even though it’s capable of doing real work and having a real impact on the world.
Because of this, those who create computer programs have an entire system of language that they use to talk about what they’re doing.
What happens when a computer program is ready for use? When a computer user receives a program for the first time, it is common to receive it in the form of an installer, which is another small program.
The installer program holds all the necessary files for the program to run, and its job is to unpack them and place them where they need to go on your computer. In addition, the installer program often has a step-by-step process that the computer user can step through, affectionately known as a wizard.
This process is very similar for all program types. The program can be a service or device driver that runs in the background. It can be a utility that you use as part of the operating system or an application that you run to get something done.
Computer programs can be big or small. So big that special computers need to be built to run it. So small, it spans only a few lines of code. People can set a computer program to run on startup, or it can be set to run only when the user opens the primary program icon.
What is computer programming?
Computer programming is the act of creating a computer program. This is done by typing out the program in a text editor in a computer language that you’ve chosen. Once your program reaches a point where you would like to check it or run it, assuming you chose a compiled language, you will need to compile it using a compiler for the language you’re using.
This process creates an executable file that users can run. Provided there were no errors discovered by the compiler or fix them, and it successfully finishes, you’ve just created a program. Congratulations! At this point, you can call yourself a programmer.
Let’s back up a bit. Let’s talk about the tools a computer programmer uses to practice computer programming. These tools should be considered a minimum. More advanced tools exist and help you create programs more efficiently and effectively.
- A computer
- A chosen computer language like C#
- A text editor or integrated development environment like Visual Studio that works with the language you’ve chosen
- A compiler for the language you’ve chosen
- A concurrent versioning system like GitHub
Aside from a computer, new programmers can find most of these other items for free.
Once a programmer has all of these tools set up and ready to go, they can write code. A typical day of computer programming involves checking your code out of the versioning system, making edits, and testing the software as you develop it. This can mean compiling it, stepping through the code operation line by line, and checking the values of all your data points.
At the end of the day, the programmer checks their code back into the versioning system so that the software can identify any edits and it can tabulate the progress. As the computer program is being developed, it will hit milestones and versioning goals that the versioning system will also account for.
What is a computer language?
There are several different types of languages that programmers can use.
Scripting – Scripting is done using a language that doesn’t need to be compiled. Programmers can use it for quick programs, big programs, or as a glue that connects program segments.
Procedural or Imperative Language – is typically a compiled language that focuses on variables, structures, and subroutine calls. An easy way to conceptualize it is that it’s based on creating a set of procedures that are executed in a sequence.
Object-Oriented Language – These are usually compiled languages that focus on creating objects that provide access to data and subroutines through a concept called an interface. This is what the big players in software employ to create all the great tools we use.
So why do we need all of this? Computers read instructions and data in a string of ones and zeros called machine code. If you’ve ever seen some binary instructions, it quickly becomes apparent why you wouldn’t want to write a program using that.
To make things easier, people use high-level languages that make the computer behavior they’re implementing easier to design, discuss, and write out. This necessitates the use of either an interpreter or a compiler. An interpreter is a small program that can read your scripts and interpret them into machine code on the fly as it’s running.
A compiler is a program that checks your code against a set of rules, and if they all pass, it converts it to an executable file of machine code.
When a computer programmer is learning how to write code, they usually start with either a procedural language or one of the object-oriented languages with a compiler that expects accurate code. This lets the learner come up to speed in general programming concepts while providing a great learning environment.