Concluí recentemente meu Mestrado em Engenharia de Software e estou prestes a iniciar minha carreira profissional em algumas semanas. Meu papel será como desenvolvedor júnior de uma empresa que desenvolve software usando Java e tecnologias relacionadas (entre elas Spring e Hibernate). Para ser sincero, estou realmente empolgado com o que está por vir, principalmente porque quero desenvolver minha carreira como desenvolvedor Java. Também estou muito interessado em ganhar experiência no campo. Além disso, esta será minha primeira experiência profissional como desenvolvedor profissional, por isso quero realmente fazer o meu melhor desde o início.
Gostaria de saber quais habilidades e habilidades, tanto técnicas quanto técnicas, seriam mais apreciadas em um novo profissional (Desenvolvedor Júnior) que poderia fazer parte de sua equipe e em quais habilidades devo me concentrar para alcançar uma carreira de sucesso como Software Engenheiro.
fonte
Respostas:
Muitos deles são verdadeiros, não importa onde você esteja em sua carreira, mas podem ser especialmente importantes para alguém que está apenas começando.
fonte
Aqui está uma lista rápida em cima da minha cabeça:
fonte
Duas coisas: a vontade de aprender e a capacidade de aprender.
fonte
Curiosidade, entusiasmo, estabelecem um alto padrão para você, vontade de aprender, vontade de admitir que não sabem, interesse no que a empresa faz e como isso afeta o trabalho que você produz. (Todas as boas qualidades, mesmo se você tiver 20 anos de experiência)
Bom conhecimento técnico é ótimo, mas você precisa mostrar como aplicaria esse conhecimento.
Acima de tudo, o entrevistador deve poder vê-lo trabalhando lá, dando uma contribuição e querendo ficar. Se você é bom demais, isso pode levar algumas pessoas mais rápido do que ficar abaixo da média. ;)
fonte
Motivação. Você sabe como se motivar? Você sabe quais táticas podem funcionar melhor que outras? Trata-se da autoconsciência que algumas pessoas podem esperar que você saiba de toda a educação que você fez para ter descoberto isso de lado.
Habilidades básicas de teste e depuração. Você sabe o que é um teste de unidade? Você conhece algumas maneiras de depurar um problema? Não se trata de saber especificamente o que fazer em um ambiente, mas a idéia geral de quais podem ser os testes mais básicos e quais as estratégias a serem adotadas para analisar um problema.
Habilidades de comunicação. Quão preciso você é da linguagem? Quão bem você pode passar de técnico para não técnico? É certo que isso é algo a ser desenvolvido, mas é algo a ser observado e, em alguns casos, salvo alguém que pode ter problemas por não entender as implicações do que afirmam. Você se dá bem com as pessoas? Não que esse seja um requisito estrito, mas se você pode ter um bom relacionamento com colegas de trabalho, isso pode facilitar um pouco o trabalho de alguns trabalhos. Honestidade e integridade também se enquadram nesse grupo de habilidades, pois geralmente pode haver perguntas sobre o quão bem você diz o que quer dizer e o que diz. "Escritório" tem muitos exemplos de comunicação deficiente e, embora o trabalho seja fictício, pode ter havido muitas cenas realmente próximas da realidade para algumas pessoas em termos de trabalho em ambientes de escritório.
Versatilidade. As novas pessoas da equipe podem obter um amplo conjunto de responsabilidades, de modo que, em uma pequena empresa, você precise configurar bancos de dados, redes, servidores da Web e outras coisas que estão fora do desenvolvimento. Contratar uma equipe para cumprir um prazo seria outro exemplo aqui.
fonte
Para mim, como desenvolvedor júnior sem nenhum diploma, minha disposição de trabalhar duro e melhorar a mim mesma ajudou muito em minha carreira. Também notei que ser capaz de lidar com algumas críticas (positivas ou não) e acompanhar o que foi apreciado pelos meus superiores.
Quanto a um novo ambiente: aconselho apenas seguir o fluxo pela primeira semana ou mais. Eu cometi o erro de tentar demais, isso não foi apreciado.
fonte
Concordo com tudo o que já foi afirmado, mas quero enfatizar que você nunca deve esquecer essas habilidades gerais (e brandas) em vez de ser um especialista técnico. Você deveria trabalhar nos dois, mas eu prefiro ter um intermediário que possa comunicar o que eles sabem e ter um mestre que prefere trabalhar sozinho.
Além disso, não gaste muito tempo com o nariz em um livro. Os livros são bons, ótimos até, mas se você passa a maior parte do tempo lendo e menos trabalhando, não terá metade desses livros.
fonte
Ótimas respostas a todos. Gostaria apenas de acrescentar, por minha experiência limitada de vôo - você sabe o que eles chamam de licença de piloto?
Uma licença para aprender.
fonte
Muitas ótimas respostas.
Mesmo se eu não trabalhar para os "grandes homens" e não sou um guru, adicionarei meus 2 centavos.
Seja legal com as pessoas .
Tente socializar com seus colegas, passe um pouco do seu tempo com alguns deles todos os dias, se possível. Vá jantar com eles de vez em quando, dê uma boa risada com eles.
Em outras palavras, tente criar uma "comunidade" se não houver uma ou tornar-se parte dela, se ela existir.
Conhecer seus colegas o ajudará a conviver com eles mais facilmente. Além disso, as chances são boas de você se divertir fazendo isso.
fonte
Além de todas as coisas boas enviadas pela comunidade (acima), eu também esperaria ver evidências de algumas habilidades difíceis. Não são poderes de perfeição ou über-geek, mas um bom conhecimento prático dos conceitos básicos e básicos. Você já conseguiu o emprego ( parabéns, a propósito !), Então está praticamente lá.
Porém, atualizar o seu conhecimento e / ou atualizar-se com as ferramentas, idiomas e tecnologias que sua empresa usa, significa que você entrará em ação e criará uma boa primeira impressão.
Um desenvolvedor júnior perfeito hipotético conhecerá os fundamentos de coisas como
e assim por diante. Ele será capaz de se concentrar em adquirir novas habilidades sem precisar parar e aprender o básico. Ele será capaz de pensar (fazendo quantas perguntas sensatas quiser) - a maioria dos desenvolvedores seniores adora fazer perguntas técnicas sensatas ) com a tarifa de rotina de formulários on-line, páginas de administração que muitos juniores enfrentam nos primeiros meses. Tornar-se um desenvolvedor júnior confiável pode ser o seu primeiro teste de iniciação de equipe ;-)
Quando eu estava começando como júnior na equipe da web de uma grande corporação, a maior parte do trabalho inicial que me foi designado era algo pouco inspirador, mas me sobrecarregou ao ponto em que eu batia nos livros todas as noites para entender o que estava acontecendo. ter que fazer no dia seguinte . Passei por isso, mas isso foi estressante cinco ou seis meses após o relativo luxo do meu curso de mestrado ;-)
Se você pode fazer todas as coisas básicas de forma eficiente, você obtém coisas mais interessantes com bastante rapidez e, é claro, isso ajudará a avançar em sua carreira.
E ecoando o que muitos acima disseram, o mundo dos computadores e do código está em constante evolução. Você precisará aprender coisas novas a cada dois dias. Mantenha sua mente aberta e tente e veja por que você iniciou isso em primeiro lugar - porque você o faz menos. Nos próximos anos, poderá haver momentos em que isso não estará na vanguarda de sua mente. Entusiasmo vai levá-lo através da maioria dos obstáculos e obstáculos.
Dito tudo isso, minha experiência nos últimos doze anos mais ou menos sugere que a maioria dos juniores não fica na primeira empresa para sempre, portanto, não fique muito ansiosa por ser 'perfeita'. Cometer erros faz parte do processo que o levará do júnior até onde você quiser. Faço isso há um tempo e quase excluo um banco de dados de produção praticamente pelo menos duas vezes por ano.
Boa sorte com sua carreira.
fonte
(1) Uma mente aberta. Você não quer alguém institucionalizado para usar a linguagem X e o ambiente Y para cada projeto. Você quer alguém que possa se reconectar quando uma determinada tecnologia não resolverá um problema de maneira limpa e oferecerá boas alternativas. Além disso, você quer alguém que possa desafiar o pensamento convencional e apresentar soluções que motivem os negócios. Você pode experimentar isso sozinho, mas descobri que as pessoas se acostumam a um processo que não o modificam, mas ainda reclamam da quantidade de dor que isso lhes causa. Normalmente, quando chego, vejo como melhorar isso e oferecer soluções ao meu gerente. Agora, eu também diria que o pessoal deve ser "diplomático" sobre suas sugestões :)
(2) Boas habilidades de modelagem de domínio. Este é um grande problema que algumas pessoas ignoram. Em alguns dos lugares em que trabalhei, aprender sobre o negócio é 'sujar as mãos' e as pessoas se esquivam de problemas puramente técnicos, como a integração de corretores ortográficos no controle de versão, etc. e eles não investem muito tempo em melhorar o o negócio. Sendo capaz de analisar um negócio e criar modelos (simplificações) a partir dele e comunicar que para vários públicos-alvo, seja falado, visual (UML, SSADM ou o que for) ou um pouco de ambos, você quer alguém com essa mentalidade.
Dois livros que posso recomendar sobre o assunto são: O Programador Apaixonado e O Programador Pragmático . Ambos os livros oferecem bons conselhos para programadores juniores e seniores.
fonte
Tomando a iniciativa. Já tive muitas pessoas que não fazem isso e sempre esperam que me digam exatamente o que fazer. Se você vir algo que deve ser aprimorado, faça-o. Você tem uma idéia para melhorar alguma coisa? Traga isso adiante. Precisa de outra habilidade para melhorar alguma coisa? Aprenda.
Mostra que você se importa com o que está fazendo e deseja melhorar.
fonte
Não é para assustar você, mas uma coisa que vou alertar contra isso em todas as empresas em que trabalhei são os grandes métodos sujos de rolagem e objetos mal nomeados que fazem você temer abrir os arquivos de origem de maneira simples. choque e horror de tal confusão. Os locais em que você normalmente encontra esses itens são os manipuladores de eventos dos botões "OK" nas caixas de diálogo ou o botão "Enviar" nas páginas da web.
Eu estou te implorando do fundo do meu coração. Instale uma campainha de alarme mental, que quando um método começar a parecer grande, e por grande, quero dizer mais de 10 linhas, pense em criar outro método ... tantos métodos depois, você entenderá quanta responsabilidade o objeto no qual você está desenvolvendo.
A próxima campainha de alarme que eu recomendo é o máximo de 2-3 parâmetros em um método. Se você vir métodos com cerca de 10 parâmetros de entrada, diga Olá para a programação funcional em uma linguagem OO ...
Desculpe a ligeira frustração expressa nesta resposta, mas não posso gritar o suficiente como é benéfico aprender a escrever código limpo.
Por favor, pegue uma cópia de Robert. C Código Limpo Martins . Leia-o semanalmente, leve-o para o jantar, durma com ele debaixo do travesseiro, leve uma cópia para o banheiro e imprima algumas páginas e cole-as no teto para que, quando for dormir, possa lê-las antes você cochila;).
Desejo-lhe tudo de melhor em sua carreira. Sua paixão neste momento já mostra que você se sairá bem.
fonte
O único conselho que posso oferecer é nunca parar de aprender. A maneira que esses desenvolvedores de rockstar chegaram lá é dedicar tempo para aprender novas técnicas e idiomas, e é seu próprio tempo livre. Embora seja ótimo se você ficar lá por 10 anos, quando sair, você conhecerá apenas o Java + Spring + Hibernate. É por isso que, no meu tempo livre, olho para a plataforma .NET, Python e o código C ++ ocasional para permanecer ativo. Como alguém que trabalha em um MS em info sec, o tempo pode ser precioso e deve ser gasto com sabedoria.
fonte
A capacidade de usar o google. Realmente.
Não que eu nunca ajudaria ninguém, especialmente um colega júnior. Mas não há nada mais frustrante do que ter alguém que não faz a devida diligência na solução de problemas, continuamente.
Meu conselho para junior soft. engenheiros é fazer sua diligência na solução de problemas. Use o google, a wikipedia ou o stackoverflow de maneira diligente e metodológica quando não souber alguma coisa.
Não espere muito tempo antes de pedir ajuda a um colega mais sênior - isso depende do tipo de organização. Em uma boa empresa em que as pessoas se ajudam, se você passar mais de meio dia tentando encontrar uma resposta, não hesite em interromper sua própria pesquisa para pedir ajuda.
Em outras organizações em que as pessoas sempre são más, talvez você precise passar alguns dias sozinho (documentando tudo o que fez e em todos os lugares que pesquisou) antes de pedir ajuda. Nessas empresas, documentar o que você fez ajuda a mostrar a você que "você fez uma pesquisa no google", porque essa será a primeira resposta que eles lançarão para você.
Mas, independentemente disso, a essência do que eu procuraria em um engenheiro júnior é fazer sua devida diligência na tentativa de resolver um problema, em vez de esperar ter respostas respondidas a ele o tempo todo. Em poucas palavras, mostre-me que você pode usar o google.
fonte
Paixão pelo trabalho
Dispostos a aprender mais e mais e mais ..
honestidade
consistência
fonte
Ótimas respostas, se você seguir tudo o que as pessoas dizem aqui, tenho certeza de que alguém será bom no que está fazendo,
Só quero enfatizar alguns pontos.
Tudo de bom no seu trabalho
fonte
Uma habilidade que eu não acho que muitos programadores Jr têm, mas é realmente boa, a capacidade de criar suas próprias ferramentas. Você pode economizar muito tempo e esforço com algumas ferramentas personalizadas bem feitas. E eles não precisam ser nada extravagantes, a maioria dos meus são scripts de shell de 3 linhas, embora alguns sejam muito mais longos.
Mas aprender a automatizar as coisas facilitará sua vida. (E impressione seus colegas de trabalho quando você conseguir fazer as coisas bem)
fonte
fonte