A computação nasceu devido à necessidade de resolver operações matemáticas complexas em um tempo menor. Os primeiros equipamentos eram programados mecanicamente, no começo tinha que mudar o cabeamento a cada operação, depois passaram-se a usar interruptores de várias posições que ao serem modificados alteravam a operação do computador, e, posteriormente, começou-se a escrever um programa em cartões perfurados por impressoras especializadas.
E era assim que muitos dos primeiros computadores foram programados: modificando mecanicamente as rotas que a eletricidade percorria, mudando as etapas de processamento e, assim, obtendo um resultado final que é diferente para cada programa ou cada valor introduzido.
A partir disso nasceu a necessidade de ter engenheiros dedicados para programar esses equipamentos. Esta primeira geração de engenheiros conseguiu fazer com que o ENIAC e outros computadores da época fizessem cálculos de tabelas balísticas que permitissem aos exércitos ter maior precisão ao usar seus projéteis. Isso representou uma vantagem enorme para os países que tivessem a disposição um computador e engenheiros de software.
Desde os primeiros computadores, tornou-se evidente a necessidade de usar instruções de controle de fluxo, saltos, ciclos e ramificações que eram utilizadas conforme indicado pelas sequências de código. Ainda é discutido quem implementou essas sequências de código primeiro, mas é um fato que computadores como o ENIAC, que não foram projetados para funcionar assim, aceitavam a escrita de código sequencial, então este método foi consolidado como padrão.
Hoje ainda usamos estruturas de controle de fluxo para nossos programas, ciclos e outras instruções, com a grande diferença de que agora temos computadores em todos os lugares. Provavelmente, o telefone que você carrega agora no seu bolso é 1300 vezes mais potente que os primeiros computadores programados com cartões perfurados, ocupando um espaço 40 milhões de vezes menor. Na programação moderna, uma página da Web pode ser convertida em um aplicativo móvel preservando quase o mesmo código por meio de frameworks ou bibliotecas, como o React Native ou o Ionic. Além disso, plataformas como o GitHub facilitam a escrita colaborativa de código entre equipes de engenharia de software em todo o mundo.
Você quer saber mais sobre como computadores, smartphones, redes e a internet funcionam? Visite o curso de Fundamentos de Engenharia de Software da Platzi.