Quero ser programador, como aprender a programar?

A Internet é um dos meios de comunicação mais democráticos de todos os tempos. Com ela, diversos tipos de atividades puderam ser exercidas por leigos que, assim, tiveram a chance de profissionalizar, como os escritores (blogs), artistas de vários estilos (youtube) e, principalmente, programadores. Estes últimos possuem, atualmente, diversos recursos disponíveis para iniciar o seu aprendizado na área. Quem deseja seguir essa carreira e fazer dela o seu ganha-pão principal pode ainda recorrer aos vários cursos, livros e fóruns de discussões disponíveis gratuitamente pela Internet.

Sempre que me perguntam "o que eu preciso fazer pra aprender a programar?" não consigo responder de forma precisa. Geralmente, quem já tiver um pé na área da computação, irá tentar responder esta pergunta por si só. Pois é uma característica essencial para o programador saber ir atrás das respostas. Mas, este post pode ser a resposta de alguém que procurou, portanto vamos lá.

Pelo que já observei, existem vários perfís de pessoas. Um deles, gosta de cursos. Gosta que alguém lecione o conteúdo. Precisa que alguém desvende o oculto aos olhos do aluno. A partir daí, então, consegue seguir com seus próprios passos.

Por tornar-se referência na vida do programador, é bom escolher o curso certo. Existem diversas opções: aulas presenciais, à distância, cursos teóricos e cursos práticos. Para ter chances no mercado mais rápido, recomendaria cursos que dão iniciação tanto teórica quanto prática, nos quais irá se aprender conceitos de lógica de programação, algoritmos, estrutura de dados, os sistemas de numeração, como os decimal, o hexadecimal e o binário.

Na parte prática, esses cursos vão orientar a escrever os seus próprios códigos. A partir dessa base, é interessante optar por cursos mais avançados e específicos, como o de um framework ou alguma metodologia para se aperfeiçoar em determinada área, como por exemplo, métodos ágeis.

Estes cursos não se limitam a empresas especializadas. Existem cursos, screencasts e workshops feitos de programadores para programadores, como é o caso da howtocode.com.br, basta procurar.

Alguns podem ser um pouco mais custosos, mas sempre vale a pena, caso seja de qualidade. Nos sites de compras coletivas costumam haver promoções de cursos de lógica da programação. Em alguns casos, é possível encontrar cursos com descontos de até 50%, tornando-o bem mais acessível financeiramente.

Bom, para quem acha que consegue dar conta do recado sozinho, eu gostaria de indicar alguns passos, tópicos e práticas que não podem faltar.

Estude inglês

Infelizmente o conteúdo disponível em português sobre desenvolvimento não é suficiente. É necessário ler livros da área e, os melhores, estão em inglês. Participe fóruns e grupos de discussões e aprimore tanto o inglês quanto seu conhecimento. Um outro lugar interessante para você melhorar seus conhecimentos em inglês e em programação é no IRC. A Freenode tem ótimos canais com pessoas dispostas a tirar dúvidas e discutir. Aproveite este conteúdo gratuito!

Aprenda bem uma linguagem

Não tente abraçar tudo. Aprenda bem apenas uma linguagem. As outras linguagens serão absorvidas muito mais fácil a partir disso. Mas não se deixe enganar. Apesar de haver vários livros por aí "aprenda tal linguagem em tantos dias", no máximo, você vai aprender a linguagem. Mas não vai aprender a programar. Quando se aprende a programar, se programa mais fácil em qualquer outra linguagem, contanto que seja do mesmo paradigma.

Depois de entender bem uma linguagem, comece, então, a estudar outras. Mas fica o alerta, um cara chamado Peter Norvig, funcionário da Google e professor de Inteligência Artificial de Stanford, escreveu um artigo bem famoso: Aprenda a programar sozinho em 10 anos, ou seja, não é da noite para o dia! O artigo vale a leitura!

Domine o seu Editor de Texto

Existem diversos editores de texto e IDE's por aí. Independente de qual for utilizar, estude como tirar ao máximo dele. Integre com ferramentas de debug, testes unitários e decore os atalhos dos comandos mais utilizados. Use menos o mouse e mais o teclado, sua produtividade vai aumentar com isto!

Para quem use o vim, eu já escrevi várias dicas, tais como como consultar a documentação do PHP direto do vim, como fazer buscas eficientes e como utilizar o Vim dentro do Eclipse. Enfim, são várias dicas de vim.

Seja humilde

Você sempre será o noob de algum outro hacker. Aprenda com seus erros e procure entender aquilo que ainda não compreende completamente. Leia, pesquise, pergunte.

Leia códigos de outras pessoas

