---
# System prepended metadata

title: Crackeando o processo seletivo da Softplan/UNIC.

---

# Crackeando o processo seletivo da Softplan/UNIC.

Um guia (não oficial) para ir bem no processo seletivo da UNIC.

Criado e mantido por [Dejair Sisconeto](https://www.linkedin.com/in/dsisconeto)

## Resumo
- Aprenda Java
  - Aprenda Java EE ou Spring
  - Aprenda JDBC e JPA com Hibernate
  - Aprenda Programção orientada objetos
- Aprenda algum banco de dados relacional
- Estude algoritmos para melhorar sua lógica
- Aprenda Refatoração
- Aprenda código limpo
- Aprenda a escrever testes unitários com JUnit e Mockito
- Apredada TDD

## Steps by steps

### Estude Java.
 
 Como a UNIC usa Java como sua linguagem principal, é importante dominar a linaguagem Java, tente ir além da API básica da linguagem.

Alguns cursos de java que você pode usar para estudar:
 - [Curso de Java do Leonardo Moura Leitao](https://www.udemy.com/course/fundamentos-de-programacao-com-java/)
 - [Curso de Java do Nelio Alves](https://www.udemy.com/course/java-curso-completo/)
 - [Formação Java Alura](https://cursos.alura.com.br/formacao-java)
 - [Formação Java Web Full-Stack](https://www.jdevtreinamento.com.br/formacao-java-web-profissional/desconto.html)

O livro [**Java Efetivo do Joshua Bloch**](https://amzn.to/3syH5AX) é essencial para quem já sabe Java e quer ficar mais afiado, recomendo muito a leitura dele.


### Estude Algoritmo

Algoritmo é base da programação, então temos que treinar bastante resolução de algoritmos.

Site para treinar resolução de algoritmos.
- [Exercism](https://exercism.org)

### Estude Java EE e Spring
 
 Existe diversos cursos disponíveis na internet, eu não tenho nenhum para recomendar, foi mal.
 Mas pode ser qualquer um na Udemy.

### Estude Testes 

Testes unitários não é TDD é importante enteder isso. Além de dominar as ferramentas para crianção de testes como JUnit, Mockito e Pitest, temos que estudar as técnicas.

- [Curso de básico para aprender JUnit e Mockito](https://www.udemy.com/course/testes-unitarios-em-java/)
- [A Case For Outside-In Design](https://www.youtube.com/watch?v=fKHYBnuPApY)
- [The Three Laws of TDD](https://www.youtube.com/watch?v=qkblc5WRn-U)
- [Testing and Refactoring Legacy Code](https://www.youtube.com/watch?v=LSqbXorkyfQ)
- Outside In TDD by [Sandro Mancuso](https://twitter.com/sandromancuso)
    - [Parte 1](https://www.youtube.com/watch?v=XHnuMjah6ps)
    - [Parte 2](https://www.youtube.com/watch?v=gs0rqDdz3ko)
    - [Parte 3](https://www.youtube.com/watch?v=R9OAt9AOrzI)
- [3A – Arrange, Act, Assert](https://xp123.com/articles/3a-arrange-act-assert)
- [TestPyramid](https://martinfowler.com/bliki/TestPyramid.html)
- [The Practical Test Pyramid](https://martinfowler.com/articles/practical-test-pyramid.html)


## Programação

Aprender a desenvolver com qualidade de manunteção é essencial nos dias de hoje.

- Livro [Código limpo](https://amzn.to/3tvq9uy).
- Livro [Refatoração](https://amzn.to/3C9flWL).
- [Top 15 IntelliJ IDEA shortcuts](https://www.youtube.com/watch?v=QYO5_riePOQ&list=PLPZy-hmwOdEU9mhOD2q4mLdwFtvlbMbcZ&index=11&t=32s)
- [YAGNI](https://martinfowler.com/bliki/Yagni.html)
- [BeckDesignRules](https://martinfowler.com/bliki/BeckDesignRules.html)
- [Hexagonal architecture](https://alistair.cockburn.us/hexagonal-architecture/)
- [Arquitetura limpa](https://amzn.to/3MhqU2z)
- [The Clean Architecture](https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html)
- Aprenda sobre object calisthenics em java

## Times e Processo

- [On pair Programming](https://martinfowler.com/articles/on-pair-programming.html)
- [MVI](https://www.codurance.com/publications/2020/01/27/minimum-valuable-increment)

 
## Manifestos

- [Manifesto Software Craftsmanship](https://manifesto.softwarecraftsmanship.org)
- [Manifesto agil](https://agilemanifesto.org/iso/ptbr/manifesto.html) 
- [Manifesto TDD](https://tddmanifesto.com)

# Testes seus conhecimentos

Pratique, Pratique, Pratique, Pratique e Pratique mais um pouco.

- [Bowling kata](https://github.com/dsisconeto/bowling-kata)
- [Api de gerenciamento financeiro](https://hackmd.io/qxheGw8cQw6v8fXuSAHtdQ)

## Dicas

- Usar uma IDE como IntelliJ ou Eclipse vai te ajudar muito na hora de rodar os testes e fazer refatoções seguras.
- Se você usa uma IDE, é bom conhecer no que ela pode te ajudar.
- Sempre que você estiver refatorando um código execute os testes constantemente.
- Refatore pela IDE sempre que possível, fazer refatorações manuais é muito trabalhoso e perigoso.
- Use teclas de atalhos na IDE principalmente para formatar código e refatorar.
 
