sexta-feira, 23 de dezembro de 2011

Estudar aplicação ou linguagem de programação?

Aconteceu comigo, e acho que deve acontecer com a maioria dos desenvolvedores, o momento onde aprender novas linguagens de programação não me permite resolver problemas que eu não resolvia antes, até porque a maioria das linguagens mainstream vivem copiando recursos umas das outras.

Mas então, como eu vou continuar progredindo para programar a Matrix? Simples, desenvolva programas que você nunca fez, e aconselho você a usar a linguagem e ambiente mais produtivo que estiver a sua disposição. Por exemplo, eu sou um aspirante à desenvolvedor de jogos, já tentei muita coisa, desde C com Allegro, XNA/C#, até C++/OpenGL, e acabou que o único ambiente que tinha uma boa IDE e me permitia experimentar coisas rápido foi a AS3 do flash no FlashDevelop.

Este é um ponto crucial que muita gente costuma ignorar, a IDE. A linguagem de programação é grande parte do pipeline de trabalho, mas não é o pipeline inteiro, para se ser produtivo e fazer as coisas sem se sentir frustrado, o ambiente inteiro precisa ser rápido e te ajudar a cometer menos erros.

Se você quiser ser um melhor desenvolvedor, terá que se arriscar aprendendo a programar novos tipos de aplicações, sejam elas, desktop, web, interativas, de inteligência artificial, ou até mesmo controle de estoque, caso você não tenha feito um. E este nível de granularidade pode diminuir cada vez mais, por exemplo, você é um programador de sistemas web php. Crie uma limitação fictícia onde o seu cliente terá milhões de pageviews diários e o código precisa ser todo escrito em C++. Ótimo, agora você precisa aprender a fazer um web server. No final do processo, vai entender muito mais sobre suas páginas php e poderá pegar projetos muito mais ousados.

Enfim, o bom programador programa qualquer coisa em qualquer linguagem. Até hoje me impressiona os jogos de Super Nintendo e Megadrive terem sido feitos em Assembly, assembly... Eu sempre uso este fato como fator motivacional para continuar aprendendo, por que se eles fizeram aquilo tudo em Assembly, qualquer coisa é possível em Linguagem de Alto Nível Cool da Moda.

Mas não deixe de aprender novas linguagens de programação, ainda mais se elas forem de algum paradigma que é alienígeno a você, no meu caso estou me aventurando aos poucos no paradigma puramente funcional através de Common Lisp.

2 comentários:

  1. Bem informativo. Basicamente, a ideia é não ter preconceito quanto a alguma ferramenta e procurar aprender várias para utilizar a que lhe parece mais confortável e aprofundar as suas habilidades, não só de programação mas de resolução de diversas naturezas de problemas, procurando aprofundar cada vez mais no nível de dificuldade e tentando fazer coisas cada vez mais incríveis.

    ResponderExcluir
  2. Alguns pontos que tem que ser levados em conta:
    * Não reinventar a roda;
    * Manter as coisas o mais simples e funcionais possível;
    * Utilizar de cada ferramenta, paradigma, linguagem, o que de melhor ela tem a oferecer, e não tentar fazer fogo com pedra pomes;
    * Não depender de tecnologias, que ora e meia chegam ao fim, para o resto da vida. Se o .NET chegasse ao fim, por exemplo, muitas pessoas morreriam junto, porque dependem completamente daquilo tudo que está armado ali.

    Me baseei no que me disseram ser consenso entre os desenvolvedores do mundo todo, para responder.

    ResponderExcluir