Mecânico vs. Engenheiro Mecânico

Depois de ler um artigo muito interessante que fala sobre o uso das “super ferramentas” e de acompanhar a fase de iniciação de dois ex-desenvolvedores Delphi que decidiram investir no aprendizado de Python eu andei pensando que existem muitos programadores no Brasil que julgam ser importante se tornar apenas um programador “mecânico” e não um programador “engenheiro mecânico”.

Eu programo há muito tempo. Desde a época em que os programadores tinham que digitar o número das linhas de um programa para que o computador pudesse saber a ordem de execução das instruções. Depois disso eu “evolui” e passei a ter como companheiro um bom editor de textos e uma dupla inseparável de compilador e “linkeditor” que eram executados de maneira quase manual.

As ferramentas de desenvolvimento foram então evoluindo e chegamos então à era das IDEs e super-IDEs que transformavam as intermináveis horas de digitação de um programa em uma meia-dúzia de cliques de mouse.

Tudo muito bom, moderno, legal e ágil, mas ao mesmo tempo emburrecedor. Emburrecedor porque deste ponto em diante os programadores passaram a usar apenas as ferramentas e a usar somente aquilo que elas lhes ofereciam. Passamos então a “consertar os carros” usando ferramentas prontas e pré-fabricadas e deixamos de entender os conceitos físicos e científicos envolvidos no funcionamento dos “motores” desses carros.

A dependência dessas ferramentas e o decorrente emburrecimento dos desenvolvedores fez com que a adaptação desses mesmos desenvolvedores às novas tecnologias se tornasse muito mais complexo do que era antes.

O que eu quero dizer com isso tudo é que de fato é muito bom você ter ferramentas poderosas para agilizar o seu trabalho mas se você se preocupar em usar apenas essas ferramentas você estará limitando suas possibilidades ao que essa ferramenta oferece.

Quando você decidir se tornar um desenvolvedor pense se você pretende ser só um “mecânico” preocupado em usar as ferramentas prontas ou se você quer ser um “engenheiro mecânico” que além de usar as ferramentas também são capazes de criar novas ferramentas.

E vejam: eu não sou contra IDEs, mas acho que os programadores deveriam ser capazes de trabalhar sem elas.

Publicado por

Osvaldo Santana

Desenvolvedor Python e Django, Empreendedor, dono de uma motocicleta esportiva, hobbysta de eletrônica, fã de automobilismo e corinthiano

  • Pingback: Tempos Modernos » LSDR.net()

  • Na verdade quase todas as abordagens WYSIWYG são prejudiciais ao desenvolvimento de boas práticas, não só na área de programação, mas também em outras áreas. Um bom exemplo disso é o webdesign, onde uma grande quantidade de ferramentas se apresentam como substitutas para a codificação manual.

    Um lado positivo desse tipo de tecnologia são os editores de telas que geram código XML que pode ser importado para utilização posterior (sem gerar código em linguagem de programação), como o Glade/libglade. Aliás, o XML também dá as caras em formatos de arquivos intercambiáveis (também criados por editores WYSIWYG de texto, planilhas, etc), o que é muito bom.

    É claro que IDE’s podem aumentar a produtividade, mas sempre é preciso lembrar que o melhor meio de ganhar produtividade é “saber como as coisas funcionam” (TM). 😉

    Ótimo texto!

  • Na verdade quase todas as abordagens WYSIWYG são prejudiciais ao desenvolvimento de boas práticas, não só na área de programação, mas também em outras áreas. Um bom exemplo disso é o webdesign, onde uma grande quantidade de ferramentas se apresentam como substitutas para a codificação manual.

    Um lado positivo desse tipo de tecnologia são os editores de telas que geram código XML que pode ser importado para utilização posterior (sem gerar código em linguagem de programação), como o Glade/libglade. Aliás, o XML também dá as caras em formatos de arquivos intercambiáveis (também criados por editores WYSIWYG de texto, planilhas, etc), o que é muito bom.

    É claro que IDE’s podem aumentar a produtividade, mas sempre é preciso lembrar que o melhor meio de ganhar produtividade é “saber como as coisas funcionam” (TM). 😉

    Ótimo texto!

  • Fiz colégio técnico em Eletrônica (embora não gostasse muito, mas serviu de base pra muita coisa em exatas).

    Uma coisa que acontecia: lá a gente aprendia muitos fundamentos. Enquanto estávamos aprendendo uma porrada de trigonometria, física e o escambau, alguém poderia ir na Santa Ifigênia, fazer um cursinho de 1 mês e aprender a consertar as coisas, embora, é claro, não soubesse exatamente o que está fazendo.

    O seu texto me fez lembrar desse pequeno paralelo 🙂

  • Fiz colégio técnico em Eletrônica (embora não gostasse muito, mas serviu de base pra muita coisa em exatas).

    Uma coisa que acontecia: lá a gente aprendia muitos fundamentos. Enquanto estávamos aprendendo uma porrada de trigonometria, física e o escambau, alguém poderia ir na Santa Ifigênia, fazer um cursinho de 1 mês e aprender a consertar as coisas, embora, é claro, não soubesse exatamente o que está fazendo.

    O seu texto me fez lembrar desse pequeno paralelo 🙂

  • Avi

    Todos os bons desenvolvedores que conheço usam IDEs, mas com muita cautela.

    Eles tratam de entender o que acontece por trás dos 2-cliques-mágicos-que-fazem-tudo.

    Agora, tem alguns desenvolvedores que conheço que não trocam o vi por nada neste mundo.

  • Avi

    Todos os bons desenvolvedores que conheço usam IDEs, mas com muita cautela.

    Eles tratam de entender o que acontece por trás dos 2-cliques-mágicos-que-fazem-tudo.

    Agora, tem alguns desenvolvedores que conheço que não trocam o vi por nada neste mundo.