Você está na página 1de 2

Curva de Aprendizado Java

Quinta-feira, 12/03/2009 s 10h20, por Fernando Franzini

A curva do aprendizado ainda o grande vilo sobre o aprendizado e a utilizao da tecnologias Java. Muitos empresas acabam selecionando erradamente outras tecnologias devido a este fato, como se aprendizado e produtividade fossem requisitos funcionais da aplicao. No existem dvidas de que ter uma equipe capacitada e produtiva so fatores fundamentais para o sucesso do projeto, mas goste ou no, no fazem parte de nenhum tipo de requisito. O sistema final deve ser entregue para o cliente na tecnologia que suporte seus "requisitos funcionais e no- funcionais" estabelecido pelo escopo, independentemente da capacidade ou produtividade de uma equipe de TI. Neste post eu gostaria de apontar um dos fatores de peso que cooperam diretamente para essa grande curva de aprendizado:

A tecnologia Java que foi completamente concebida em cima de conceitos e tcnicas da Engenharia de Sofware e atualmente tem evoludo o cooperado para o seu desenvolvimento.
O que acontece na maioria dos casos que o candidato a aprender Java acaba de deparando com um mundo totalmente novo e complexo, devido falta de uma base slida de conhecimento sobre o assunto. Ou seja, poderamos afirmar inversamente que se uma pessoa tem conhecimentos bsicos sobre assuntos relacionados com a ENGENHARIA DE SOFTWARE, com certeza no teria muitas dificuldades para aprender as implementaes que as tecnologias Java faz da mesma. Fiz uma pesquisa e coloquei abaixo uma lista de 26 conceitos atuais e necessrios sobre tpicos da engenharia de software que diretamente ou indiretamente esto intrnsecos em todas as plataformas de desenvolvimento das tecnologias Java: 1. Conceitos e Programao Orientado a Objetos - OOP 2. Programao Concorrentes - Multithread. 3. Anlise e Projeto Orientado a Objetos - OOAD 4. Banco de dados Relacionais - SGDB 5. Banco de dados Orientados e Objetos - SGBDOO 6. Programao Transacional Local e Distribuda - ACID 7. Linguagem de Modelagem Unificada - UML 8. Frameworks (Intrusivo/No-Instrusivos) 9. Mapeamento Objeto/Relacional - ORM 10. Arquitetura de Software - Estilos Arquiteturais: Camadas Lgicas Distribudas 11. Padres de Projeto 12. Desenvolvimento Baseado em Componentes 13. Injeo de Dependncia - IOC 14. Programao Orientada a Aspectos - AOP 15. Programao Baseada em POJOS 16. Domain Models 17. Domain Drive Design 18. XML 19. AJAX

20. Web Services - WS 21. Simple Object Access Protocol - SOAP 22. Arquitetura Orientadas as Servios - SOA 23. Web 2.0 24. Rich Internet Applications - RIA 25. Remote Procedure Call - RPC 26. Representational State Transfer - REST A dica seria a seguinte: antes de entrar em detalhes especficos da determinada tecnologia em si, o candidato pode identificar os conceitos relacionados no contexto e procurar entend-los de forma prvia e separada antes de entrar na programao pesada em si. Este caminho tem se mostrado muito interessante e a galera em geral tem conseguido bons resultados com isso. Bom, turma, no necessrio arrancar os cabelos achando que temos que saber tudo... acho que o ideal seria ir aprendendo conforme a necessidade aparece. Gostaria de deixar uma tima frase do Steven John Metsker do livro PADRES DE PROJETO EM JAVA: O desenvolvedor Java de sucesso aquele que passa mais tempo lendo do que escrevendo cdigo. Me coloco disposio para ajudar qualquer um que precise de dica sobre livros, materiais e links relacionados com os tpicos de engenharia de software descrito. E o post fica aberto para complementos e opinies. Aquele abrao e at a prxima!

Você também pode gostar