Como você aprendeu a programar?

Começamos a trabalhar com treinamentos em desenvolvimento web quase por acidente. Estudamos padrões web e muito javascript, porque isso nos tornava mais produtivos, e as pessoas começaram a nos pedir indicações de onde aprender a programar. Como eu sempre gostei de ensinar, começar foi fácil. Naturalmente nos focamos em treinamentos de nível intermediário e avançado. Quem chegava a um de nossos treinamentos já era profissional da área.

Falando especificamente dos cursos que eu ministro, Javascript Crossbrowser, Ajax e Python foram feitos para quem já sabia programar. Não ensinamos lógica de programação, sintaxe do Javascript ou a estrutura básica do desenvolvimento web.

Agora muitas pessoas têm nos procurado para saber como aprendem a programar e isso tem me colocado uma grande interrogação na cabeça. Como ensinar alguém, de verdade, a programar? O mercado está cheio de cursos de “PHP básico”, “Javascript básico”, “Delphi básico” e “Qualquer Outra Linguagem Básico”. Mas esse não é um bom jeito de se ensinar programação. É impressionante a quantidade de pessoas por aí que fizeram o curso básico, o intermediário e o avançado, e nunca aprenderam programação de verdade. Infelizmente, a maioria das faculdades também não está cumprindo o seu papel.

Aprendendo a programar de verdade

Programação é muito mais do que saber comandos e técnicas de uma linguagem, é um jeito de pensar. É como jogar xadrez. Todo mundo que aprendeu de verdade a jogar xadrez, passou por duas etapas. Primeiro, aprendeu as regras, como se mexe cada peça, como se faz roque, en passant, promoção de peões etc. Depois de tudo isso, finalmente começou a aprender a jogar. Aprendi o movimento das peças com dez anos. Aprendi a jogar com catorze.

Meu pai tinha uma farmácia e eu trabalhava meio período como entregador. Os negócios não iam muito bem, o que significava que eu tinha muito tempo livre. Foi quando conheci meu tutor. Era um senhor aposentado, que tinha ainda mais tempo livre do que eu, e gastava parte dele com um dos passatempos prediletos de muitos aposentados: comprar remédios. Um dia me viu com um tabuleiro, e perguntou se eu queria jogar. Levou mais de seis meses para que eu ganhasse a primeira partida. Foram seis meses que ele passou me ensinando, sem me dizer o que estava fazendo. Repetia a mesma abertura dezenas de vezes, até que eu conseguisse me defender dela. Em seguida, começava com outra abertura.

Imagino uma escola de programação assim. Um lugar onde você é desafiado com um tipo de problema até conseguir resolvê-lo bocejando, aí partimos para outro tipo. Uma “academia” de programação, um lugar para se ensinar a pensar, a resolver problemas.

Sonho com essa ideia desde o dia em que a tive.

