Google Papers

Hoje, lendo meus RSSs, descobri a página Google Papers, que contém links para artigos escritos por pesquisadores e engenheiros que trabalham lá. Ainda não tive tempo de ler com calma os artigos (mesmo porque são muitos), mas tenho a impressão de que pode ser uma fonte interessante de informações.

http://labs.google.com/papers/

Comentários específicos sobre papers e indicações são bem vindos.

Formação contínua

Suponha que você acabou de se formar em um curso superior de computação, já saiba programar em uma ou mais linguagens, tenha bons conhecimentos de algoritmos e está no mercado de trabalho, ganhando um salário interessante. Terminou por aí a fase de aprendizagem ? Não…está apenas começando.

É interessante pensar que no mundo de tecnologia, as coisas se renovam de forma muito rápida. De repente novas tecnologias surgem, criam moda, algumas desaparecem, outras ficam….só para citar alguns exemplos de novas linguagens e tecnologias que começaram a fazer sucesso recentemente: Ruby, Lua, AJAX, Python….

Bom, mas até aqui, não falei nada de novo. O ponto importante é: como aprender coisas novas continuamente ? Não tenho a pretenção de querer ditar regras, ou falar o que é certo ou errado. So gostaria de dizer como eu acho que seria ideal.

Participando de foruns de discussão, lendo matérias sobre tecnologia, e conversando com colegas de trabalho, percebo que muitas vezes se espera adquirir conhecimentos apenas fazendo cursos. E isso muitas vezes é usado como forma de justificar a falta de conhecimento (”não me pagaram o curso então não sei…”, ou então “na minha faculdade não tive curso de tal linguagem…”).

É muito comum também que a primeira ação a ser tomada quando não se sabe algo é ir perguntar diretamente para outras pessoas, seja via forum, seja via email, seja diretamente, sem que seja feita qualquer tipo de pesquisa prévia para tentar resolver o problema.

Notem: não estou dizendo que fazer cursos ou que falar com pessoas que saibam sobre um determinado assunto seja ruim. Muito pelo contrário. Uma das grandes forças do movimento de software livre são as listas e foruns de discussão, e a facilidade com que se consegue trocar idéias com pessoas. E cursos são ótimos para consolidar certos conhecimentos, desde que bem ministrados. O que estou dizendo é que em geral, existe a tendência de transferir para outros a incumbência de nos ensinar as coisas, sendo que muitas vezes, deveríamos aprender sozinhos (ou pelo menos iniciar o aprendizado sozinho).

A palavra importante que resume tudo isso é próatividade. Hoje em dia, temos a grande sorte de termos à nossa disposição uma fonte de informações quase inesgotável chamada Internet, e uma ferramenta imprescindível para encontrar informações nessa fonte chamada Google. Com isso e boas palavras chaves em mãos, é possível (quase) encontrar quase tudo. É verdade que a Internet é meio caótica, e é preciso separar o joio do trigo na hora de buscar informações necessárias (por isso também com o tempo é interessante montar uma coleção de sites e fontes de informações confiáveis), mas com um pouco de paciência e prática, pode se encontrar muita coisa útil.

E mesmo assim, muitas vezes perguntas são feitas sem nenhum tipo de pesquisa.

Exemplo: No ano passado, fui monitor de uma matéria onde se aprende os fundamentos básicos de LISP, PROLOG e JAVA para comparação e estudo de paradigmas diferentes de programação. Um dia, um dos alunos veio com um código em Lisp, dizendo que não estava conseguindo executar o programa. Abri uma shell, executei o clisp, carreguei o programa e mandei executar: erro na primeira linha. Corrigi o erro e mandei executar de novo: erro na segunda linha. Repeti a operação: erro na terceira. Neste momento, descobri que o aluno não tinha rodado nenhuma vez sequer o código, e pior: não tinha nem revisado ! Obviamente mandei ele pra casa testar tudo de novo e corrigir…

Outro exemplo: há algum tempo atrás, quando participava ativamente de um sistema colaborativo de perguntas e respostas, recebi uma pergunta bastante simples sobre java. Fiz uma busca no google usando as palavras que apareciam no email, e retornei os 3 primeiros sites que apareceram no google, todos muito interessantes (dei uma olhada prévia pra ver se tinham informações úteis), junto com informações sobre a busca que havia feito. Dois dias depois, recebo um email da mesma pessoa, perguntando se eu não tinha nenhuma referência em português…

Conselho: faça pesquisas antes de sair perguntando….muitas vezes, a resposta é obtida de forma fácil. Além do mais, fóruns de discussão devem ser usados apenas para obter pontos de partida, direções a serem seguidas….não espere respostas mastigadas…raramente serão obtidas. Sem contar que dependendo do assunto, poucas pessoas terão condições de saber tudo. Last but not least: ser computeiro, ou trabalhar com tecnologia, sem saber um mínimo de inglês (pelo menos para leitura), não dá !

Aprendendo a programar

The Perils of JavaSchools - Joel on SoftwareO artigo citado acima toca um ponto interessante: formação em computação deixando de lado conceitos importantes. Java é uma linguagem extremamente interessante (com a qual eu trabalho inclusive), mas que esconde muitos aspectos que na formação básica são importantes. Assim como aprender lógica pura e matemática e cálculo númerico são importantes, apesar de raramente termos que resolver sistemas e equações num software comercial. E de qualquer forma, existem biblotecas pra isso, não é mesmo ?

O resultado são programadores que sabem montar interfaces gráficas em IDEs visuais, conhecem if/while e for e não sabem o que é orientação a objeto…..

Aliás, acho também absurdo um curso de Ciência da Computação superior não ter um curso sobre compiladores….mas isso fica pra outra discussão.

« Previous Page