Babbage and LovelaceAlthough mathematics and algorithms are vital to computer programming, we will start with the duo that is most widely credited for both the concept of computer programs and the creation of the first one. Charles Babbage is considered to be the father of the programmed computer. As a mathematician, he understood how all calculations were made up of smaller parts that could be mechanized. To do this, the machine would need an input device, a processor, a control unit and an output device. Babbage conceptualized such a machine and dubbed it the Analytical Engine.
The conceptual Analytical Engine became even more important in computing history when Babbage’s friend, Augusta Ada King (formerly Byron and later to be Lovelace) wrote the first computer program for it. The algorithm-based program she wrote for the Analytical Engine was intended to calculate Bernoulli numbers, and would have worked if the machine had been built. Amazingly, this gem was tucked away in the notes she wrote for a translation she did of an Italian mathematician’s work. So it is that the eventual Countess of Lovelace is widely heralded as the world’s first computer programmer.
Herman HollerithThe first practical step toward a programmed computer was taken by Herman Hollerith. Hollerith, and the Tabulating Machine Company he founded in 1896, lie at a nexus in computing history. Hollerith’s punch card machines were definitely a step in the direction of a programmed and automated computer, but they also marked the birth of data processing. As if that major contribution weren’t enough, his company also became part of the iconic IBM in the 1920s. As far as programming, however, Hollerith’s punch cards provided a medium by which programming (laborious and slow programming) could take place.
The War Trio: Alan Turing, Konrad Zuse and John von NeumannIt sounds like the start of a joke, but a German, a Brit and a Hungarian greatly advanced the field of computer programing, both in theory and in practice. The Brit, Alan Turing, came up with the Universal Turing Machine, a conceptual machine that could be programmed and reprogrammed to do different tasks. During the war he also designed many single-purpose computers for cracking codes. The Hungarian, John von Neumann, added a description of the architecture that would be needed to create a stored-program computer, giving scientists and academics a to-do list.
Independently of von Neumann and Turing, Konrad Zuse built the first programmable computer using a programming language of his own devising called Plankalkul, which was written in binary. The potential of his computers was largely overlooked by the German military, and Zuse’s prominence in the history of computing has suffered for this reason. The fact that his pioneering work was done in Nazi-era Germany also didn't help his popularity.