# Introdução
Este [[Mapas de conteúdo]] me permite organizar minhas ideias sobre programação. A maioria das notas relacionadas a este tópico tem a tag #Tema/Programação. Primeiro de tudo, é necessário entender [[Código de computador|o que é um código]] e desenvolver algoritmos usando [[Pseudocódigo]]. É importante entender que [[Código deve ser correto e eficiente]], com o primeiro precedendo o segundo.
# Conceitos
Aqui estão alguns conceitos importantes para programação.
## Conceitos Básicos
- [[Pensamento computacional]] - Envolve os seguintes quatro pilares:: [[Decomposição - Pensamento computacional|Decomposição]], [[Reconhecimento de Padrões - Pensamento computacional|Reconhecimento de Padrões]], [[Abstração - Pensamento computacional|Abstração]] e [[Algoritmos - Pensamento computacional|Algoritmos]].
- [[Estruturas condicionais]]
- [[Laços de repetição]]
- [[Operadores lógicos]]
- [[Funções na programação]]
- [[Arquitetura de Von Neumann]]
- [[Código de Computador]]
- [[Linguagem de baixo nível vs alto nível]]
- [[Trie in computing]]
- [[Compiladores]]
- [[Debugging|Debug]] e [[Debugger]]
- [[Processo de compilação de códigos]]
- [[Unicode]] e [[Código Padrão Americano para o Intercâmbio de Informação|ASCII]]
- [[Sistemas de numeração]]
- [[Análise assintótica]]
- [[Recursão]]
- [[Ponteiros]]
- [[Escopo na programação]]
- [[Ordem de Bytes]]
- Estrutura de Dados
- [[Filas em computação]]
- [[Pilhas (Computação)]]
- [[Trees na computação]]
- [[Tabela Hash (Computação)]]
- [[Trie in computing]]
- [[Alocação de memória]]
- [[Heap na alocação de memória]]
- [[Pilhas na alocação de memória]]
## Algoritmos
Aqui está uma lista de algoritmos interessantes e/ou importantes para conhecer.
- Algoritmos de busca
- [[Algoritmo de busca em profundidade]]
- [[Algoritmo de busca em largura]]
- [[Algoritmo de busca linear]]
- [[Algoritmo de busca binária]]
- Algoritmos de ordenação
- [[Algoritmo de ordenação por bolha]]
- [[Algoritmo de ordenação por seleção]]
# Linguagens
- [[Linguagem de programação C]] - É uma das principais linguagens de baixo nível e amplamente utilizada pela eficiência e baixo uso de recursos.
- [[02 - Notas de literatura/Linguagem de programação Python]] - Uma nota sobre minha linguagem de programação favorita.
- [[Rust language]] - Uma linguagem de programação de sistemas que prioriza desempenho, segurança de memória e concorrência.
- [[Linguagem de Consulta Estruturada|SQL]] - Uma linguagem para interagir com bancos de dados relacionais.
- [[JavaScript]] - Uma linguagem de programação comumente usada para programação web.
# Ferramentas
- [[Visual Studio Code]] - É um editor de código leve, multiplataforma/multilíngue que oferece recursos avançados para o desenvolvimento de software.
- [[Thonny]] - É um ambiente de desenvolvimento integrado projetado especificamente para iniciantes na programação [[02 - Notas de literatura/Linguagem de programação Python]].
- [[Arduino IDE]] - Interface de desenvolvimento integrada para programar [[Arduino]] e outros dispositivos.
# Livros
# Bases (Conteúdo não visível no Site)
```base
views:
- type: table
name: Tabela
filters:
and:
- file.tags.contains("Tema/Programação")
groupBy:
property: file.folder
direction: ASC
order:
- file.name
sort:
- property: file.ctime
direction: DESC
markers: number
indentProperties: false
```