Você acha que é uma boa idéia quando um programador júnior precisa de ajuda para sempre entrar e tentar educá-los? Ou eles ignoram todos os conselhos sobre "ensinar a pescar" que você lhes dá e se concentram no "peixe" que você acabou de lhes trazer? Você os deixa sempre descobrir as coisas por conta própria, sabendo que os erros são a melhor maneira de aprender? Ou tem medo de que fiquem tão queimados e frustrados que percam o desejo de acelerar?
Quando você escolhe quando ajudar alguém mais jovem do que você e quando recuar e deixá-lo aprender com seus erros?
learning
team-leader
Doug T.
fonte
fonte
Respostas:
Em um dos meus trabalhos, eu estava aprendendo e ensinando (porque é claro que não sei tudo, mas sei mais do que alguns)
Não coloque as mãos no teclado a todo custo . Isso é frustrante tanto para você quanto para a pessoa que você está ensinando. Mesmo se você der instruções passo a passo, quando você coloca as mãos no teclado, é o equivalente a dar um pedaço de código e dizer "isso corrige".
No que eu aprendi:
fonte
Método socrático, ou seja, faça perguntas que os levem a pensar em uma direção positiva
[isso é útil mesmo quando você não sabe qual é o problema, muito menos a solução]
fonte
Eu aprendi a ajudá-los a arquitetar e parar por aí. Escolha as ferramentas certas, elabore um projeto geral para um ou dois problemas complexos e deixe-os seguir em frente. Se eles voltarem e pedirem conselhos, dê-os em pequenos pedaços. Se não, deixe-os.
Você está totalmente certo sobre o "queimado e frustrado". Eles serão exatamente isso se você administrar de forma micro ou escolher um nit. Por fim, ajuda muito a estabelecer uma relação de trabalho amigável com seus colegas de trabalho. O tempo gasto em ganhar confiança e respeito mútuo se pagará 10 vezes mais.
fonte
Ajudo-os quando realmente preciso que as coisas sejam concluídas rapidamente, quando fica claro que elas atingiram uma parede de tijolos e quando é claramente irracional esperar que descubram sem ajuda. Se, no entanto, eles não tiverem tempo para algo, é melhor que tentem primeiro.
Quanto a pegar o "peixe" em vez do "ensinar a pescar", a melhor maneira de fazer isso é não resolver os problemas das pessoas . Dê-lhes ideias e deixe-as seguir em frente. Se eles correm com ele e falham, então ajude-os mais. Se eles tiverem sucesso, melhor ainda.
fonte
Se eles são um bom programador, devem encontrar uma maneira de fazê-lo. Agora, em uma situação em que é quase impossível encontrar informações ou uma solução para um determinado problema, dar uma mãozinha parece estar dentro da razão, desde que você a mantenha dentro da razão. Não dê a eles a resposta.
Talvez como exemplo, eu tenha 18 anos e tenha aprendido sozinho há anos e tenha escrito algumas coisas loucas, incluindo meu próprio compilador e sou autodidata. Eu só busco ajuda com as coisas em que realmente estou preso (como eu tenho pesquisado e experimentado por pelo menos um dia, mas sem sucesso). Eu também gostaria de fornecer um contra-exemplo: uma vez, em uma aula de programação, um aluno me pediu para depurar o código que ele nem havia compilado!
Essencialmente, um bom programador, mesmo um iniciante, deve ser capaz de experimentar e pesquisar soluções para a maioria dos problemas.
fonte
Vou orientar, mas vou embora se eles querem que eu faça o trabalho deles. Normalmente, apenas alguns conselhos sobre como resolver um problema ou reformular a descrição da tarefa podem percorrer um longo caminho. Mesmo apenas dizendo a eles as palavras que eles devem usar no google pode ser ajuda suficiente. 2 minutos no máximo.
fonte
Recentemente, comecei a usar a técnica pomodoro . Como resultado, se não consigo responder a uma pergunta sem interromper minha linha de raciocínio sobre a tarefa atual, comecei a perguntar se posso adiar uma resposta até o final do pomodoro, uma média de 15 minutos de atraso. Um efeito colateral interessante que eu descobri é que, quando passo pela mesa deles para responder à pergunta, eles já a resolvem por conta própria. Caso contrário, estou muito mais preparado para dar-lhes toda a atenção.
Isto não é escola. Não é trapaça se você fornecer rapidamente um fato que eles poderão encontrar por conta própria. Pelo contrário, faz sentido para os negócios poupar tempo e, na minha experiência, as habilidades são muito pouco aprimoradas por tentativa e erro, em comparação com um mentor, dando a você pequenos empurrões frequentes na direção certa. Prefiro que aprendam 10 maneiras certas de fazer as coisas com a minha ajuda do que 9 maneiras erradas e uma por conta própria.
Se algo puder ser facilmente pesquisado, ensine-os a fazê-lo. Por outro lado, se é algo que você só pode saber por experiência própria, como quais arquivos investigar para detectar certos sintomas de bugs, não vejo absolutamente nada de errado em apenas dar uma resposta inexplicável.
Por outro lado, coisas mais subjetivas, como orientação de arquitetura, sempre devem ser acompanhadas do raciocínio por trás disso. Por um lado, o desenvolvedor júnior pensou muito mais profundamente sobre sua tarefa específica do que você. Falar sobre isso garante que você não esteja tirando conclusões precipitadas. Por outro lado, impede-os de aplicar cegamente regras a situações futuras em que elas podem não se aplicar.
Só consigo pensar em um caso em que me recusei a continuar ajudando um colega de trabalho, e foi depois de passar algumas horas explicando algo várias vezes e passando por vários exemplos, depois do qual ela literalmente ainda não sabia a próxima declaração para digitar. algumas dicas muito importantes. Naquele momento, ela tinha pouca esperança de manter o emprego sem uma séria reaprendizagem dos fundamentos, e com certeza ela durou apenas alguns meses.
fonte
Paro de ajudá-los quando eles voltam com a mesma pergunta pela terceira vez.
Eu digo a eles que ficaria feliz em ajudá-los, mas apenas se eles se ajudarem primeiro. De lá, eles vão procurar outro lago para pescar comida de graça; nesse caso, eles geralmente são demitidos pouco tempo depois. Ou eles trabalham nisso e ganham o jackpot quando voltam para obter mais ... isso é mais coisas para aprender do que mais do mesmo!
fonte
Eu acho que o contexto é importante.
Se estamos lidando com um problema crítico de suporte à produção em que o tempo de resposta é importante, na verdade eu daria muita ajuda e muitas explicações para que eles pudessem aprender o problema.
Se o prazo final for menos sensível, a complexidade se tornará o driver. É claro que você pode ajudar muito os novatos apenas atribuindo tarefas apropriadas no nível de habilidade, mas se for algo que possa ser resolvido por meio de pesquisas, concordo com os outros pôsteres que os guiam sem dar a resposta exata é uma ótima abordagem .
Se eles fazem perguntas que são facilmente respondidas, procurando em outro lugar, eu as aconselho a fazer seu próprio trabalho. Nesse sentido, se existe um processo ou solução bastante rotineiro e há pouco valor em torná-los escravos, então tenha vergonha de você, se você não tiver um wiki à mão para verificar.
Quando se trata de transferir conhecimentos de domínio personalizados para os negócios, não medo palavras. Faça uma palestra direta o mais rápido possível. Iniciantes precisam disso para ajudar com tudo o que vem depois. Não existe algo como ser educado sobre os negócios com muita rapidez ou facilidade. Certa vez, eu tinha um chefe que fazia todos os tipos de truques por uma hora tentando me levar a uma resposta. Eu era novo em folha, ainda não sabia nada sobre o aplicativo ou o negócio e estava lidando com um problema de suporte à produção. Eu queria gritar: "Por que você está jogando # @ & (* $%! Jogos? Usuários que tentam obter faturas estão esperando por uma resposta!"
fonte
Eu acho que a primeira coisa que você deve perguntar a eles antes de ajudá-los é que você investigou isso? se sim, pergunte a eles o que descobriram e aponte-os na direção certa. Investigá-lo geralmente é subestimado, mas é uma das melhores práticas que aprendi. Encontrar informações sobre o que você precisa dá a você o poder de aprender por si mesmo; também ficará claro que eles devem tentar primeiro.
Se o problema for mais complexo, tente não dizer a eles o que fazer, mas compartilhe algumas idéias, pergunte-lhes como eles acham que poderiam abordar o problema.
Se eles não têm idéia, tente decompô-lo em um nível muito básico, onde você não fornece todos os detalhes, mas descreve a solução o suficiente para que eles tentem, existem ferramentas muito úteis para isso, como algoritmos ou fluxogramas .
Em conclusão, tente guiá-los sem interferir no processo de aprendizado, sempre ajudando-os a depender de você para todas as tarefas então designadas, que levarão seu tempo e serão contraproducentes.
fonte
Evito ajudar em coisas simples, como sintaxe, que eles devem saber ou, se não sabem, devem entender por si mesmos. Se é algo mais complexo, não me importo de explicar uma vez.
Quando se trata de explicar o processo, ou os padrões de codificação da nossa organização / projetos, etc., eu uso a regra das três advertências. Eu realmente acho que uma pessoa é manca se precisar explicar as coisas três vezes. De fato, esse também é um dos critérios em nossa avaliação.
Depende muito do aluno. Eu espero que eles consigam algumas coisas por conta própria. Se eles aparecerem: "Enfrentei esse problema, tentei os métodos A, B e C, mas não consegui resolver o problema", eu os ajudarei. Se eles simplesmente sugerirem "Estou enfrentando esse problema" e não tiverem feito nada, pedirei que voltem aos livros e procurem uma solução.
fonte
Como programador iniciante (9 meses no meu trabalho atual usando principalmente Perl e SQL e com a) nenhum conhecimento de Perl eb) alguns meses de mexer com o SQL antes deste trabalho), ao fazer perguntas de programação, tento mostrar o que fiz até agora, ou no caso de algo não funcionar (e ser difícil de depurar), onde acho que o bug pode estar. Sempre que possível, procurei aprender a pescar.
fonte
Paro de ajudar nas seguintes circunstâncias:
Se eu não forneci documentos adequados ou eles estão trabalhando com uma ferramenta / classe que eu criei, é minha responsabilidade ajudá-los
fonte