Ao longo dos meus anos de experiência:
- Os idiomas mudaram (geralmente relativamente devagar).
- A gama de problemas que podem ser praticamente resolvidos aumentou (um pouco mais rápido);
- O tamanho e a complexidade das soluções aumentaram (relativamente rapidamente);
- Houve algo que é
flavor of the day
(às vezes bom, geralmente ruim).
Como observado em uma discussão sobre padrões, a quadrilha de quatro não inventou padrões. Eles criaram terminologia e modelos para soluções que já estavam sendo aplicadas.
Ao contrário de muitos outros campos, ainda há muita coisa que não é prática comum. Eu já vi muitas coisas de ponta indo e vindo. Muitos deles estavam reformulando as técnicas já em prática, e essas geralmente eram bem-sucedidas até certo ponto. Outros foram embora mais ou menos, e a maioria vem de novas abordagens. (Alguém viu um idioma de quinta geração ultimamente?)
Os programadores que eu vi que são mais eficazes podem selecionar e montar componentes comprovados em uma solução funcional. Isso raramente envolve algo de ponta, o que geralmente aumentaria o risco do projeto. A capacidade de desenvolver o trabalho que já foi realizado nos permite aumentar o escopo do que é possível.
Linguagens de programação tendem a cair em relativamente poucas famílias. A familiaridade com um idioma em uma família facilita o trabalho com idiomas semelhantes. Compreender as bibliotecas disponíveis no idioma e aproveitá-las pode aumentar bastante a produtividade e a confiabilidade. Em geral, eu escolheria um idioma antigo com bibliotecas apropriadas em vez de um idioma mais novo sem bibliotecas apropriadas.
Ao aplicar novas tecnologias é importante evitar a Because We Can
síndrome. A adição de uma nova tecnologia, por ser o sabor do ano, tende a causar mais problemas do que resolve. Saber quando a tecnologia resolverá um problema real e quando apenas adicionará complexidade é uma habilidade útil.
Um programador realmente bom resolverá os novos problemas e usará as soluções existentes para o resto. Poucas empresas precisam de tecnologia de ponta, todas precisam de soluções sólidas.
Eu geralmente me arrependo de deslizar pela lâmina de barbear. Não me lembro de ter me arrependido de usar uma tecnologia comprovada. No entanto, muito do que é descrito new
é reembalagem de algo existente. Geralmente, essa reembalagem facilita as coisas para entender e aplicar adequadamente.