The First Programs
The earliest computers were not programmed in the same way as today's computers. It took much more effort. The early computers' memories held only data and not programs. The concept of programming those early computers was vastly different because the programs were hard-wired into the machine. The programs were physically wired by experts to generate and process the data. The first computer pro-grammers had never heard of using a keyboard, editor, and compiler; the first programmers were hardware experts, not software experts.
Programming these computers was very difficult. To make a change, the hardware programmer had to reroute the wires that made the program do its thing. It wasn't long before a man by the name of John von Neumann invented the shared-program concept. He demonstrated that a program could be stored in memory along with the data. Once the programs were in memory and out of the wired hardware, the programs were much easier to change. John von Neumann's breakthrough was one of the most important and lasting advances in the entire computing history; we still use his shared-program concept in today's machines.
Those early programmers used the switch panel to enter programs into the computer's shared memory. Although it was fantastic for its time, programming these computers took a tremendous effort because they had to be programmed in the machine's native 1s and 0s. Therefore, the first few instructions to a computer might look like this:
01000110 11000100 10111011 00011101
Whenever a programmer wanted to add two numbers, move values in memory, or whatever, the programmer had to refer to a table that described the proper patterns of 1s and 0s for the desired instructions. Flipping the switches and programming the machine took hours, but it was a giant leap forward from hard-wired computer programming.