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! 🍀