Antes de iniciar a aprender a programar, é importante entender os conceitos ao redor da programação e por que fazemos isso.
A Saga dos Computadores é uma playlist do YouTube com uma série de introdução sobre a composição do computador como conhecemos.
Um computador moderno pode ser definido como uma máquina que realiza cálculos simples de acordo com instruções que recebe.
Para entender isso, vamos dividir o computador em algumas partes básicas.
CPU: É um componente que recebe uma lista de instruções e realiza as operações equivalentes uma a uma até que tenha executado todas as instruções. Normalmente essas instruções serão encontradas na memória.
Memória: A memória é um componente que armazena informações que a CPU vai precisar para trabalhar.
Entrada e Saída: Métodos de Entrada e Saída são responsáveis por permitir a um usuário ou fonte externa se comunicar com o computador, controlar e dar parâmetros para que o computador realize certas operações conforme desejado e permitir ao computador apresentar o resultado de operações e o seu estado atual ao usuário ou entidade externa.
Disco: É um armazenamento de longo prazo onde ficam guardadas informações que a CPU não está usando mas pode vir a utilizar em algum momento no futuro.
Tendo essa divisão em mente podemos entender o que é um programa.
Um programa de computador é um conjunto de instruções que residem na Memória e que quando executadas pela CPU podem receber Entrada do usuário, processar esses dados, trabalhar com a Memória e apresentar o resultado através da Saída.
Programar é usar técnicas e ferramentas para compor as instruções que serão executadas por um computador para resolver um determinado problema.
Linguagens de programação são ferramentas que permitem escrevermos programas utilizando uma linguagem mais próxima da humana do que a de máquina, além de outras facilidades que são úteis para o contexto da programação especificamente.
Existem basicamente dois tipos de linguagens de programação:
Linguagens Compiladas: Onde escrevemos o código utilizando essa linguagem que então é processado por um programa chamado compilador o qual vai gerar um arquivo executável pelo sistema operacional (código de máquina). Exemplo de linguagens compiladas: C, C++, Kotlin, Swift, Rust, Dart, Go etc…
Linguagens Interpretadas: Onde escrevemos o código utilizando essa linguagem que ao invés de ser transformada em código de máquina, é então executado diretamente por um programa chamado interpretador. Exemplo de linguagens interpretadas: PHP, Ruby, Java, Python, Lua, JavaScript etc…
JavaScript é uma linguagem interpretada que pode ser executada em várias plataformas como Navegadores Web, NodeJS e o Deno (que será usado nesse curso).
É uma linguagem de alto nível em que não se precisa aprender muito sobre conceitos complexos da computação para iniciar.
A principal forma que vamos programar é através de Algoritmos.
Vamos usar um exemplo simples para explicar o que é um algoritmo:
Imagine que você tem que fazer um bolo (problema). A receita é como um algoritmo, um conjunto de passos detalhados para fazer o bolo da forma correta. Exemplo:
Neste exemplo, a receita é um algoritmo porque é uma sequência de passos claros e detalhados para realizar uma tarefa específica, que é fazer um bolo de chocolate.
Se tirarmos esses passos de ordem ou esquecermos de algum deles teremos um bug, pois o resultado não vai ser o esperado. Se adicionarmos muito mais passos do que isso vamos acabar gastando mais tempo e energia do que o necessário.
Da mesma forma, em computação, um algoritmo é uma série de instruções bem definidas para resolver um problema ou realizar uma tarefa, como ordenar uma lista de números, buscar informações em um banco de dados ou realizar operações matemáticas.
Os algoritmos são a base do funcionamento dos computadores e ajudam a realizar diversas atividades de maneira organizada e eficiente.