FYI.

This story is over 5 years old.

Tecnologia

Em defesa de aprender a programar do jeito difícil

Nem que seja apenas no começo.

Entramos em um novo ano, o que significa que muitos de nós estão tomando resoluções para sermos pessoas melhores, mais saudáveis, menos piores ou mais decentes no geral.

Uma popular resolução é (mais uma vez) aprender programação. Com cada vez mais sites no campo do aprendizado eletrônico, bootcamps de desenvolvedores web e demais entidades que se dedicam ao ensino de programação, quase todo mundo tem o plano de falar a tal língua da futuro, a da programação.

Publicidade

Embora a tarefa exiga estímulo contínuo, o Ano Novo é uma época mágica para o cultivo de estudantes casuais. Empresas, claro, aproveitam para angariar clientes de curta temporada. Aprenda a programar: é fácil!

Do edX: "Torne-se o gênio que projeta, controla e movimenta dispositivos digitais, sites, aplicativos móveis e tudo mais que interagimos diariamente". Tentador, né?

Fiz diversos cursos de informática e programação no edX, geralmente para me atualizar de algo ou complementar algo da faculdade e foram ótimos. Também fiz cursos em plataformas como Coursera, Udacity, a Lagunita de Stanford (com base na plataforma do edX), e também o MIT OpenCourseWare (que é mais uma plataforma de educação aberta passiva). Tudo excelente e ao custo de zero dinheiros (apesar de que você pode pagar por upgrades, como certificados e ""nanocertifiados").

Então está tudo aí pra quem quiser. Você deve fazer esses cursos? Deve aprender a programar?

Não. Ao menos não na aplicação comum de "aprender a programar". Você deve aprender a programar com o tempo e antes do que nunca, certo, mas o curso errado a se escolher para iniciar sua vida de programador é o curso introdutório de JavaScript que te ensinará o básico da sintaxe e como usá-la para fazer umas coisinhas bacanas em sites.

Tem muitos cursos como este por aí e, se você for no Google buscar por "aprenda a programar" agora, a grande maioria dos resultados seria: Introdução ao JavaScript.

Publicidade

Não faça esse curso. Se você quer fazer sites, aprenda JavaScript depois, mas não comece por ele. Assim que você tiver uma base de como funciona o código, de como as linguagens de programação se comportam e interagem com computadores e a web, o Java não é nada. Você pode até acabar o evitando, bem como o desenvolvimento front-end como um todo.

A diferença entre aprender a programar e aprender sobre programação é bem confusa. Você precisa usar os códigos para aprender sobre eles, mas há maneiras e maneiras de fazê-lo. As melhores são mais complicadas, sem aplicação imediata e dispendem mais tempo. Desculpa, mas vale à pena no final.

Aprendi a programar em C na faculdade pública e não faria de outra forma. Como é comum em programas de formação em informática, a introdução se deu em dois cursos consecutivos ao longo de dois períodos. Não tinha muito interesse em informática no começo – meu foco era a graduação em engenharia elétrica e os cursos em questão eram obrigatórios – mas acabei me ligando, mudei pra informática e acabei transferindo para uma faculdade com duração de quatro anos, com o tempo entrando em projeto de pós-graduação em informática.

Se você quer aprender a fazer sites, aprenda JavaScript eventualmente, mas não comece com ele.

Não me apaixonei por sintaxes de programação ou manipulação de bibliotecas ou frameworks logo de cara. Não gostava de jQuery ou Bootstrap. Eu gostava mesmo de solucionar problemas e algoritmos. Isso é único na programação: o fluxo imediato e quase contínuo de solução de problemas. Pra mim, programar parece resolver quebra-cabeças (ou melhor, é resolver quebra-cabeças), ou uma luta emocionante contra um chefão no videogame. Com o tempo, você acaba pensando de determinada forma que começa a afetar seus sonhos. Isso sim é bizarro: sonhar com algoritmos.

Publicidade

Para aprender a programar, compreender a programação, você tem que aprender uma linguagem como C – idealmente C mesmo, mas C++, Java, Python ou qualquer linguagem de programação de uso geral valem também. A questão é aprender a programar da forma mais pura possível, removendo o máximo de perfumaria dessa experiência.

Isso é o C: uma camada próxima em cima do hardware que ainda tem sua relevância. É muito fácil quebrar o C, especialmente se tratando de memória computacional. Ele não é a prova de falhas e, como muitas linguagens em C, existe para que se evitem os erros possibilitados pelo C, tais como sobrecarga em buffers.

O lance é que isso não some se você estiver programado como uma linguagem mais amigável. Só fica mais escondidinho. Logo, quando a programação trata mais de aprendizagem e menos de fazer, isso ajudará. Mas coisas de baixo nível como memória e tipos de dados são fundamentais para programação. (Com o avanço da Internet das Coisas e os computadores de recursos limitados por trás de tudo, lidar com memória e otimizar o código continuarão importantes de diversas maneiras, mas isso é tema para outra postagem.).

O ponto é que quase todas as outras coisas na programação surgem a partir de construtos fundamentais: estruturas de controle, mecanismos de repetição, estruturas de dados. Mesmo que seus planos se limitem a fazer os sites mais daora, você provavelmente deveria saber como criar uma lista linkada (que não existe em JavaScript porque ele deixa de lado um item primordial da programação: apontadores ou variáveis que apontam para locais específicos na memória de um computador).

Em suma, você primeiro tem que aprender sobre as ideias por trás da construção de coisas com códigos. Saber que existem. Não precisa ser C; só que C é o exemplo canônico do que cito aqui. Você pode fazer uma ponte gigantesca com materiais pré-fabricados e uma série de instruções detalhadas sem entender nada da física por trás do que deixa uma ponte de em pé, mas não sei se seria uma boa passar ali de carro.

Logo, minha dica é fazer um curso de introdução à informática, do edX ou qualquer lugar. Provavelmente será baseado em Python, o que é ótimo (é uma linguagem excelente). Você não terá um site bacana no final de tudo. Mais provável que você tenha um programa de linha de comando que pode verificar se um número é primo ou não. No seco assim. Faça isso primeiro e você será mil vezes melhor no que você quiser programar depois. Só faça do jeito difícil, nem que seja só no início.

Tradução: Thiago "Índio" Silva