No capítulo um do "Programador Pragmático", o primeiro objetivo de aprendizado é:
Aprenda pelo menos um novo idioma a cada ano. Idiomas diferentes resolvem os mesmos problemas de maneiras diferentes. Ao aprender várias abordagens diferentes, você pode ajudar a ampliar seu pensamento e evitar ser atingido por uma rotina. [...]
Para conseguir isso ao longo de uma carreira, é provável que a lista de idiomas seja bastante longa (principalmente se você não quiser "progredir" no gerenciamento). Claramente, a educação de um programador (ou qualquer outra forma) ajudará você a começar com um núcleo de linguagens comercialmente úteis (a lista usual de anúncios de empregos: C, C ++, Ruby, Python, JavaScript, C #, Java, VB, etc. .). Além disso, é provável que um programa de aprendizado formal ou informal tenha abordagens funcionais cobertas (por meio de algo como Haskell, LISP ou uma linguagem derivada de ML)
Mas uma vez que um subconjunto razoável dessa lista é aprendido - o que vem a seguir e por quê ?