Com base nas provas do IDECAN para cargos de TI (Analista de Sistemas, Desenvolvedor, etc.), vou te mostrar o que é mais cobrado e como estudar estrategicamente:
📊 Ranking de Frequência (mais para menos cobrado):
🔥 MUITO COBRADO (60-70% das questões):
1. Engenharia de Software e Ciclo de Vida ⭐⭐⭐⭐⭐
Modelos de processo (Cascata, Espiral, Incremental, RUP)
Fases do ciclo de vida (requisitos, análise, projeto, implementação, testes, manutenção)
Metodologias Ágeis (Scrum, XP, Kanban)
Papéis (PO, Scrum Master, Dev Team)
Cerimônias (Sprint Planning, Daily, Review, Retrospective)
Artefatos (Product Backlog, Sprint Backlog, Incremento)
XP: TDD, Pair Programming, Refactoring, Continuous Integration
Design Thinking (empatia, definição, ideação, prototipação, teste)
Tipo de questão comum:
"No Scrum, qual cerimônia tem como objetivo inspecionar o incremento
e adaptar o Product Backlog se necessário?"
a) Sprint Planning
b) Daily Scrum
c) Sprint Review ✅
d) Sprint Retrospective
2. Padrões de Projeto (Design Patterns) ⭐⭐⭐⭐⭐
GoF: Singleton, Factory, Builder, Observer, Strategy, Decorator, Adapter
Padrões arquiteturais: MVC, Camadas, Cliente-Servidor
Padrões de integração: API Gateway, Service Registry, Circuit Breaker
Clean Code: SOLID, DRY, KISS, YAGNI
Tipo de questão:
"Qual padrão de projeto permite que um objeto notifique outros objetos
quando seu estado mudar, sem conhecer detalhes sobre eles?"
a) Factory
b) Singleton
c) Observer ✅
d) Decorator
3. Banco de Dados Relacional ⭐⭐⭐⭐⭐
Modelagem: normalização (1FN, 2FN, 3FN, BCNF), DER, cardinalidade
SQL: SELECT, JOIN (INNER, LEFT, RIGHT, FULL), GROUP BY, HAVING, subqueries
Transações: ACID, níveis de isolamento
Índices e performance
PostgreSQL específico: JSONB, arrays, views materializadas
Tipo de questão:
sql-- Dadas as tabelas Cliente(id, nome) e Pedido(id, cliente_id, valor)
-- Qual query retorna clientes que NÃO fizeram pedidos?
SELECT c.nome
FROM Cliente c
LEFT JOIN Pedido p ON c.id = p.cliente_id
WHERE p.id IS NULL ✅
```
#### **4. Orientação a Objetos** ⭐⭐⭐⭐
- **Pilares**: Encapsulamento, Herança, Polimorfismo, Abstração
- **Conceitos**: Classes, objetos, interfaces, classes abstratas
- **Sobrecarga vs Sobrescrita**
- **Modificadores de acesso**
**Tipo de questão:**
```
"Qual pilar da OO permite que uma classe filha forneça implementação
específica de um método já definido na classe pai?"
a) Encapsulamento
b) Herança
c) Polimorfismo ✅
d) Abstração
```
### **🔥 COBRADO REGULARMENTE (20-30%):**
#### **5. Testes de Software** ⭐⭐⭐⭐
- **Tipos**: Unitário, Integração, Sistema, Aceitação
- **Níveis**: Caixa branca, caixa preta, caixa cinza
- **TDD** (Test-Driven Development)
- **Cobertura de código**
- **Testes em metodologias ágeis**
#### **6. Segurança da Informação** ⭐⭐⭐⭐
- **CIA Triad**: Confidencialidade, Integridade, Disponibilidade
- **OWASP Top 10**: SQL Injection, XSS, CSRF, Broken Authentication
- **Autenticação**: OAuth 2.0, JWT, SSO, OpenID Connect
- **Criptografia**: simétrica vs assimétrica, SSL/TLS, hashing
#### **7. Arquitetura de Software** ⭐⭐⭐
- **Camadas** (apresentação, negócio, dados)
- **MVC** (Model-View-Controller)
- **SOA** vs **Microsserviços**
- **REST** vs **SOAP**
- **API Gateway**, balanceamento de carga
#### **8. APIs REST** ⭐⭐⭐
- **Métodos HTTP**: GET, POST, PUT, PATCH, DELETE
- **Status codes**: 200, 201, 400, 401, 403, 404, 500
- **REST Constraints**: Stateless, Client-Server, Cacheable
- **HATEOAS**
- **Versionamento** de APIs
### **🟡 MENOS COBRADO (10-20%):**
#### **9. Java/Spring** ⭐⭐⭐
- **JPA/Hibernate**: entidades, relacionamentos, JPQL
- **Spring Boot**: autoconfiguration, dependency injection
- **Annotations**: @Controller, @Service, @Repository, @Autowired
#### **10. Git e CI/CD** ⭐⭐
- **Comandos Git**: clone, pull, push, merge, rebase
- **Branching strategies**: GitFlow, trunk-based
- **CI/CD**: pipeline, build, test, deploy
#### **11. DevOps e Containers** ⭐⭐
- **Docker**: images, containers, volumes, Dockerfile
- **Servidores**: Apache, Nginx (conceitos básicos)
### **🟢 RARAMENTE COBRADO (< 10%):**
#### **12. Tecnologias Específicas** ⭐
- PHP/Laravel (raramente)
- JavaScript frameworks (React básico)
- RabbitMQ/Kafka (conceitos)
- Prometheus/Grafana (conceitos)
- NoSQL (conceitos básicos)
## **📚 Estratégia de Estudo por Prioridade:**
### **Fase 1 - ESSENCIAL (estude PRIMEIRO):**
```
1. Scrum/Agile (Scrum Guide oficial)
2. Padrões GoF (Factory, Singleton, Observer, Strategy)
3. SQL (JOINs, GROUP BY, subqueries)
4. Normalização (1FN a 3FN)
5. SOLID e Clean Code
6. MVC e Arquitetura em Camadas
7. OO (4 pilares + conceitos)
8. Testes (tipos e níveis)
```
### **Fase 2 - IMPORTANTE (depois do essencial):**
```
9. REST (métodos, status codes, constraints)
10. OWASP Top 10
11. OAuth 2.0 e JWT
12. TDD e automação de testes
13. SOA vs Microsserviços
14. Git (comandos básicos)
15. Docker (conceitos fundamentais)
```
### **Fase 3 - COMPLEMENTAR (se sobrar tempo):**
```
16. Spring Boot (IoC, DI, annotations)
17. JPA/Hibernate
18. CI/CD pipelines
19. NoSQL (conceitos)
20. Protocolos (HTTP/2, WebSockets, gRPC)
```
## **🎯 Dicas Específicas IDECAN:**
### **1. Foco em conceitos teóricos:**
```
❌ NÃO caem: códigos complexos, sintaxe específica
✅ CAEM: conceitos, definições, quando usar, vantagens/desvantagens
```
### **2. Questões decoreba:**
```
Exemplo típico:
"Qual método HTTP é idempotente e ATUALIZA um recurso completo?"
Resposta: PUT ✅
```
### **3. Questões de aplicação:**
```
Exemplo:
"Uma aplicação precisa garantir que apenas uma instância de uma
classe exista. Qual padrão usar?"
Resposta: Singleton ✅
```
### **4. Pegadinhas comuns:**
- **Scrum**: PO não faz parte do Dev Team
- **SQL**: LEFT JOIN ≠ RIGHT JOIN
- **REST**: PUT (completo) vs PATCH (parcial)
- **SOLID**: LSP (Liskov) vs DIP (Dependency Inversion)
- **Normalização**: BCNF vs 3FN
## **📖 Material de Estudo Recomendado:**
### **Top 5 Livros/Recursos:**
1. **Scrum Guide** (oficial, gratuito)
2. **Design Patterns** (GoF) - resumos online
3. **Use a Cabeça! Padrões de Projetos**
4. **SQL Completo** (qualquer livro básico)
5. **Clean Code** (Robert Martin) - resumos
### **Recursos Online:**
- **Refactoring.Guru** (padrões de projeto visual)
- **SQLZoo** (praticar SQL)
- **OWASP Top 10** (site oficial)
- **Questões comentadas IDECAN** (QConcursos, Estratégia)
## **⏰ Cronograma Sugerido (60 dias):**
```
Semanas 1-2: Scrum + Agile + Design Thinking
Semanas 3-4: Padrões de Projeto (GoF)
Semanas 5-6: SQL + Normalização + Modelagem
Semanas 7-8: OO + SOLID + Clean Code
Semana 9: Testes (tipos, TDD)
Semana 10: Segurança (OWASP, OAuth, JWT)
Semana 11: Arquitetura (MVC, Camadas, REST)
Semana 12: Revisão + Simulados
```
## **🎲 Simulado Rápido (tipo IDECAN):**
```
1. No Scrum, quem é responsável por maximizar o valor do produto?
a) Scrum Master
b) Product Owner ✅
c) Dev Team
d) Stakeholders
2. Qual padrão permite criar famílias de objetos relacionados?
a) Singleton
b) Abstract Factory ✅
c) Builder
d) Prototype
3. Normalizar até 3FN elimina:
a) Dependências parciais
b) Dependências transitivas ✅
c) Dependências multivaloradas
d) Redundância total
4. Qual princípio SOLID diz "dependa de abstrações, não de implementações"?
a) SRP
b) OCP
c) LSP
d) DIP ✅
5. REST é stateless significa:
a) Servidor não mantém estado da sessão ✅
b) Cliente não mantém cookies
c) Não usa banco de dados
d) Não permite autenticação
Foque nos tópicos da Fase 1 e você já terá 60-70% da prova garantida! Boa sorte! 🍀