Como inspirar um estagiário com programação? [fechadas]

8

A situação é essa: levamos um estagiário por um verão com a mente de que se ele o acompanhar, manteremos ele como desenvolvedor júnior de meio período.
Nós o levamos depois do primeiro ano na universidade, então seu conhecimento era muito baixo para ser envolvido em projetos reais (na verdade, ele programou apenas na universidade), então minha tarefa era empurrar o máximo de coisas possível para tê-lo pronto para ingressar na universidade. projetos reais em setembro. Enquanto formos uma equipe de desenvolvimento remoto, demos a ele a possibilidade de realizar seu estágio remotamente, com horários flexíveis.

Então, dois meses se passaram e eu não estou impressionado com o progresso dele. Dei várias tarefas para implementar, acesso a recursos de aprendizado, recomendou caminhos iniciais e assim por diante, concordei que ele apresentasse relatórios a cada dois dias, tínhamos sessões em pares de tempos em tempos, revíamos seu código juntos e etc.

De qualquer forma, parece que ele passou menos tempo escrevendo código do que eu esperava e antes que eu dissesse que ele não teve um desempenho bom o suficiente para se juntar à nossa equipe, eu estava pensando que a culpa é minha, ou que eu estava pressionando muita coisa , isso é importante em projetos da vida real (como teste de unidade, código de estruturação, material de banco de dados etc.) e não é divertido o suficiente, que o ligaria à programação e é por isso que ele passou menos tempo do que eu esperava.

Então, eu tenho ~ 20 dias restantes e posso usá-los para inspirá-lo na programação, a pergunta é com o que e como?

Giedrius
fonte
4
Parece mais um chefe distante do que um mentor próximo. Talvez você deva reconsiderar como você ensina?
3
@ ThorbjørnRavnAndersen - Entendo que não sou perfeito nisso e estou tentando melhorar, é por isso que faço perguntas como essa. Não tinha um bom mentor quando eu era júnior, não tenho ninguém para aprender essas coisas hoje, por isso é tentativa e erro.
Giedrius
Você precisa estar ativamente envolvido com ele. Se você não é, não pode avaliar o progresso dele e orientá-lo como profissional experiente. Parece que demorou muito tempo até você começar a ficar ativo com as interações.
Rig
1
Eu acho que o problema é tê-lo remotamente. funciona bem para algumas pessoas, mas não para outras. especialmente para pessoas que são estagiárias :) em primeiro lugar, você precisa ensinar-lhe bons hábitos de trabalho antes de pressionar a programação. pense "garoto de karatê". dar a alguém no primeiro ano da faculdade é uma idéia absurda, lembre-se de si mesmo no primeiro ano da faculdade: Ah, e se ele só codificou na faculdade, não o vejo como o tipo de pessoa que prefere ficar em casa em uma noite custava ao código do que sair com seus amigos
user60812

Respostas:

7

Que tal trabalhar em mini sprints de um dia.

Comece o dia (9h), fazendo com que ele indique o que ele / ela pretende fazer ao longo do dia (e gerencie suas expectativas) e depois fale sobre o que ele / ela concluiu (17h) - incluindo como os problemas foram tratados. Lentamente, com o tempo, estenda os sprints quando estiver mais feliz com o comportamento.

Fora isso, deixe-o continuar. Se eles não sentem a motivação para realizar o trabalho, é por isso que você leva um estagiário - ambos para que eles adquiram experiência, mas para você aprender como eles também funcionam. É a vida.

Spedge
fonte
6

Parece que você se esforçou demais e ele pode estar um pouco sobrecarregado. Conheci desenvolvedores experientes que não conseguiam entender o teste de unidade e imagino que era demais para alguém com apenas um ano de educação formal. E você não pode realmente forçar a inspiração.

A primeira coisa que eu faria seria conversar com ele e descobrir o que ele achava agradável até agora, e me concentrar nisso pelo resto de seu estágio. Podemos propor mil atividades divertidas relacionadas à programação, mas o que é divertido para mim provavelmente não será divertido para o seu estagiário.

Se há pelo menos um aspecto do trabalho que ele achou agradável, sugiro que vocês dois construam um mini-projeto em torno dele, mesmo algo não relacionado ao trabalho. Se, por exemplo, ele gostasse de trabalhar com bancos de dados (duvide;), você poderia criar um aplicativo CRUD básico e expandir os procedimentos armazenados e outras coisas de magia negra relacionadas ao banco de dados.

