### Hello World! ###
Essa foi minha primeira thread no Twitter, falei sobre programação.
-História
-O que é
-Alguns tipos de linguagem
-Ser programador
-A base da programação
Entre outras anotações minhas.
Se algo estiver errado ou faltando, por favor, somem conhecimento.
### A História da Programação ###
A primeira máquina que usou um programa, lia cartões de madeira para identificar o código binário.
Todo computador entende o que você diz a ele por meio do código binário.
O "0" significa "falso" ou "desligado"
O "1" significa "verdadeiro" ou "ligado"
Os cartões de madeira utilizados seguiam um padrão de furos, onde os furos eram o 1, a máquina identificava esses furos por meio de hastes.
Então se houvesse um furo; 1, senão; 0.
Passado algum tempo eles criaram o sistema de armazenamento interno, onde eram criados programas para computadores, sendo ele um programa analógico que criava programas digitais.
E a primeira linguagem criada a partir disso foi a Assembly Language.
### O Que É Uma Linguagem de Programação? ###
Existem diversos tipos de linguagem de programação, uma para cada coisa que se queira fazer, desde fazer cálculos, até uma IA que consiga aprender sozinha. Além de que é possível combiná-las.
Mas existe um problema. Um processador só processa códigos binários, eles não entendem as linguagens de programação, então é necessário um compilador. O compilador faz o trabalho de traduzir a linguagem de programação para códigos binários.
Então as linguagens de programação são um meio mais fácil de códigos binários (a grosso modo). Elas são intermediárias que fazem as nossas idéias serem transmitidas ao computador de forma correta e simples, dependendo da linguagem escolhida.
### Os Tipos de Linguagens de Programação ###
A primeira coisa que você deve entender é que não existe linguagem boa ou ruim. Existe linguagem que se adequa ao que você quer fazer.
Aqui vão alguns exemplos:
C++ = usado para criar programas que exigem muita capacidade de processamento
PHP, HTML, Ruby, Java, Phyton e CSS = usados para criar páginas na internet
Objective-C = usado para criação de apps para IOS
Java = usado para criação de apps para Android
.NET, C# e Java = usados para criar programas para desktops
Delphi = usado para criar qualquer coisa
### O Que É Ser Programador? ###
O trabalho de um programador é dizer ao computador o que fazer em mínimos detalhes por meio das linguagens de programação.
### A Base da Programação ###
Para começar a programar você precisa entender 5 coisas, elas facilitarão seu aprendizado.
**1 - Lógica de Programação**
"Encadear seus pensamentos de forma que resolva um problema"
Pensar de todas as formas possíveis (possibilidades) como resolver um problema
**2 - Algoritmo**
Esclarecer seu pensamento em forma de um passo-a-passo, de forma que qualquer um entenda.
Especificado como realizar cada movimento de forma clara e compreensível
**3 - Abstração**
É a arte de esconder a complexidade enquanto expõe apenas o necessário
**4 - Estrutura de Dados**
Uma forma de organizar conteúdo. É importante ter organização na hora de guardar informações e mídias, para facilitar seu gerenciamento.
**5 - Saber o Mínimo da Linguagem Escolhida**
Saber o mínimo de uma linguagem, permite que você saiba como aplicar da melhor forma cada uma das bases anteriores nesta linguagem.
### Código X Pseudocódigo ###
Um código é escrito em uma linguagem de programação como Java ou C++ e deve seguir á risca sua sintaxe (a forma como deve ser escrito) e regras de suas respectivas linguagens. Caso contrário, ele não será executado e não cumprirá sua função.
Já um pseudocódigo, não é executável de forma nenhuma, ele é mais próximo de um rascunho, onde você escreve suas idéias usando sua linguagem natural e alguns termos da programação. É mais parecido com um algoritmo simplificado.
### Qual Linguagem de Programação Escolher? ###
Você deve escolher uma linguagem para iniciantes, que seja de fácil compreensão e que use menos termos. Isso caso não tenha certeza do que quer fazer.
•É bom escolher o que fazer!
Se você tem um projeto em mente, pode começar pela linguagem que é indicada para fazer esse tipo de projeto. Caso contrário, isso pode se tornar um desmotivador para aprender programação.
### Onde Praticar Minha Lógica de Programação? ###
Você pode instalar um IDE (Integrated Development Enviroment, em português; Ambiente de Desenvolvimento Integrado) como o Visual Studio, um editor de código-fonte como o Visual Code Studio, ou até mesmo alguns sites como:
Codewars Codechef
Exercism Project Euler
Entre muitos outros...
Além disso, também existe o fluxograma, que é uma forma de descrever um algoritmo com papel e lápis por meio de gráficos.
**•Passos para criar um fluxograma**
1 - Escolha uma meta ou escopo
2 - Faça um passo-a-passo disso
3 - Coloque o passo-a-passo no fluxograma e adicione o achar que falta
Gráficos e significados // Um pequeno exemplo


### O Que Existe Dentro de um Algoritmo? ###
Em um algoritmo podemos inserir algumas coisas que facilitam o entendimento e a organização de dados, sejam eles inseridos pelo usuário ou guardados na memória/banco de dados pelo programador.
E aqui fica o entendimento geral delas:
**1 - Variáveis e Constantes**
"Variável é um espaço onde guardamos informações que podem mudar ao longo do tempo"
Exemplo; resultados de operações matemáticas
"Constante é um espaço onde guardamos informações que não mudam ao longo do tempo"
Exemplo; pi ≈ 3,14
**2 - Tipos de Dados**
"São os tipos da informação que guardamos dentro de uma variável ou constante"
Usando o Portugol como exemplo, se quiséssemos adicionar uma constante como o pi, teríamos de identificar qual é o seu tipo, que nesse caso é; real, pois só o tipo real permite números fracionários ou não inteiros.
**3 - Operadores e Condicionais**
Os operadores são os símbolos que indicam uma ação a ser realizada com os dados fornecidos (+ - × ÷ etc).
As condicionais são aquelas que decidem o fluxo do código. Quais ações serão ou não realizadas dentro de uma condição específica (se e senão).
**4 - Estruturas de Repetições**
As estruturas de repetição permitem que você realize mais vezes um código sob as condições que lhe foram inseridas.
Obs: Lembrando que todo algoritmo segue essas estruturas, mas cada linguagem segue suas próprias regras.