Programa não é “o ícone do aplicativo”

Quando falamos em programa ou software, nos referimos a um conjunto organizado de instruções que dizem ao computador o que fazer com dados. O ícone na área de trabalho, o site no navegador ou o aplicativo no celular são formas de acessar programas — mas o programa em si é a lógica: regras, passos, condições e transformações sobre informação.

Pense numa receita de cozinha. A receita não é o fogão nem o prato pronto: é a sequência de operações (picar, aquecer, misturar, cronometrar). O fogão é o hardware; os ingredientes são os dados; quem segue a receita é o processador executando instruções. Programar é escrever receitas precisas o suficiente para uma máquina que não “adivinha” intenção.

Hardware vs software

  • Hardware: partes físicas — processador (CPU), memória (RAM), disco ou SSD, placa de rede, teclado, monitor.
  • Software: instruções e dados armazenados que controlam o hardware — sistema operacional, navegador, planilha, jogo, API no servidor.
  • Firmware: software gravado em chip (ex.: BIOS/UEFI) — camada entre hardware puro e sistema operacional.

Você não precisa montar computadores para programar, mas precisa saber que software depende de hardware e de um ambiente (Windows, Linux, macOS, navegador) que fornece serviços básicos: ler arquivo, abrir rede, desenhar na tela.

Diagrama PlantUML

O que todo programa faz, em essência

Independentemente de linguagem ou domínio, quase todo programa repete um ciclo:

  1. Entrada (input): receber dados — teclado, mouse, arquivo, API, sensor.
  2. Processamento: aplicar regras — calcular, filtrar, validar, transformar.
  3. Saída (output): mostrar resultado — tela, arquivo, email, resposta HTTP.

Exemplo cotidiano: calculadora. Entrada: 2 + 3. Processamento: soma. Saída: 5. Exemplo web: formulário de login. Entrada: email e senha. Processamento: validar credenciais no servidor. Saída: sessão autenticada ou mensagem de erro.

Programa vs arquivo vs processo

Iniciantes misturam três conceitos:

  • Arquivo de código: texto salvo em disco (app.js). Inerte até ser executado.
  • Programa: a lógica descrita nesse arquivo (e bibliotecas que ele usa).
  • Processo: instância em execução — o sistema operacional carregou o programa na memória e a CPU está executando instruções.

Um mesmo arquivo pode gerar vários processos (abrir duas abas pesadas do navegador) ou nenhum (arquivo parado no disco). Quando você roda node hello.js, o Node lê o arquivo, cria um processo, executa e encerra quando termina.

Tipos comuns de software que você vai encontrar

TipoExemploComo você interage
Aplicativo desktopVS Code, LibreOfficeInstala no SO, janela nativa
Site / web appGmail, dashboard adminNavegador baixa HTML/JS/CSS
API / serviçoBackend de um appRequisições HTTP, sem interface gráfica
ScriptAutomação de relatórioTerminal, agendador (cron)
Bibliotecalodash, ReactImportada por outros programas

Nesta trilha você começa com scripts simples no terminal e páginas web — depois entende como peças se conectam em sistemas maiores.

Instruções são literais

Computadores executam o que está escrito, não o que você quis dizer. Por isso programação exige precisão: nomes consistentes, condições completas, tratamento de casos inválidos. Um typo (lenght em vez de length) vira erro ou comportamento errado — não há “contexto humano” automático no código.

// Intenção humana: "se lista vazia, avisar"
// Código impreciso esquece o caso vazio — bug silencioso em produção
function media(valores) {
  let soma = 0;
  for (const v of valores) soma += v;
  return soma / valores.length; // valores = [] → divisão problemática
}

Corrigir exige pensar em todos os caminhos — tema das próximas aulas de lógica e condicionais.

Software como produto de engenharia

Programas profissionais vivem em ciclo contínuo: requisito → implementação → teste → deploy → monitoramento → correção. Versão 1 raramente é final. Git (semana 4) existe para rastrear mudanças; testes e logs existem porque software falha em combinações impossíveis de prever manualmente.

Como adulto entrando na área, trate programação como ofício mensurável: problema definido, critério de pronto, evidência de que funciona — não como talento misterioso.

Exercício de observação (sem código ainda)

Escolha um app que usa diariamente (email, banco, delivery). Anote em papel:

  1. Três entradas possíveis (toque, texto, localização).
  2. Três regras de processamento plausíveis (validar senha, calcular frete, filtrar lista).
  3. Duas saídas (notificação, tela atualizada, email).

Esse exercício treina olhar computacional — base antes de sintaxe.

Para aprofundar na web

Para entender melhor este tema, pesquise por:

  • "o que é software e hardware diferença" — consolidar vocabulário básico
  • "input process output computação" — entender o ciclo universal entrada-processamento-saída
  • "programa processo thread diferença" — diferenciar arquivo parado de execução ativa
  • "tipos de software aplicativo sistema utilitário" — mapear o ecossistema onde seu código viverá

Priorize documentação oficial (MDN, docs do Node.js, Git) e artigos com data recente. Anote o que aprendeu no seu README pessoal.

Atividades

  1. Software é besta definido como:

    • A) Apenas o monitor e o teclado
    • B) Conjunto de instruções que controlam hardware e processam dados
    • C) Somente sites acessados por navegador
    • D) Arquivo de imagem no disco
    Ver resposta

    Resposta correta: B) Conjunto de instruções que controlam hardware e processam dados

    Software são instruções e dados; hardware é físico. Sites são um tipo de software.

  2. Um arquivo .js parado na pasta Downloads é:

    • A) Um processo em execução
    • B) Código fonte armazenado, ainda não executado
    • C) O sistema operacional
    • D) Um tipo de CPU
    Ver resposta

    Resposta correta: B) Código fonte armazenado, ainda não executado

    Arquivo é texto em disco; processo só existe quando o runtime executa o programa.

  3. No ciclo entrada-processamento-saída, validar email e senha antes de login é:

    • A) Entrada
    • B) Processamento
    • C) Saída
    • D) Hardware
    Ver resposta

    Resposta correta: B) Processamento

    Validação aplica regras sobre dados recebidos — fase de processamento.

  4. Descreva um programa do seu trabalho ou cotidiano usando entrada, processamento e saída.

    Ver resposta

    Resposta pessoal. Exemplo: planilha de despesas — entrada: valores digitados; processamento: soma por categoria; saída: total mensal e gráfico.