Programação muitas vezes é vista como um bicho de sete cabeças, mas a realidade não é bem assim. Infelizmente, a maioria das pessoas é levada a acreditar que para programar é preciso ser um gênio em matemática, amar as exatas e coisas do gênero.
Quando na verdade, nos dias de hoje com toda a tecnologia disponível e facilitada, caso a pessoa saiba o básico de matemática e ela seja esforçada e criativa, ela pode se arriscar sim nesse mundo de possibilidades ilimitadas.
Um alto conhecimento de matemática é necessário em áreas mais específicas da programação, já o básico do dia a dia da maioria dos programadores que é criar coisas mais simples como um aplicativo de loja para celulares, um jogo simples de luta, criar coisas para a web ou qualquer outra ideia que não envolva alguma parte que precise de muitos cálculos e algoritmos sofisticados, é bem acessível para a maioria das pessoas que sonham em entrar nesse meio, seja para trabalhar ou se divertir.
Esse material foi feito para todos que sonham alto e desejam transformar sua criatividade em algo real através dos jogos ou aplicativos.
O material usado é acessível para pessoas com deficiência visual e visa criar softwares com acessibilidade para todos.
Mas afinal, o que é Programação?
Programação é a maneira que nós humanos criamos e usamos para informar para as máquinas o que elas devem fazer, como fazer, onde fazer, quando fazer e em que ordem fazer.
Por tanto, para desenvolver um software ou sistema, seja para computadores, celulares ou quaisquer outros tipos de eletrônicos, usamos programação.
Programar é criar uma receita dos comos citados acima usando códigos para que a máquina possa lê-los e executá-los.
Essa receita de código que os programadores escrevem para as máquinas denominamos e conhecemos como código fonte.
Mas como a máquina lê e executa um Código Fonte?
A máquina Lê e executa um código fonte porque o mesmo é traduzido para a linguagem das máquinas, que basicamente é uma linguagem composta por números binários.
Não vamos nos aprofundar nessa parte das máquinas, mas com isso, você já deve ter percebido que se elas tem uma linguagem, cada código fonte que nós humanos usamos para criar as receitas para que executem o que queremos também tem.
Muito bem. Porém, essa linguagem que nós humanos usamos para escrever os códigos não é Português, Inglês ou qualquer outro idioma falado e sim, uma linguagem criada especificamente para isso.
Mas hoje não existe somente uma linguagem para fazer essa comunicação entre os humanos e as máquinas. Ao longo do tempo, como a tecnologia evoluiu, essa área também progrediu e com isso nasceram diversas linguagens com a finalidade de produzir os códigos fontes escritos pelos humanos para as máquinas os executarem.
Essas linguagens denominamos e conhecemos como Linguagens de Programação.
O que é uma Linguagem de Programação?
São regras semânticas e sintáticas específicas que formam e tornam única cada linguagem.
Com isso, o programador pode escrever instruções usando algoritmos, comandos, números, símbolos e textos estruturados pelas regras da Linguagem de Programação que ele escolher usar. E essas instruções escritas já sabemos que juntas formam um código fonte.
As diversas Linguagens de Programação foram sendo criadas com objetivos diferentes, tentando facilitar algum aspecto do que cada linguagem teria de produzir como resultado final. Isso quer dizer que sim, existem Linguagens de Programação que facilitam ou são mais apropriadas para desenvolver certos aplicativos ou controladores de hardware.
As Linguagens de Programação também acabaram sendo divididas em dois níveis, sendo eles: Linguagem de Alto Nível e Linguagem de Baixo nível.
O que é Linguagem de programação de Baixo Nível?
É a linguagem de Programação responsável pela comunicação do software com o hardware. Através dela, o programador consegue criar um código fonte que orienta tudo que um hardware deve e precisa fazer. Ela é feita especificamente para as máquinas e pode ser dividida em dois tipos, sendo eles: Linguagem de Máquina e Assembly.
O que é Linguagem de Máquina?
É a Linguagem de Programação que os computadores e demais máquinas entendem. Ela é composta por dígitos ou bits binários (0 e 1) que o computador lê e interpreta.
Exemplo de Linguagem de Máquina: 10110000 01100001 0000 01000100000001
Não é possível entender o que esses poucos zeros e uns estão dizendo para a máquina, imagine então como é um sistema que possui milhares de linhas de código… Por isso, criou-se a linguagem Assembly.
O que é a Linguagem Assembly?
Assembly é a primeira linguagem feita para facilitar a comunicação dos humanos com a Linguagem de Máquina. Ou seja, ela se parece mais com algo que possamos ler e compreender. Assembly usa um tradutor chamado Assembler para traduzir o código fonte para a Linguagem de Máquina.
Exemplo de Assembly: MOV AL, 63h
Isso atribuiria o valor hexadecimal 63 ao registro AL.
Melhor do que só ler zeros e uns, mas ainda assim, Assembly exige um grande conhecimento técnico da linguagem.
O que é Linguagem de Programação de Alto Nível?
As Linguagens de Programação de Alto Nível são totalmente compreensíveis e manipuláveis pelos humanos. Através delas, a maioria dos programadores escrevem seus códigos fontes para desenvolverem softwares de todos os tipos.
Você já deve ter ouvido falar de C#, Java, Python, etc., que são bons exemplos de Linguagens de Alto Nível.
Como as máquinas não entendem os códigos fontes das linguagens de Alto Nível, elas precisam ser traduzidas para Linguagem de Máquina.
E para isso, existem dois tipos de tradutores: Os Compiladores e os Interpretadores.
O que são Tradutores?
São softwares feitos especificamente para traduzir, ou seja, transformar os códigos fontes escritos pelos programadores em pura Linguagem de Máquina.
O que são Compiladores?
São softwares que traduzem o código fonte inteiro de uma só vez em Linguagem de Máquina, gerando um arquivo que pode ser executado e armazenado sem necessidade de novas traduções.
Exemplo: O arquivo executável de qualquer programa que você instalou no seu computador ou celular.
Essa ação de traduzir usando um compilador é conhecida como compilar.
C, C++ e C# são bons exemplos de linguagens que precisam ser compiladas.
O que são Interpretadores?
São softwares que traduzem em tempo real o código fonte em Linguagem de Máquina.
Isso permite que o programador veja o resultado conforme o Interpretador vai traduzindo cada linha do código fonte.
Exemplo: Ao navegar na internet, seu navegador está interpretando os códigos do site em tempo real para lhe mostrar o resultado que aparece na tela.
Java, Php e Python são bons exemplos de linguagens interpretadas.
Já vimos que as Linguagens de Programação podem ser de Alto ou Baixo Nível e que podem ser Compiladas ou Interpretadas, mas ainda resta mais um divisor importante a ser dito. Pois é, elas possuem mais duas grandes vertentes. E são elas: Linguagem de Programação Estruturada e Linguagem de Programação Orientada a Objetos.
O que é Linguagem de Programação Estruturada?
É um modelo de linguagem que segue uma estrutura bem definida e imutável, por isso o nome Estruturada.
Ela era conhecida principalmente por ser dividida em três etapas: Sequência, Seleção e Iteração. Mas hoje muitos a dividem em quatro etapas, sendo elas:
- Sequência: Organiza a funcionalidade do programa para executar as etapas dele uma a uma, em ordem e sem deixar que uma etapa prossiga sem que a outra termine.
- Seleção: Momento em que são verificadas as condicionais e suas possibilidades e disso é determinada a próxima etapa.
- Iteração: Momento em que é verificado se haverá repetição em alguma etapa do código devido a alguma condicional ainda ser verdadeira.
- Modularização: Essa etapa nova é feita pelos programadores, eles dividem o grande fluxo de código em pequenos fluxos para tornar o programa mais flexível e fácil de desenvolver.
Em outro artigo exploraremos mais sobre Linguagem Estruturada.
O que é Linguagem de Programação Orientada a Objetos
É um tipo de linguagem de programação que tem por característica principal objetificar as coisas através de classes.
A classe de um objeto contêm seus dados, atributos e comportamentos.
E cada objeto é definido pela sua classe.
Em outro artigo veremos exemplos práticos de orientação a Objeto e mais explicações sobre.