Para ser um bom músico, é necessário escutar muita música. Tanto é, que a pergunta padrão para qualquer banda é "quais são as influências da banda?". O mesmo acontece para poetas, que precisam ler poesias e pintores, que precisam observar outras obras.

O desenvolvimento de software é algo artesanal e intelectual. Logo, cada programa é único, como uma poesia, um quadro ou uma música. Em um projeto grande, caso todo o código seja perdido e refeito sem nenhuma consulta, é muito provável que ele tenha exatamente as mesmas funcionalidades, porém não será nada parecido com o antigo.

Portanto, leia, entenda e absorva as melhores idéias dos códigos de outras pessoas. Assim, você começará a ter um estoque do que eu chamo de "banco de soluções". Quando precisar implementar uma funcionalidade, você lembrará do que já viu e poderá aprimorar idéias e ter algum ponto de início.

Portanto, pegue um projeto interessante na linguagem que estiver aprendendo e compreenda seu funcionamento. Você pode procurar projetos no github, bitbucket e no google code, por exemplo.

Se você pretende começar com PHP, dê uma olhada nesta iniciativa do grupo de usuários de PHP de São Paulo. O negócio funciona mais ou menos assim: você escolhe um projeto que está sendo suportado por eles e contribuí. Os mais engajados concorrem a prêmios! Para conferir, acessa lá a a página da promoção.

Leia livros e aprenda de quem sabe

Toda área de conhecimento do mundo tem pelo menos um livro sobre o assunto. Existe muito livro. Pesquise os autores e os livros mais populares sobre desenvolvimento e leia-os. Se o problema é comprá-los, aqui vai uma uma lista enorme de e-books gratuitos. Também quero compartilhar esta pergunta falando sobre o o livro mais influenciador que um programador pode ler. Já li vários da lista e acho complexo decidir um, mas com certeza The Pragmatic Programmer e Pragmatic Thinking and Learning me fizeram ser um programador melhor do que era antes de lê-los.

Tópicos de Estudo

Segurança

  • Seja paranóico.
  • Nunca confie em dados enviados pelo usuário (cookies inclusos!)
  • Saiba sobre os perigos do SQL Injection. Aproveite e já leia todo o guia de desenvolvimento da OWASP sobre segurança.
  • Não permita cross site scripting (XSS)
  • Não permita coss site request forgeries (XSRF)

Performance

  • Utilize Cache, tanto para páginas quanto para banco de dados
  • Comprima e minimize seus scripts Javascript e CSS
  • Otimize imagens, aprenda a utilizar Sprites (CSS)

Tecnologia

  • Entenda como funciona o protocolo HTTP e o que é cada parâmetro do cabeçalho
  • Javascript pode ser desabilitado, então fique atento para o correto funcionamento do site
  • Cada browser interpreta Javascript de uma forma um pouco diferente, leia sobre Graceful Degradation e Progressive Enhancement

* Estes tópicos acima foram retirados/inspirados por uma pergunta na StackOverflow.com.

Compareça a conferências

Comparecer em eventos e conferências da sua área fará com que você aprenda coisas novas e também fique por dentro do estado da arte. Também aumentará seu networking proporcionando discussões e, quem sabe, até oportunidades de emprego. Se possível e você se sentir seguro, submeta propostas e palestre. Isto você ser mais reconhecido e seu conhecimento é compartilhado. Todos ganham com isto.

Vá a Dojos

Assim como nas artes marciais, na programação, ninguém a domina caso não treine. Não estamos falando de trabalho, estamos falando de programação como esporte, como passatempo. Somente com o treino é que conseguimos incorporar boas práticas e teorias que lemos em livros e assistimos em conferências. Coding Dojos servem justamente para isto e podem ser frequentados por programadores de todos os níveis!

Crie um blog

Crie um blog e demonstre sua evolução para o mundo. Se você já conseguiu resolver um problema lendo a solução no blog de alguém, então deveria escrever um blog para por suas soluções. Assim, você retribui o favor e ajuda a comunidade de desenvolvedores.

Na hora de procurar emprego, o blog também ajuda a mostrar que você se interessa por programação e que sabe alguma coisa. Que não é um menininho que saiu do curso e está se chamando de "senior".

Conclusões

Espero que estes itens ajudem você a começar a programar. Não se limite a este post e também não o siga como uma regra. Há muita coisa ainda que ficou de fora. Faça do jeito que achar melhor. Estes foram apenas alguns concelhos. Se você tiver mais conselhos e idéias ou discorda de algum ponto, poste um comentário! Vamos tornar este conteúdo mais rico.

Boa sorte na sua jornada para se tornar um programador mothafoca!

Comentários

por isso sou teu fah! sempre modesto, simples e direto.

Postar novo comentário

O conteúdo deste campo será privado e não será mostrado publicamente.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.

More information about formatting options