Apesar das alegações de Joel nesse artigo - e ele próprio reconhece o argumento -, muitas das áreas que podem ser perdidas por uma "JavaSchool" não são necessárias para muitos trabalhos.
Participei de algo que, suponho, se assemelha a uma JavaSchool , pois passamos a maior parte do tempo focando em linguagens de alto nível como C # e Java, mas isso não muda o fato de que "Algoritmos e estruturas de dados" ainda fazem parte da lista de classes obrigatória - para não mencionar todas as outras classes orientadas pela teoria. Concedido nem todos os "JavaSchools" são iguais, mas esse não é o ponto.
Na minha opinião, mais importante do que a compreensão de alguns dos tópicos mais difíceis de desenvolvimento é ser capaz de resolver problemas de maneira eficaz quando surgem desafios únicos. Como engenheiros de software, realizamos a grande maioria de nosso aprendizado no trabalho e, como tal, dois dos maiores aspectos da descrição de nosso trabalho são capazes de resolver problemas e capturar conceitos desconhecidos. Se, durante uma entrevista, alguém é incapaz de fazer uma tentativa discernível e lógica de resolver um problema novo para eles, sua incompatibilidade para uma determinada posição provavelmente se revelará.
Obviamente, ao contratar alguém para uma posição que requer exposição constante e uso de algum tópico intrincado que pode ser esquecido por um JavaSchool, geralmente é a escolha lógica para alguém que tenha um entendimento prévio, mas a falta de experiência não deve sempre exclui a qualificação para o trabalho .
Muito provavelmente, o cara de 50 anos de Java da sua empresa, que está lá desde que alguém se lembra, não tinha nenhum entendimento de Java até que seu trabalho (atual ou anterior) pediu a ele que aprendesse - e ele o fez. A rigor, é uma má prática demitir "o velho" para que um candidato mais jovem e mais "atualizado" possa tomar seu lugar; Dito isto, se a descrição do trabalho de qualquer funcionário, jovem ou velho, mudar, é responsabilidade desse funcionário ser pego ou encontrar um novo emprego. Só porque um indivíduo (especialmente um programador com experiência passada) não entende algum conceito, não significa que não está disposto ou é incapaz de aprendê-lo. De fato, se eles não estão dispostos a aprender, provavelmente não pertencem a nenhum emprego - muito menos ao seu.
É justo dizer que algumas "JavaSchools" são melhores que outras, e esse fato certamente deve ser considerado ao selecionar um candidato para um cargo, mas há traços pessoais muito mais importantes do que apenas onde alguém foi à escola.
É nossa aptidão enfrentar um problema e encontrar uma solução que nos defina como engenheiros, quase todo o resto é secundário.