No final do dia, você deve estar preparado para a possibilidade de que ele não seja o que você está procurando.

Roc Martí
fonte
Bem, é uma espécie de ponto de minha pergunta - aplicações CRUD não é interessante, eu preciso pensar em alguma pequena aplicação simples que tem mais divertido do que CRUD :)
Giedrius
@Giedrius CRUD foi apenas um exemplo (reconhecidamente ruim), meu ponto principal foi descobrir o que ele mais gostou. Outro exemplo seria alguns problemas do Project Euler.
Roc Martí
1
Eu estava pensando que pode ser algo funcionando no appharbor.com - algo simples o suficiente, mas útil para outros - como decodificar a string base64, porque pessoalmente para mim o melhor motivador é saber que alguém está usando o meu aplicativo
Giedrius
6

Você pode estar pushing too hardcom o teste de unidade e a equipe de banco de dados do mundo real. No entanto, seu nível de habilidade deve estar em boa forma para corrigir bugs agora.

Meu understanding of internshipé um pouco diferente . Principalmente, os estagiários estão em seu último ano de estudo em Ciência da Computação, que têm um bom potencial para pesquisar, além de conhecer os conceitos básicos de escrever código, criando seus próprios aplicativos pequenos. No entanto, estar em um primeiro ano de universidade e não ter experiência com código antes de iniciar a universidade torna o candidato interno muito pouco qualificado.

Acredito que a habilidade mais importante no programador interno / júnior é que his analytically reasoning skills.talvez seja melhor tê-lo no escritório e guiá-lo pessoalmente enquanto acompanha seu progresso e abordagem na implementação das tarefas atribuídas. Porque você também pode observar as habilidades pessoais dele (como comunicação, atitude, ajuste geral ao ambiente da empresa).

In terms of motivation:você pode inspirá-lo, orientando-se para os recursos certos (para melhorar suas habilidades ou oferecer chance de aprender) e designando tarefas pequenas e executáveis ​​todos os dias. Ele pode estar se sentindo mais satisfeito se realizasse algumas tarefas de baixo nível todos os dias e se interessasse mais pelo processo de aprendizado e contribuição para o real code. No entanto, eu recomendo fortemente que você revise seu código antes de verificar o tronco principal.

Yusubov
fonte
1
Bem, eu concordo com você, o fato é que desta vez não foi minha decisão tomá-lo como estagiário.
Giedrius
5

Eu acho que a melhor maneira de inspirá-lo é dar-lhe algumas tarefas reais, não significa que você deve envolvê-lo no desenvolvimento do produto, mas geralmente sempre existem processos que precisam ser aprimorados dentro do processo de desenvolvimento, dando-lhe algumas tarefas de desenvolvimento de alguns utilitários que serão usados ​​mais tarde pela (s) equipe (s) podem ser uma ótima maneira de fazer com que ele se interesse e, ao mesmo tempo, saiba como os processos internos funcionam.

Felicidades

j0N45
fonte
3

Se você quiser inspirá-lo com a programação, talvez precise sair do contexto de negócios. Os estagiários têm sorte de conseguir estágios e normalmente aceitam o que podem obter; portanto, não se ofenda se o seu trabalho principal não estragar sua saia. Os estagiários ainda têm algum pó de fada no sangue, a maioria dos jovens programadores se torna programadora por causa do poder de criar e da alegria de criar algo incrível.

Descubra quais são seus hobbies e qual seria o trabalho de programação dos seus sonhos. Faça com que ele faça algo que ele acha incrível, seja um videogame em 2D ou um banco de dados para rastrear cards de pokemon.

Se ele fizer algo em sua área de interesse, ficará empolgado. Você pode ajudar a reinar no escopo, para que o que ele faça seja realista durante o período. Você também pode destacar tópicos relevantes ao longo do caminho, nos quais você pode fornecer educação,

Você optou por estruturar seu banco de dados dessa forma, qual foi o seu processo de pensamento por trás disso? O que aconteceria se xyz?

Erro 454
fonte
2

Separe as duas partes do seu problema.

1) Inspirar.

2) Ensinar.

Ele é pós-graduado com experiência em codificação, portanto pode ser tarde demais para inspirá-lo ou fazê-lo "ver" a majestade do código. Não é sua responsabilidade inspirá-lo, mas entendo por que você gostaria.

