Roadmap: Aprendendo a programar #0

Entre grupos, comunidades, listas e feeds sempre recebemos coisas interessantes para ler. Hoje li esse texto aqui e ao juntar este material com um tópico sobre a dificuldade de se aprender a programar que foi discussão na comunidade PHP Brasil a alguns meses atrás e conversas que troco com amigos cozinhei umas ideias aqui e vou expô-las agora.

Vamos imaginar que você fosse levado agora nesse momento a morar em uma cidade sub-aquática por 1 ano. Você, uma pessoa do mundo de terra, que vê o céu todos os dias estaria morando debaixo d’água junto com peixes e anêmonas. Durante esse período veria muitas coisas diferentes e provavelmente teria que repensar sua alimentação, hábitos de vida e muitas outras coisas que faziam parte da sua rotina.

Por uma infame realidade essa analogia é bem real quando se trata de iniciar na programação. Quando você começa a trabalhar exclusivamente com desenvolvimento de software você é movido para um mundo a parte onde as coisas operam em outra frequência. Existem paradigmas e lógicas próprias desse universo e vai descobrir a cada dia que existe mais coisas a se descobrir. É provável que descubra que na verdade ninguém sabe muita coisa sobre como tudo funciona e que alguns jargões são usados indiscriminadamente sem escrúpulo algum para parecer que sabe-se algo.

O que importa é que se você teve um ensino regular e em algum momento entra em contato com programação vai descobrir que pouco do que aprendeu na escola vai te salvar. A sua base matemática vai ser bem aproveitada (embora as vezes não seja suficiente), mas nem o seu português que tão bem decorou a conjugação do verbo amar no pretérito imperfeito vai te salvar. Você estará perdido redescobrindo tudo a todo momento.

Então você se pergunta como eu me pergunto nesse exato momento: então programar é difícil? — infelizmente a resposta não é monossilábica. Quem disser que sim está mentindo e quem disser que não está mentindo. Todos podem aprender a programar, mas para cada um vai ser uma experiência diferente. Combine esse questionamento ao fato de haver N formas de se programar e você pode ter uma resposta ainda mais difícil porque pode ser que um desses N caminhos sejam mais simples de ser assimilado por um ou por outro.

Já li em alguns lugares listas de coisas que um programador precisa ter para ser um bom programador e confesso que nenhuma lista até hoje me pareceu convincente. Programador precisa ser isso, ou ser aquilo, ou aquilo outro… parece receita pronta e nós adultos sabemos que isso não existe (geralmente do pior modo possível). Basta dizer que você pode aprender a programar e não ser programador que o mundo de quem fez a lista cai. Acredito até que iniciativas como code.org vão mudar o jogo.

Para se aprender a programar é preciso saber que vai entrar em algo novo. Que muitas vezes analogias não vão te salvar e que é preciso se desapegar de suas ideias (quem tem apego por ideia é post-it — já dizia o poeta). Vai ser preciso compreender também o universo de plataformas e linguagens para avaliar qual parece mais interessante para você criar projetos em que possa trabalhar porque só se aprende a programar programando.

De um modo geral a sintaxe das linguagens não é a parte mais complexa do desenvolvimento de um software. Mapear uma necessidade real em uma solução computacional é que o grande desafio; o famoso pulo do gato! Se lhe parece difícil ou não é uma experiência pessoal de cada um e não é possível mensurar isso, mas há certa familiaridade com a ideia de que uma das melhores formas de se aprender a fazer algo é fazendo.

Have fun ; )