Conceitos de Programação
Conceitos fundamentais que todo desenvolvedor deve conhecer.
Paradigmas
Programação Orientada a Objetos (POO)
- Encapsulamento
- Herança
- Polimorfismo
- Abstração
Programação Funcional
- Funções puras
- Imutabilidade
- Higher-order functions
- Composição
Estruturas de Dados
Para aprofundar nesses conceitos:
- Arrays e Listas Encadeadas - Comparação entre estruturas lineares
- Array - Estrutura fundamental de dados contígua
- Introdução às Estruturas de Dados - Conceitos básicos
Principais estruturas:
- Arrays
- Listas Encadeadas
- Pilhas e Filas
- Árvores
- Grafos
- Hash Tables
Algoritmos
Estudo aprofundado: Entendendo Algoritmos
Tópicos importantes:
- Ordenação (Bubble Sort, Quick Sort, Merge Sort)
- Busca (Linear, Binária)
- Algoritmos de Grafo (DFS, BFS, Dijkstra)
- Recursão - Técnica fundamental para algoritmos
- Complexidade de Algoritmos - Análise de desempenho
- Big O Notation - Notação para expressar complexidade
Design Patterns
- Singleton
- Factory
- Observer
- Strategy
- Decorator
Clean Code
“Código limpo sempre parece ter sido escrito por alguém que se importa.” - Robert C. Martin
Princípios:
- DRY (Don’t Repeat Yourself)
- KISS (Keep It Simple, Stupid)
- SOLID
- YAGNI (You Aren’t Gonna Need It)