Por outro lado, ensinando, pela sua descrição, parece que você jogou muitas coisas nele e esperava que ele resolvesse isso. Como você tem um tempo limitado, defina projetos menores, organize-os um por vez e obtenha feedback diário. Acompanhe-o durante o dia e deixe claro que, se houver algum problema, pergunte, em vez de passar o dia todo lutando e sem conseguir nada.

Ian
fonte
3
A pergunta diz que o estagiário acabou de terminar seu primeiro ano na universidade, ele não é pós-graduado.
Roc Martí
Para acrescentar ainda mais ao comentário de Roc marti, a pergunta também diz que ele não tem experiência em codificação ao lado de seu primeiro ano de universidade.
Gilles
2

parece que ele passou menos tempo escrevendo código do que eu esperava

Descubra por que - ele está tentando escrever código, mas tem problemas para fazê-lo funcionar? Ou ele não está gastando tempo suficiente tentando? Se for o primeiro, você deve ajudá-lo mais, se for o último, melhor deixá-lo ir.

Doc Brown
fonte
2

Eu acho que existem alguns problemas nos dois lados. Pode ser um dos cenários que você apresentou.

Cenário 1: Estagiário com desempenho insatisfatório

Trabalho remoto é a bandeira aqui. É preciso que um indivíduo muito disciplinado trabalhe remotamente. Com pouca experiência, o estagiário pode não ter a combinação de motivação e conhecimento necessário para ter um bom desempenho remotamente. Se você precisar de uma posição remota, este estagiário não é para você.

Além disso, você menciona o aspecto divertido. Sei que é mais raro, mas por que não procurar alguém que goste das tarefas que você está atribuindo a elas? Honestamente, SCRUM e TDD podem ser muito divertidos, basta seguir a mentalidade certa. Sim, eles são poucos e distantes entre si, mas existem pessoas que realmente gostam de aprender novas tecnologias e metodologias de CS (= Talvez você precise continuar sua pesquisa.

Cenário 2: você não está mentindo perto o suficiente

Acredito que se fosse esse o caso, você saberia. Se o estagiário estivesse motivado, ele o procuraria com perguntas. Ele pergunta quando ele não entende alguma coisa. No entanto, se ele estiver escrevendo um código incorreto e você nunca disse nada, talvez seja necessário falar mais. O acordo é que, com sua experiência, ele não saberá o tempo todo se está escrevendo um código incorreto. Portanto, se você nunca se manifestou quando viu problemas, é o único culpado.


Seja qual for o caso, não há nada de errado em decidir se o estagiário não está certo para o trabalho ou ainda não está pronto. Eles são jovens e têm muito a aprender. Eles podem precisar de mais alguns anos para serem apenas estudantes antes de se sentirem realmente motivados a fazer um trabalho profissional. Se você acha que o problema é corrigível, tente-o nas próximas semanas e tente manter o estagiário. Caso contrário, vocês dois tiveram um verão de aprendizado e é isso.

Minha opinião pessoal: se eu estabelecer diretrizes e requisitos e alguém não os atender, não vou mais querer trabalhar com eles porque conheço e trabalho com pessoas que amam o que fazem, até o CRUD e quem estão visivelmente motivados a criar um ótimo produto. Qualquer pessoa assim deve ter sucesso (= No final, a única maneira de chegar ao fundo do problema é conversar com o estagiário. Tente ter uma reunião de progresso (ou algo assim) onde você possa conversar com o estagiário antes de tomar qualquer decisão.

David Cowden
fonte
2

Eu recomendaria começar por deixá-lo olhar por cima do ombro enquanto codifica (é mais difícil fazer isso remotamente, mas com um bom programa de compartilhamento de tela e software de voz, é possível). Pegue um recurso do requisito para concluir o tempo todo, explicando a ele o que você está fazendo.

Repita isso algumas vezes e, na próxima tarefa, depois de descobrir o código, dê a ele o comando por um tempo. Certifique-se de fornecer dicas quando ele ficar preso, para que não fique frustrado, mas resista à tentação de assumir o controle imediatamente. Escolha uma etapa muito específica que você provavelmente já repetiu algumas vezes antes, para poder reforçar o treinamento.

Continue a deixá-lo assumir o controle com mais frequência até que ele termine sozinho todos os recursos.

Apenas dar a ele um monte de livros e tarefas para trabalhar causará sobrecarga.

Michael Brown
fonte