15 comentários sobre “Como você aprendeu a programar?”

  1. Fala Elcio, cara vc tocounum ponto crucial, não vejo as faculdades ensinando isso, conheço diversos programadores e todos são enfaticos em dizer que aprenderam sozinhos de alguma forma quebrando a cabeça como vc no xadrez, e todos passaram por faculdades, mas não foram nelas que aprenderam, simplesmente aperfeiçoaram o que ja sabiam.

    Ensinar a uma pessoa pensar de forma lógia, prática e vislumbrar diversar formas de solução para o mesmo problema é um ofício bem árduo.

    Enfim, no dia que a Visie ou outra empresa que vc estiver a frente criar a academia X-Program me chama! heheheh

    Grande abraço.

    W.

  2. Ótimo post Elcio, isso vai deixar muita gente pensativa, pq muitos pensam que programar é apenas saber as sintaxes de uma linguangem,quando na verdade, engloba tbm saber quando e onde usar os recursos de uma linguagem para resolver problemas específicos ou não.

  3. É realmente uma lacuna no mercado. Vejo vários programadores, especialmente de javascript, que se perdem por falta de base conceitual…

    Felizmente tive um bom começo, que vai nessa linha, aprendi algoritmos com lápis e papel, sem computador, nas aulas de cálculo numérico na Poli (para passar nas provas, era preciso estudar de verdade). Boa parte do que desenvolvi depois foi por conta desse desenvolvimento no escuro, com um exercício de imaginação, abstração e concentração, exatamente como no xadrez.

  4. Acabo de compartilhar o seu sonho, não por ser programador, mas por entender que programar não é simplesmente conhecer uma linguagem, vai muito mais além.

    Sinto que sou privilegiado pois em minha faculdade, sou mostrado a problemas diversos a resolver, de forma parecida com o nosso sonho, mas ainda sim está longe de ser a melhor forma.

  5. Começando bem a segunda…

    Cara, sabe que entre meus amigos programadores costumamos dizer que o desenvolvimento de programas e sistemas é uma espécie de arte. Alguns dizem que jogar xadrez é uma arte, e um tempinho mais pra trás Sun Tzu falava sobre a arte da guerra. (acordei inspirado)

    O ponto comum que vejo é a necessidade de abstração. A capacidade de antever (estranha palavra) possíveis situações, preparar estratégias, executá-las e mesmo assim estar pronto a qualquer momento para rever tudo e adaptar-se às mudanças.

    Para chegar a este nível de excelência acredito que seja necessário exatamente o que você comentou. Primeiro aprender as regras e depois aprender a jogar.

    A prática constante é fundamental e tende (na minha visão) a refinar cada vez mais e mais a ‘forma de pensar’ que você comentou. Permitindo ao desenvolver ter uma visão mais holística dos sistemas e tecnologias com os quais trabalha…
    (eu realmente acordei inspirado)

    Falou

  6. Eu sou exemplo de que já li livros e mais livros básicos, principalmente de php e vi que eu não conseguia desenvolver pq me faltava algo…e era a maldita logica e algoritmo, então eu dei uma de louco larguei minha faculdade de adm e hj curso sistema da informação, e lá estou vendo logica e algoritmo, hj quando eu pego os livros de php, já entendo grande parte das coisas…eu queria sempre fazer algum algoritmo no computador e ali a coisa não evoluia porque eu não pensava fica testando e na faculdade não, a coisa é no papel ou vc pensa e tenta acerta e não fica testando..e na real é essa, tem que mudar a nossa maneira de fazer as coisas e a logica é um grande passo para esse inicio, se chegar a desenvolver algo do tipo eu sou mais um aluno…porque não quero coisa básica de php ou qualquer outra coisa, quero aprender o conceito, aprendendo isso ai sim estou preparado para um linguagem qualquer, tenho uma base.

  7. Eu acho meio complicado falar sobre isto sem fazer uma reflexão sobre o assunto, mas…

    Existem algumas etapas que segui na época da faculdade. Começando por “portugol” até colocar a mão na massa em um linguagem de programação.

    Me recordo de um programa do Sesc, faz muito tempo, que foi muito útil no meu aprendizado. Este tal programa tinha uma parte visual muito próximo a diagramas ER, mas bem mais simples que trabalhava com input e output, loops, condições e diversas outras coisas e ainda gerava o código fonte em um painel na parte de baixo. Se me recordo bem o código gerado era em C ou pascal.

    Bem, era muito inteligente e trabalhava muito bem com pessoas “visuais”, foi muito fácil aprender “brincando” e ver o resultado do código fonte gerado sem ter a mínima idéia do que era aquilo me tirou o medo e a insegurança. Eu vi meu primeiro loop infinito sem escrever uma linha de código!

    Me adaptei muito bem ao esquema da faculdade, o qual uso até hoje para todos o meus estudos em novas linguagens. É meio que aquela receita de bolo: Variaveis, Tipos de dados, Funções e métodos, Input / Output, Condições, Loops, Arquivos, etc.

    Por outro lado tem muita gente aprendendo com o “Learn how to program” do Chris Pine. Eu acho que vale a leitura, pelo menos, 1 vez na vida.

  8. olá, paz e bem!

    excelente post! um verdadeiro “toc na cuca” (há um livretinho com esse nome que balança a gente).

    o ponto de mutação (pra acompanhar os inspirados!) é esse: realmente não se ensina a álguem coisa alguma… o relacionamento com o mentor adequado que inspira um cérebro/mente (a maior parafernália de aprendizado), nutre a esperança e o afinco para apreender!

    quanto ao seu sonho/idéia agradeço por compártilhá-lo conosco… quem sabe não vira um projeto tipo gestão/compartilhamento de conhecimento(como os ning da vida, né?).

    []s livres,

    PS.: desculpe-me pelo blog desatualizadíssimo.

    Leocadio
    Guarujá, SP-BR

  9. Realmente o processo de aprendizagem é algo muito complexo. Creio que não existe metodologia mais ou menos eficaz. Alguns aprendem caindo e se levantando, alguns aprendem por que necessitam, alguns aprendem por que estão em um meio que favorece, alguns por que se sentem desafiados, alguns por que são curiosos. A única coisa em comum que existe em todos esses processos é a dedicação, sem dedicação não se aprende nada! Muitas pessoas saem da faculdade sem saber nada porque se dedicaram o suficiente apenas para ganhar um diploma…

    Abraços,
    Alisson Sales

  10. Interessante que no CEFET os professores sempre deixaram claro que programar está na cabeça, 1º você programa a cabeça, depois você transcreve para a linguagem, e isso resume bem o que foi dito.
    A respeito dos cursos, acho que o ofício de programação tinha que ser regulamentado, isso ajudaria a acabar com cursos “meia-boca”. Existe um projeto lei para criação dos conselhos http://www.senado.gov.br/sf/atividade/materia/getHTML.asp?t=11569 , creio que se aprovado vai ajudar muito.
    (Realmente programar se aprende programando!)
    Com a regulamentação, creio que os curso melhorarão, deixarão de ser cursinhos para serem Curso Profissionalizante. No Rio de Janeiro, capital, e outras capitais, já existe um sindicato para programadores e isso já é um bom começo.

Deixe uma resposta

* Copy This Password *

* Type Or Paste Password Here *