Opa Pessoal, aproveitando os três primeiros meses do ano, resolvi criar mais um post sobre carreira profissional . Hoje vou falar, o que acredito que para muitos é um grande obstáculo. Sendo assim abordarei o que é preciso para ser um programador java jr?
Vale lembrar que as informações postadas aqui podem ter visões diferentes na concepção de cada profissional, como também esta pode sofrer alterações de acordo ao mercado. Então não há uma tabela estática dizendo que para ser jr. tem que ter a certificação SCJP (por exemplo), porém recomenda-se, não pelo titulo de ser certificado e sim pelo objetivo dessa certificação. Agora um detalhe importante é que as informações deste post utilizei um pouco de minha experiência e consultei outros profissionais com mais experientes na área, além de dar uma pesquisada nos Rhs de algumas empresas o que para essas seriam um bom programador junior.
Antes de iniciar gostaria de tocar em um assunto que acredito ser importante para você leitor. Na ultima semana recebi e-mails com criticas construtivas (fantastico obrigado ao que enviaram) e também recebi criticas ofensivas. Mas nao é exatamente isso que desejo tratar e sim um ponto que tinha nas criticas é a não publicação de posts técnicos nsa ultimas semanas. Bem, ultimamente venho tratando bastante de assuntos relacionados a carreira profissional, para ajudar aqueles que se sentem um pouco perdido e os indecisos aonde investir etc. Mas por que você vem abordando isso? Simples:
– inicio de mais um semestre nas faculdades e alunos que vao se formar e ainda nao sabem o que quer ser quando “crescer” programador? desenvolvedor? o que preciso para ser um? 🙂
– estamos inicio do ano ainda e alguns alunos/profissionais procurando quebrar a inércia em que área investir: inglês? certificaçào? etc..
Em função disso dei uma parada nos post técnicos e também gosto sempre de está inovando, discutindo assuntos diferentes e não ficar falando somente de códigos, frameworks etc. Temos que está atento a soutras áreas que complementam nossa carreira. É por isso que temos as categorias no blog: carreira e entrevistas. Isso é tao importante quanto é para um Bom arquiteto sabre da camada de negócio. Então era isso que queria esclarecer e qualquer sugestão/crítica não deixem de enviar. Agora…
Lets go…
Novidades: Para quem estuda english confiram um post meu no englishexperts sobre TAGQuestions.
Se você está querendo iniciar seus estudos com java, acredito que seu primeiro emprego será: um estágio ou depender de seu skill pode iniciar como programador jr. Java. Mas o que é necessário para ser um programador jr? Recomenda-se que o profissional tenha os conhecimentos apresentados a seguir para realmente ser um full jr. Quero salientar que os títulos apresentados a seguir não refere-se a velha discussão certificação x experiência, e sim com o conteúdo e objetivo que cada uma aborda, por exemplo a SCJA aborda UML, fundamentos Java, O.O etc. Sendo esses conceitos necessário que um programador deve saber por natureza.
Mais um detalhe se você é programador jr. você pode ser um jr. na plataforma JEE, JSE, JME, enfim você escolhe, mas é recomendável que entenda um pouco das outras plataforma porém você tem que ser especialista em uma delas, em alta hoje temos JEE e tudo indica que JME ja está dando seu start, com a TV Digital.
Vamos lá:
Para ser um programador jr. Java recomenda-se:
-
Saber o conteúdo da SCJA , se tirar a certificação será melhor para você, pois poderá testar o quanto você sabe e o que precisa dar mais uma estudada. Para o mercado essa certificação não vai mudar muito sua vida profissional.
-
Saber o conteúdo da SCJP a fundo, programar sem dificuldades com base no conteúdo dessa certificação. Ou seja, saber usar: threads, generics, O.O, Wrappers, IO etc.
-
Ter um conhecimento razoável da API JavaSE. Criar um formulário, uma caixa de texto, botão, e gerar actions. Tipo de coisa básica como desenvolver uma calculadora. Enfim testar seu knowledge.
-
Apenas coloquei esse tópico para reforçar mas é obvio que precisa saber O.O de verdade, tem que está na veia, porque será a base para o aprendizado.
-
Saber um pouco de SQL é recomendável, ser leigo que não ficaria bem, mas ter noção e ser capaz de executar os comandos mais simples, vai soar bem. Se você não tem isso no seu curso de T.I na faculdade, cobre para ver em algumas das aulas de BD.
-
Entender os conceito de BD, você pode até não ser um experts como criar conexões de sua aplicação java com um BD, mas saber ler os relacionamentos é requisito, um programador que não conhece chave estrangeira, chave primaria etc, é complicado pois isso é a base da base de saber algo sobre BD.
-
Dar uma estudada como funciona o JDBC e fazer algumas brincadeiras, um livro que ensina bem legal como mexer com JDBC é dos irmãos Deitel.
-
Conhecer basicamente como funciona uma aplicação JEE.
-
Saber um pouco de HTML e XML, conseguir ler codes, mesmo que tenha algumas dificuldades.
-
Conhecer a fundo as principais IDEs usadas nas maiorias das empresas (Netbeans e Eclipse). Não se trata apenas de instalar e configurar a IDE e sim como instalar um plugin? Como montar um ambiente JME,JSE ou JEE? Como gerar um javadoc de sua app, tendo como base as recomendações da Sun? Seu javadoc tem que ter como objetivo que qualquer outro programador que venha ter acesso consiga ler e entender sua aplicação sem precisa ter acesso a ela em primeira instância.
Essas são as dicas e os skills para ser um full jr. e que vai ajudar muito durante um processo seletivo, claro que há mais skills que pode ser inserido. Não podemos esquecer que estamos falando de tecnologia, que é algo dinâmico, API que você estudou ontem, hoje pode está obsoleta, outra situação que temos é quando uma nova tecnologia foi lançada essa pode ser inserida pre-requisito para um jr. Quem define isso é o mercado (exemplo: saber AJAX).
Um dica é se você fizer uma boa faculdade, a metade desses assuntos já deve ser comum, e que para completar a formação jr. Não vai faltar muito, apenas alguns pontos que pode ser desenvolvido em pouco tempo. Porém isso vai de cada aluno, quando falei “boa faculdade” não estou citando as mais conceituadas do pais, e sim como foi a procedencia do profissional como aluno durante os 4 anos. Estudei ou apenas para passar nas materias? Ai que vai está a diferença. Claro que quando se estuda em uma boa faculdade, a opção “apenas passar nas matérias” fica bem mais difícil para os alunos que adoram fazer isso.
Fique atento as mudanças no mercado. É aqui onde sua carreira mora.
Bem vou ficando por aqui, com mais uma dica de carreira profissional, o objetivo desse post é ajudar aqueles ainda que estão montando seus objetivos para 2009 e o plano de carreira. Então acredito que as habilidades descritas acima são pre-requisitos para entrar como programador jr. Java.
Um abraço e até o próximo post…
Camilo,
Parabéns pelo post. As dicas são muito boas. Comecei uma faculdade de gestão voltada para Web e me arrependi. Tranquei e pesquisei sobre desenvolvimento. Fiz alguns cursos incluindo SQL, OO e no meio do ano volta pra faculdade. Estou procurando uma oportunidade para início.
Não possuo experiencia em programação, Somente com manutenção de hardware. Estou um pouco perdido pra que rumo seguir, se procuro um estágio ou na area profissional tipo help desk. Para pessoas como eu o que você sugere?
grande abraço
Bom post Camilo!
Na minha opinião, você só esqueceu de tratar de um assunto que gera muita discussão para o cargo Jr:
A experiência, que a maioria das empresas pedem uns 6 meses para o cargo em questão.
Realmente é muito complicado, veja bem:
Estou no quinto período em uma renomada universidade e levo as coisas a sério.
Já possuo todos os conhecimentos citados em suas dicas, e possuo experiência acadêmica em projetos de iniciacao cientifica e também tecnológica, onde desenvolvi e desenvolvo softwares completos em J2EE, utilizando frameworks que o mercado adora!
Enfim, teria uns 3 projetos completos para mostrar!
Além de ter lógica matemática e sólidos conhecimentos em estruturas de dados. Um detalhe, nao menos importante: o inglês é avançado
Pergunta:
Daria para um Jr ?
Resposta:
Depende do RH onde o currículo vai passar, infelizmente!
Onde estudo, a maioria dos alunos são indicados pelos professores ao primeiro emprego. Há um networking bom, o que diminui um pouco a preocupação.
Enfim, minha dúvida é:
Após expor esse dilema da experiência que é tão discutida nos fóruns atualmente, gostaria de saber como as empresas grandes, como a ibm, se comportam diante de currículos “sem” experiência ?
Novamente, um bom post! Parabéns
Abraços
Show de bola o post Camilo!
Além dos skills que você citou, recomendaria também conhecimentos básicos de Engenharia de Software, quando um programador pegar uma especificação vai ter que entender o que está lá para desenvolver. E também conhecimentos básicos (pelo menos para que serve cada um, e como poder usar) sobre alguns frameworks mais usados, como Hibernate, Struts e JSF.
Abraços
Olá Camilo blz!! valeu pelo post cara..eu trabalho como analista suporte mas pretendo seguir a carreira de analisa/desenvolvedor…o q vc postou ajuda e muito a quem(no meu caso) ta ainda meio q perdido no que fazer daqui em diante em relação a desenvolver/programar em java…preciso tb comprar um livro bom sobre java(dos irmaos /deitel por ex)….enfim tenho q correr atras…uma pergunta só Camilo, se eu fizer a prova e conseguir a certificação ajuda tb num estagio ou um trampo msm como junior??
abraços!!
parabéns Camilo !
artigo excelente, conciso e enriquecedor
aproveito a oportunidade de solicitar permissão p/ divulga-la em meu blog
att
Ótimo post Camilo.
Durante anos tive dificuldades para me inserir no mercado de trabalho devido à experiência.
Estava atrás de trabalhar como Analista de Sistemas e/ou Programador quando saí da faculdade, mas a falta de experiência era a grande pedra no meu sapato.
Tirei certificações Microsoft como MCP, MCSA (sei que não tem nava a ver com desenvolvimento), mas percebi que foi de grande peso para conseguir uma vaga como Analista de Suporte (sei de muita gente que começou na área de suporte e depois migrou para desenvolvimento).
Hoje fui chamado para uma vaga de Analista de Sistemas de um órgão público na qual passei por concurso e estou cursando um cruso de Desenvolvimento Web com JEE.
Aliás, acho importante para o profissional de TI, esteja onde ele estiver, na iniciativa privada ou órgão público que ele sempre estude, sempre queira aprender as tecnologias novas, pois acredito isso ser um grande diferencial para um bom profissional.
Quero muito aprender novas tecnologias e tirar mais certificações, apesar de agora ser mais um concursado.
É com perseverança que alcançamos nosos objetivos.
Até mais pessoal!!!
Olá!
Estou terminando a faculdade em Analise de Sistemas, conclui treinamentos na impacta em Logica de Programação, MS Sql Server 2000-2005, UML – Analise de sistemas, XHTM -CSS com Tableless, Java Programmer 1, Java Programmer 2, JEE – JSP e Servlets, atualmente tenho conhecimentos sobre JDBC onde em alguns projetos feitos mesmo que academicos ou de iniciação propria utilizei conexões com diversos DB como por exemplo: PostgreSQL, My SQL, MS SQL Server, Iplus Oracle. Possuo conhecimentos basicos em Hibernate, JPA, JSF e também desenvolvi alguns projetos na plataforma Java SE, sou fanatico pelo Netbeans e ultimamente utilizo o 6.5 com todos os plug-ins instalados, tenho o ingles intermediario e o espanhol fluente em escrita e conversação, porém está dificil para conseguir um estagio, pois sempre quando vou participar de uma entrevista existe um novo tema a ser abordado, a ultima vez me perguntaram se eu conhecia Web Services, SOA enfim, acredito que para um estágio ou para um nivel de estagiario é complicado saber sobre esses novos metodos e ferramentas, pois se eu obter esses conhecimentos com certeza nao quero ser estagiario e sim no minimo um programador junior.
Qual seria a sujestão que você me daria?
Lembrando que possuo conhecimentos no conceito de OOP e para ter uma ideia, desenvolvi um projeto de vendas de opalas( usado apenas fins de informações na entrevista ) na ferramenta Dreamweaver todos os codigos em JSP e manutenções efetuadas através dos Servlets que o proprio Tomcat gera automaticamente, ou seja, quando temos que efetuar uma correção ou manutenção é mais facil visualizar o seu codigo através do Servlets porque possui o codigo Java puro e na JSP temos o codigo java dentro dos Scripts de HTML…. e mesmo com esses conhecimentos está dificil atender os requisitos de estágios até o momento…..
Estou começando a desanimar!
Oi,
Lopes, onde eu consigo um estagio, hum, que seja online, porque onde estou não tem, e que eu possa aprender, mesmo que so pra conhecimento, estou estudando java e fazendo um cursinho, mas eu queria por na pratica.
Atenciosamente,
Ótimo post, muito interessante mesmo…
Olá Camilo,
Ótimo post, me esclareceu várias dúvidas, mas eu gostaria de fazer uma pergunta. Concluí a faculdade há um ano, tenho os conhecimentos básicos que você citou acima (exceto os títulos de certificação) e experiência de 2 anos com Delphi, quais são as minhas chances de entrar no mercado Java? E essa experiência em outra linguagem é levada em consideração pelos RH’s?
Abraço
Olá Camilo,
Parabens pelo post, ficou bem completo, faltou so 2 pontos que acho interessante:
1 – Controle de versão, no minimo basiquinho de CVS.
2 – Sockets, se ele for trabalhar com Web saber utilizar um ServerSocket ou ate mesmo um Socket é um passo muito bom para o entendimento do que esta ocorrendo por baixo dos panos.