O “fundamental” da computação eu aprendi na universidade. E lá não tem jeito, são vários livros, várias provas, vários trabalhos… tudo ao mesmo tempo! Não era muito problema, pois tive o privilégio de me dedicar somente aos estudos (sem desmerecer, lógico, aqueles que tiveram que suar pra trabalhar e estudar ao mesmo tempo).
Quando eu formei, o universo de siglas do Java foi um enorme problema, pois dava uma angústia em não saber por onde começar ou qual é realmente relevante pra conhecer. Eu só consegui resolver isso quando eu li a introdução do Core Java EE disponível pra download no site do Java. Lá mostra um panorama de tudo o que faz parte da especificação. Existem outros, claro! Mas ficou mais fácil de encaixá-los na cabeça sabendo as siglas “básicas”.
Ainda hoje leio uns três, quatro livros ao mesmo tempo. Às vezes, não tem nada a ver com Java. Hoje acabei de ler Efective C++, estou lendo um de design com UML, um de modelagem 3D, um de EJB3 e um Seam, e ainda tem uns livros “parados” de JavaScript, Erlang e o duo Prototype/Scriptaculous. Não sei se é a melhor forma, mas é assim que eu faço.
Eu também não me prendo ao que “o mercado pede”, pego os temas que acho mais legais pra mim no momento. Assim foi a razão de eu ter estudado Ruby em 2005, quando muita gente nem conhecia. A linguagem poderia nem ter decolado, mas mesmo assim, poderia pegar alguns “soft skills” graças à nova linguagem e usá-lo no trabalho. Foi assim o meu aprendizado de Lisp: ninguém a usa de fato, mas consegui entender funções recursivas e aplicá-las em outras linguagens.
Aliás, eu valorizo mais conceitos do que how-to’s superficiais, pois esses conceitos sobrevivem em outras tecnologias que surgem por aí. E é sempre importante valorizar outras coisas além da computação, como por exemplo: melhorar a língua inglesa, ler noticiários, entender um pouco a economia…
Bom, é isso.