Atualmente, nossa empresa desenvolve aplicativos que consistem, na maioria das vezes, em servidores Web Ruby on Rails e em vários clientes REST, desde sistemas de quiosques em Java até dispositivos incorporados em C / C ++ (além das interfaces para navegadores da web padrão). Precisamos expandir nossa equipe e, tendo falhado em encontrar bons programadores seniores, decidimos nos esforçar para treinar programadores juniores que cresceriam junto com a empresa.
Nós já lhes demos alguns livros sobre Ruby e Rails e pedimos que construíssem alguns programas de brinquedos, mas agora estou percebendo o quão acentuada é a curva de aprendizado para o estado atual da programação na web.
Quando comecei a programar, há 15 anos, usei apenas o Delphi e o Source Safe e pude produzir software utilizável desde o início. Ambos eram ferramentas simples e era fácil se aprofundar no funcionamento interno do ambiente. Lentamente, comecei a usar estruturas de terceiros, mudei para CVS, SVN e, finalmente, Git, aprendi as peças que fazem a web de hoje, como HTTP, JavaScript, CSS, REST etc. Hoje, mesmo depois de anos de experiência, não sei tanto sobre como o Ruby on Rails funciona internamente quanto no Delphi no passado, e para mim isso foi importante para que eu pudesse conectar os blocos básicos de aprendizado às ferramentas que estava usando.
Parece-me que os programadores que estou contratando levarão muito tempo para integrar-se à equipe e produzir algo utilizável, porque há muito o que aprender a usar uma única estrutura (Rails): Ruby, HTML, CSS, JavaScript, REST, casos de teste, acesso ao banco de dados (com SQL magicamente construído dentro da estrutura!), MVC, três gerenciadores de pacotes diferentes (apto para Ubuntu, gem e bundler para Ruby), ssh, git, Apache e Phusion Passenger para implantação, etc.
Estou me sentindo perdido, pois é a primeira vez que preciso lidar diretamente com programadores juniores. Qual é a melhor maneira de treinar programadores juniores nas práticas recomendadas de hoje para o desenvolvimento da Web, quando há tantas opções?