Olá Pessoal,
Ano passado eu falei como ser um programador júnior & pleno. Discutimos qual o perfil técnico que no minimo o programador deve “ter” e o que esperado por algumas companhias. Claro que nenhuma informação contida no post era algo cientificamente comprovado(nesse também não). Apenas um achismo do autor tendo como base a experiência, analise do mercado, bate papo com alguem do RH e um pouco de achismo. Hoje vou falar sobre ser Pleno.
Lets go…
Outros posts:
Antes de começar, quero dizer que um profissional de IT não vive apenas dos conhecimentos técnicos nos dias de hoje. Há outras qualidades que são avaliadas e tem o mesmo peso ou até mais que o número de frameworks, certificações e tempo de experiência. Um exemplo que posso citar é trabalho em equipe, relacionamento, comunicação, equilíbrio etc. Do que adianta ser “bom” tecnicamente, mas você não sabe se comunicar bem, não tem proatividade, se acha o dono do mundo e não consegue de forma nenhuma trabalhar em equipe?!! Você pode ter a experiência que for em uma determinada tecnologia, mas os pontos que acabei de citar, eles são classificatório/eliminatório em um processo seletivo. O que um dia as empresas já fizeram “vista grossa” e queria apenas aquele “cara de informática” para “mexer com o computador”. Esse perfil não existe mais nas melhores empresas para se trabalhar.
Mas, a pergunta de muitos: “Camilo, o que eu preciso aprender, para se tornar um programador sênior, quantos frameworks, quanto tempo isso leva? Etc”.
-
Primeiro: Não existe o tempo definido e sim sua experiência adquirida nos projetos que tem participado e tecnologias que tem usado, não existe receita dizendo que somente se vc usou tecnologia X por Y tempo que vc pode se tornar um programador sênior. A sua capacidade de resolver problemas usando a tecnologia correta, atendendo os requisitos do cliente e não perdendo o foco do negócio vai contribuindo para sua formação. Então tire isso da mente que você vai se tornar sênior somente daqui à 5-10 anos. por alguem ti falou Não está escrito em lugar nenhum isso, porém a média geral que bem comum de ver no mercado, é que boa parte dos seniors não tem menos de 5 anos de experiência, mas por que isso? Bem, lembre-se que vc passa um bom tempo como júnior, depois vai para pleno e cai em sênior Mas, tb não há nada que diga que vc tem que seguir essa ordem. Já tive colegas que entrou como júnior e ficou por 1 ano e depois já caiu para sênior, isso vai do skill técnico do profissional + projeto + habilidades não técnicas que citei no inicio do post.
Agora outro ponto importante, é o projeto que você está participando ele é um fator bem decisivo e que acelera o processo, se tem um projeto bem ativo, dinâmico, que esteja aberto ao uso de novas tecnologias isso vai contribuir diretamente para sua formação e não tem salário que pague por isso.
Vejamos a parte técnica de aprendizado que se espera de um sênior Java:
-
Parece que isso nem deveria aparecer aqui, mas é bom repetir. Experiência em Java, O.O, Design Patterns são fundamentais para um bom sênior Java;
-
Ter o conteúdo da SCJA, SCJP, SCWCD, SCDJWS de forma suave na mente e na prática. Não estou dizendo que deve ser certificado, mas dominar todo aquele conteúdo como tomar café-da-manhã todos os dias;
-
Dominar XML de forma fluente.
-
Ser capaz de eliminar POGs e bugs de um sistema em questão de segundos ou de minutos, sem cometer erros. Essa habilidade é importante lembre-se tempo é $$.
-
Ser capaz de otimizar código de tal forma que o entendimento seja como somar 2 +2. Quer uma prova disso: Veja o livro refactoring de Martin Fowler o cara refatora de uma forma que tem que ser elogiada. Então usar de forma bem XP, Refactoring etc. Não pode ser uma novidade para um sênior
-
Conseguir transformar qualquer tipo de requisito mal-definido e contraditório em algo funcional, eficiente, sem bugs e nada de gambiarras;
-
Tratar SQL, JDBC, Java, JSP, HTML, Servlet, JavaScript, Reflection, Annotations, XML, EJB, SOA, Threads e concorrência como coisas tao trivialmente simples como respirar. Tendo total, completo e absoluto domínio sobre isso
-
Dominar os frameworks mais usados mercado, exemplo no momento que escrevo o posts: Struts 2, Spring, JSF, Hibernate etc. De 10 vagas para Java 10 pedem pelo menos conhecimento em 1 desses frameworks. Seja para júnior,pleno ou sênior
-
E por ultimo não parar de estudar, continuar de olho no mercado devorando novas tendências.
-
Preciso dizer que é bom saber inglês? E de preferência dominar o idioma de verdade e nao somente o “inglês técnico”.
Bem pessoal, vou ficando por aqui e espero que tenham gostado, o objetivo maior aqui é mostrar e ajudar aqueles que estão perdido “o que estudar Java?! ”, acredito com os pontos citados dar para ter um ideia e traçar o mapeamento o que estudar. Claro que as informações aqui não passa apenas da minha opinião, e não acordei hoje e resolvi escrever sobre o assunto e pronto. Pesquisei, conversei com colegas mais experientes, aproveitei profissionais de alto de nível em seleção de profissionais IT, para sugar um pouco as necessidades deles etc. E isso já vem sendo feito a um certo tempo. Não deixem de suas opiniões.
Abraços, see you next post.
Follow me: http://twitter.com/camilolope