Vou iniciar meus estudos para a certificação SCJP (estou aguardando o livro :roll: ). Seguinte, queria saber o que é primordial um Programador Jr. saber além do conteúdo exijido pela SCJP. Tipo JDBC, Desing Patterns, etc.
Gostaria que os colegas mais experientes enumerassem por prioridade os conteúdos que consideram mais importantes ter domínio além do conteúdo básico cobrado pela prova da Sun.
Vou iniciar meus estudos para a certificação SCJP (estou aguardando o livro :roll: ). Seguinte, queria saber o que é primordial um Programador Jr. saber além do conteúdo exijido pela SCJP. Tipo JDBC, Desing Patterns, etc.
Gostaria que os colegas mais experientes enumerassem por prioridade os conteúdos que consideram mais importantes ter domínio além do conteúdo básico cobrado pela prova da Sun.
Abraços
Colocar prioridades é meio difícil, depende do que você for fazer e onde.
Ok, na minha humilde opinião é isso:
Para começar a ser um monkey-coder junior ou estagiário:
Saber programar pelo menos um pouco em java.
Saber ler uma SQL e ao menos ter uma idéia do que significa.
Conhecer minimamente a API do java SE.
Para ser um junior sério:
Dominar pelo menos metade do conteúdo da SCJA.
Dominar pelo menos metade do conteúdo da SCJP.
Conhecer razoavelmente a API do java SE.
Ter alguma boa noção de orientação a objetos.
Saber razoavelmente SQL.
Saber razoavelmnete conceitos de banco de dados (chave primária, chave estrangeira, relacionamentos 1-1, 1-N e N-N, normalização, etc)
Saber como usar o básico da JDBC (pelo menos o suficiente para executar cruds sem problemas)
Conhecer minimamente a API do java EE.
Ter alguma noção de javascript e de HTML.
Ter alguma noção de JSP.
Saber como usar uma thread.
Saber ler um documento XML, mesmo que com dificuldade.
Para partir para pleno:
Ter uma experiência razoável em java.
Saber diferenciar POG de código bem-feito.
Saber usar a orientação a objetos com naturalidade.
Ter chance real de passar na SCJP e na SCJA sem precisar de sorte.
Conhecer alguns detalhes intricantes e pegadinhas de java.
Conhecer com profundidade a API do java SE.
Conhecer com razoabilidade a API do java EE.
Conhecer SQL, conceitos de BD, servidores de banco de dados e JDBC com profundidade.
Dominar pelo menos metade do conteúdo da SCWCD.
Ter alguma noção sobre EJB.
Conhecer e saber aplicar pelo menos alguns design patterns.
Conhecer razoavelmente HTML e javascript.
Saber como localizar e corrigir pelo menos alguns problemas de threads, deadlocks e condições de corrida.
Ter possibilidade de fazer a SCJD e ser aprovado.
Saber trabalhar com XML.
Saber otimizar código.
Saber usar reflection e processar annotations.
Para ser senior:
Ter profunda experiência no java.
Bater o olho em uma POG e imediatamente já desmascará-la e já saber como consertar.
Dominar por completo o conteúdo da SCJA e da SCJP e tenha plena capacidade de prover treinamento a outras pessoas sobre elas.
Ter possibilidade de passar com facilidade na SCWCD.
Ter possibilidade de passar, mesmo que com alguma dificuldade na SCBCD, SCJD e SCEA.
Ter domínio completo de todos os conceitos de banco de dados, JDBC e SQL.
Saber trabalhar com XML sem problemas, manjar pelo menos um pouco de web-services e SOA.
Conhecer com profundidade padrões de projeto.
Conhecer os detalhes mais intricados de JSP, javascript e HTML.
Conhecer em grande profundidade as APIs do java SE e do EE.
Conhecer a orientação a objetos com completa e total perfeição.
Saber como funcionam EJBs.
Comer reflection e annotations no café-da-manhã, almoço e jantar.
Saber como localizar e corrigir grande parte dos problemas de threads, deadlocks e condições de corrida e trabalhar naturalmente com concorrência.
Saber otimizar código como ninguém e identificar gargalos de processamento não-óbvios.
Para deixar seniors comendo poeira:
Ter tanto quanto ou mais experiência em java, OO e design patterns do que o pessoal da Sun.
Ter chance real de gabaritar a SCJA, SCJP e SCWCD.
Ter capacidade de dar aulas sobre a SCBCD e SCEA e poder passar nelas com facilidade.
Poder passar com facilidade na SCDJWS.
Falar XML tão fluentemente quanto a língua materna.
Conhecer a maioria dos bugs e detalhes internos ocultos do java SE e EE.
Ser capaz de eliminar POGs e bugs de um sistema em questão de segundos ou de minutos, sem cometer erros.
Ser capaz de otimizar código de tal forma que fique muito mais rápido do que qualquer tipo de equivalente.
Ser capaz de fazer coisas com reflection e annotations que ninguém mais imaginava ser possível.
Conseguir transformar qualquer tipo de requisito mal-defindo e contraditório em algo funcional, eficiente, sem bugs e nem gambiarras.
Tratar SQL, JDBC, java, JSP, HTML, servlets, javascript, reflection, annotations, XML, EJB, SOA, threads e concorrênica como coisas tão trivialmente simples como respirar. Tendo total, completo e absoluto domínio sobre isso.
– E –
Não ter qualquer tipo de vida sexual ativa.
B
Bruno_Leonardo1
Obrigado pela resposta victorwss.
Não sei se um dia vou querer deixar seniors comendo poeira. Hehehe :lol:
Valeu
F
fernandoeick
Gostei da resposta Victorwss.
Mas, você tirou isso de algum lugar, ou simplesmente escreveu o que pensa?? Pelo que você escreveu eu já atendo metade dos requisitos de um nível pleno, porém deixo alguns do nível júnior a desejar. E tenho carteira assinada como Júnior… então é bom saber disso, para saber quando é hora de trocar de nível.
Gostaria de saber, com base em que você escreveu isso.
Abraços.
victorwss
Foi na base da minha própria visão pessoal tirada da minha cabeça em alguns minutos.
Ou seja, há uma dose de achismo nisso. Mas acredito que isso reflete pelo menos mais ou menos a realidade.
F
fernandoeick
Sei… de qualquer maneira achei interessante.
Flw.
victorwss
O problema de dar uma boa divisão de junior, pleno e senior, é que cada empresa tem os seus critérios, que podem ser radicalmente diferentes em outra empresa.
Há alguns casos reais que quem é junior na empresa X está na frente dos seniors da empresa Y. Ou seja, cada empresa tem o seu próprio critério de classificação. E nem sempre esses critérios são justos ou fazem sentido.
E também há muitas empresas cujo o único critério é o tempo de experiência (isso é horrível). Ou seja, quem comete sempre os mesmos erros e não sai do lugar a 10 anos é sênior, enquanto que uma pessoa brilhante que manja 10 vezes mais, mas só tem um ano de experiência é estagiário.
Daí os critérios que eu coloquei representam a minha visão (que alguns vão concordar e outros não).
B
Bruno_Leonardo1
Mesmo ocorrendo essa variação de empresa para empresa, acho que não foge muito dessas descrições.