---
# System prepended metadata

title: Untitled

---

## ferramentas
- o que é o terminal e o que é o shell?
    - cmd, bash, powershell
- comandos e parâmetros no `bash`
- ls, cd, rm
    - code .
    - mkdir pasta1
    - utilizando o tab
- navegando no terminal
    -  `cd`, `tab`, `..`
- por que diferentes linguagens de programação?
    - compiladas: c, c++, rust
    - interpretadas: python e js
    - mistas: java
- arquiteturas de computador
    - windows: executável terminal com .exe
    - linux e mac: executáveis tem flag de execução

## Passos para criar um programa:
- navegar até o diretório
- criar código fonte: editor de texto
    - notepad
    - notepad++
    - gedit
- compilar código: terminal + compilador
    - `g++ -Wall arquivo.cpp -o arquivo.exe`
- executar código: ./executavel

## IDEs: Ambiente de Desenvolvimento Integrado
- codeblocks
- visual studio code
- repl.it

## Entendendo o vscode
- explorer
- área de edição
- terminal - bash, cmd
- problemas
- debug
- extensões
- control shift p

## Compilando o código
- parâmetros
- erros
- warnings

## Código fonte
- bibliotecas padrão
- entrada e saída padrão
    - `std::cin >>`
    - `std::cout <<`
- escopo: visibilidade e tempo de vida
    - cumuladivo: controles
    - novo: funções
- variável
    - criação
    - inicialização
    - redefinição
    - sombreamento
- tipos
    - int, float, char, string, bool
    - casts ou conversões
        - automáticas
        - forçadas
- função
    - parâmetros
    - retorno

## Regras de formatação e escrita
- indentação
- nomes de variáveis
- nomes de funções
- formatação de controles (if, else, for, ...)
- linhas em branco

## Configurando ambiente - vídeo separado
- linux e chocolatey
- path de execução
- o que é o bash e onde encontrá-lo