Não é nenhum segredo para o pessoal de RH em TI que, se sua cidade não for uma cidade com mais de um milhão de habitantes, encontrar um programador lá será problemático, e uma pessoa que tenha a experiência e o conjunto de tecnologia necessários será ainda mais difícil.
O mundo da TI é pequeno em Irkutsk. A maioria dos incorporadores da cidade sabe da existência da empresa ISPsystem e muitos já estão conosco. Os candidatos muitas vezes vêm para cargos juniores, mas a maioria são graduados universitários de ontem que ainda precisam ser mais treinados e aperfeiçoados.
E queremos alunos prontos que tenham programado um pouco em C++, estejam familiarizados com Angular e tenham visto Linux. Isso significa que precisamos ensiná-los nós mesmos: apresentá-los à empresa e dar-lhes o material de que precisam para trabalhar conosco. Foi assim que nasceu a ideia de organizar cursos de desenvolvimento backend e frontend. No inverno passado nós implementamos isso e neste artigo contaremos como isso aconteceu.
Treinamento
No início, reunimos os principais desenvolvedores e discutimos com eles as tarefas, a duração e o formato das aulas. Acima de tudo, precisamos de programadores backend e frontend, por isso decidimos realizar seminários nestas especialidades. Como esta é a primeira experiência e não se sabe quanto esforço será necessário, limitamos o tempo a um mês (oito aulas em cada direção).
O material dos seminários no backend foi preparado por três pessoas e lido por duas; no frontend os temas foram divididos entre sete colaboradores.
Não precisei procurar professores por muito tempo, nem precisei convencê-los. Houve um bônus pela participação, mas não foi decisivo. Atraímos colaboradores de nível médio e superior, e eles estão interessados em experimentar uma nova função, desenvolvendo habilidades de comunicação e transferência de conhecimento. Eles passaram mais de 300 horas se preparando.
Decidimos realizar os primeiros seminários para a galera do departamento cibernético do INRTU. Acabava de surgir um espaço de co-working conveniente e também estava planejado o Dia da Carreira - uma reunião de estudantes com potenciais empregadores, da qual participamos regularmente. Desta vez, como sempre, eles nos contaram sobre si e as vagas, e também nos convidaram para o curso.
Aos que desejavam participar foi aplicado um questionário para entender interesses, nível de formação e conhecimento de tecnologia, coletar contatos para convites para seminários e também saber se o ouvinte tinha um laptop que pudesse levar para as aulas.
Foi divulgado nas redes sociais um link para a versão eletrônica do questionário e também foi solicitado a um funcionário que continua cursando o mestrado no INRTU que o compartilhasse com os colegas. Também foi possível acertar com a universidade a publicação da notícia em seu site e redes sociais, mas já havia bastante gente disposta a frequentar o curso.
Os resultados da pesquisa confirmaram nossas suposições. Nem todos os alunos sabiam o que eram backend e frontend, e nem todos trabalharam com a pilha de tecnologia que usamos. Ouvimos algo e até fizemos projetos em C++ e Linux, pouquíssimas pessoas realmente usavam Angular e TypeScript.
No início das aulas eram 64 alunos, o que era mais que suficiente.
Um canal e um grupo no messenger foram organizados para os participantes do seminário. Eles escreveram sobre mudanças na programação, postaram vídeos e apresentações de palestras e trabalhos de casa. Lá eles também realizaram discussões e responderam perguntas. Agora os seminários terminaram, mas as discussões no grupo continuam. Futuramente, por meio dele será possível convidar galera para geeknights e hackathons.
Conteúdo das palestras
Entendemos: em um curso de oito aulas é impossível ensinar programação em C++ ou criar aplicações web em Angular. Mas queríamos mostrar o processo de desenvolvimento em uma empresa de produtos moderna e, ao mesmo tempo, apresentar-nos nossa pilha de tecnologia.
A teoria não é suficiente aqui; a prática é necessária. Portanto, combinamos todas as lições com uma tarefa - criar um serviço de registro de eventos. Planejamos desenvolver um aplicativo passo a passo com os alunos, ao mesmo tempo em que os apresentamos à nossa pilha e suas alternativas.
Palestra introdutória
Convidamos todos que preencheram os formulários para a primeira aula. No início eles disseram que apenas full stack - isso foi há muito tempo, mas agora nas empresas de desenvolvimento há uma divisão em desenvolvimento frontal e posterior. No final pediram-nos que escolhêssemos a direção mais interessante. 40% dos alunos se inscreveram no backend, 30% no frontend e outros 30% decidiram cursar os dois cursos. Mas era difícil para as crianças frequentarem todas as aulas e gradualmente foram ficando determinadas.
Na palestra introdutória, o desenvolvedor backend brinca sobre a abordagem do treinamento: “Os seminários serão como instruções para aspirantes a artistas: passo 1 - desenhe círculos, passo 2 - termine de desenhar a coruja"
Conteúdo dos cursos backend
Algumas das aulas de back-end foram dedicadas à programação e outras ao processo de desenvolvimento em geral. A primeira parte abordou compilação, make СMake e Conan, multithreading, métodos e padrões de programação, trabalho com bancos de dados e solicitações http. Na segunda parte falamos sobre testes, Integração Contínua e Entrega Contínua, Gitflow, trabalho em equipe e refatoração.
Slide da apresentação dos desenvolvedores back-end
Conteúdo dos cursos frontend
Primeiro configuramos o ambiente: instalamos o NVM, usando Node.js e npm, usando Angular CLI, e criando um projeto em Angular. Depois estudamos módulos, aprendemos como usar diretivas básicas e criar componentes. A seguir, descobrimos como navegar entre as páginas e configurar o roteamento. Aprendemos o que são serviços e quais são as características de seu trabalho em componentes individuais, módulos e em todo o aplicativo.
Conhecemos a lista de serviços pré-instalados para envio de solicitações http e trabalho com roteamento. Aprendemos como criar formulários e processar eventos. Para testes, criamos um servidor simulado em Node.js. De sobremesa, aprendemos sobre o conceito de programação reativa e ferramentas como RxJS.
Slide de uma apresentação de desenvolvedores front-end para estudantes
Ferramentas
Os seminários envolvem prática não só nas aulas, mas também fora delas, por isso foi necessário um serviço para receber e verificar os trabalhos de casa. Os front-enders escolheram o Google Classroom, os back-enders decidiram escrever seu próprio sistema de classificação.
Nosso sistema de classificação. É imediatamente óbvio o que o backender escreveu :)
Neste sistema, o código escrito pelos alunos foi autotestado. A nota dependia dos resultados do teste. Pontos adicionais poderiam ser obtidos pela revisão e pelos trabalhos submetidos dentro do prazo. A avaliação geral influenciou a posição no ranking.
A classificação introduziu um elemento de competição nas aulas, por isso decidimos abandoná-la e abandonar o Google Classroom. Por enquanto nosso sistema é inferior em termos de comodidade à solução do Google, mas isso pode ser consertado: vamos melhorá-lo para os próximos cursos.
Dicas
Nos preparamos bem para os seminários e quase não cometemos erros, mas ainda assim cometemos alguns erros. Formalizamos essa experiência em um conselho, caso seja útil para alguém.
Escolha seu horário e distribua suas atividades corretamente
Esperávamos a universidade, mas em vão. No final das aulas, ficou claro que o nosso curso decorreu no momento mais inconveniente do ano letivo - antes da sessão. Os alunos voltavam para casa depois das aulas, preparavam-se para os exames e depois sentavam-se para fazer as tarefas. Às vezes, as soluções chegavam em 4–5 horas.
Também é importante considerar o horário do dia e a frequência das atividades. Começamos às 19h, então se as aulas de um aluno terminassem mais cedo, ele tinha que ir para casa e voltar à noite - isso era inconveniente. Além disso, as aulas aconteciam às segundas e quartas ou quintas e terças, e quando havia um dia para o dever de casa, as crianças tinham que se esforçar muito para concluí-lo no prazo. Depois nos adaptamos e nesses dias pedíamos menos.
Traga colegas para ajudá-lo nas primeiras aulas
No início, nem todos os alunos conseguiam acompanhar o professor; surgiram problemas com a implantação e configuração do ambiente. Nessas situações, eles levantaram a mão e nosso funcionário apareceu e ajudou a resolver o problema. Nas últimas aulas não houve necessidade de ajuda, pois tudo já estava configurado.
Grave seminários em vídeo
Assim você resolverá vários problemas ao mesmo tempo. Primeiro, dê a quem perdeu a aula a chance de assistir. Em segundo lugar, reabasteça a base de conhecimento interna com conteúdo útil, especialmente para iniciantes. Em terceiro lugar, olhando a gravação, é possível avaliar como o funcionário transmite as informações e se ele consegue prender a atenção do público. Essa análise ajuda a desenvolver as habilidades oratórias do orador. As empresas de TI sempre têm algo para compartilhar com os colegas em conferências especializadas, e os seminários podem produzir excelentes palestrantes.
Palestrante fala, câmera escreve
Esteja preparado para mudar sua abordagem, se necessário
Íamos ler um pequeno trecho teórico, fazer um pouco de programação e dar lição de casa. Mas a percepção do material acabou não sendo tão simples e tranquila, e mudamos a abordagem dos seminários.
Na primeira metade da palestra, eles começaram a considerar detalhadamente o dever de casa anterior e, na segunda parte, começaram a ler a teoria do próximo. Ou seja, deram aos alunos uma vara de pescar, e em casa eles próprios procuraram reservatório, isca e pescaram - se aprofundaram nos detalhes e entenderam a sintaxe do C++. Na palestra seguinte discutimos juntos o que aconteceu. Essa abordagem acabou sendo mais produtiva.
Não mude de professor com frequência
Tivemos dois funcionários conduzindo seminários no backend e sete no frontend. Não houve muita diferença para os alunos, mas os professores front-end chegaram à conclusão que para um contato mais produtivo é preciso conhecer o público, como ele percebe a informação, etc., mas quando você fala pela primeira vez, esse conhecimento não existe. Portanto, pode ser melhor não mudar de professor com frequência.
Faça perguntas em todas as aulas
É improvável que os próprios alunos digam se algo está errado. Eles têm medo de parecer estúpidos e fazer perguntas “estúpidas”, e têm vergonha de interromper o palestrante. Isto é compreensível, porque durante vários anos eles viram uma abordagem diferente à aprendizagem. Então, se for difícil, ninguém vai admitir.
Para aliviar a tensão, utilizamos a técnica do “chamariz”. O colega do palestrante não só ajudou, mas também tirou dúvidas durante a palestra e sugeriu soluções. Os alunos viram que os professores são pessoas reais, você pode fazer perguntas e até brincar com eles. Isso ajudou a acalmar a situação. O principal aqui é manter o equilíbrio entre suporte e interrupção.
Pois bem, mesmo com tal “chamariz”, ainda pergunte sobre as dificuldades, descubra quão adequada é a carga horária, quando e como melhor analisar o dever de casa.
Faça uma reunião informal no final
Tendo recebido a inscrição final na última palestra, decidimos comemorar com pizza e apenas bater um papo em um ambiente informal. Eles deram presentes para aqueles que resistiram até o fim, nomearam os cinco primeiros e encontraram novos funcionários. Estávamos orgulhosos de nós mesmos e dos alunos, e felizes por finalmente ter terminado :-).
Apresentamos prêmios. Dentro da embalagem: camiseta, chá, bloco de notas, caneta, adesivos
Resultados de
16 alunos chegaram ao final das aulas, sendo 8 em cada sentido. Segundo professores universitários, isso é muito para cursos dessa complexidade. Contratamos ou quase contratamos cinco dos melhores, e mais cinco virão treinar no verão.
Uma pesquisa foi lançada imediatamente após a aula para coletar feedback.
Os seminários ajudaram você a decidir sua escolha de direção?
- Sim, irei para o desenvolvimento back-end - 50%.
- Sim, definitivamente quero ser um desenvolvedor front-end – 25%.
- Não, ainda não sei o que me interessa mais – 25%.
O que acabou sendo o mais valioso?
- Novos conhecimentos: “você não consegue isso na universidade”, “um novo olhar sobre C++ denso”, treinamento em tecnologias para aumentar a produtividade - CI, Git, Conan.
- O profissionalismo e paixão dos palestrantes, a vontade de transmitir conhecimento.
- Formato da aula: explicação e prática.
- Exemplos de trabalhos reais.
- Links para artigos e instruções.
- Apresentações de palestras bem escritas.
O principal é que pudemos perceber que depois de se formarem na universidade, a galera terá muitos trabalhos interessantes e desafiadores. Eles entenderam em que direção queriam seguir e ficaram um pouco mais próximos de uma carreira de sucesso em TI.
Agora sabemos como escolher o formato de treinamento adequado, o que simplificar ou excluir totalmente do programa, quanto tempo leva para se preparar e outras coisas importantes. Compreendemos melhor nossos ouvintes; medos e dúvidas ficam para trás.
Talvez ainda estejamos longe de criar uma universidade corporativa, embora já estejamos formando funcionários dentro da empresa e trabalhando com estudantes, mas demos o primeiro passo para esta séria tarefa. E muito em breve, em abril, iremos lecionar novamente - desta vez na Irkutsk State University, com a qual cooperamos há muito tempo. Deseje-nos sorte!
Fonte: habr.com