Aprendendo Um Pouco Todos os Dias
10 Dec 2015Programar, muito além de uma ciência exata, é uma arte, uma arte que demanda muita habilidade e conhecimento (combinação conhecida também como competência).
Existem muitas formas de adquirir tais habilidades, e é importante ter em mente que sempre haverá algo novo a aprender (e é este desafio constante que me leva a ficar acordado até as 2 da manhã quase diariamente, estudando. Portanto, tenha em mente, para poder se denominar “competente” é preciso desenvolver habilidades e adquirir conhecimento.
Conhecimento
Vivemos em pleno século XXI, quase tudo a nossa volta é fonte de informação, e os nossos celulares são fontes de informação praticamente infinita. Isto é ótimo, e ao mesmo tempo muito ruim. Podemos gastar o nosso tempo em conversas levianas no whatsapp, ou vendo fotos no Facebook, ou mesmo rolando infinitamente o scroll do 9gag. Quer se tornar um ótimo programador? Então tome cuidado com isso.
Utilize o seu tempo melhor, forme a sua rede de pessoas, sites e blogs que tenham conteúdos relevantes, e leia-os diariamente. Esta no metrô, ônibus ou na fila de um banco? Este é um ótimo momento para ler um artigo (use seu celular a seu favor). Eu considero a obtenção diária e constante de conhecimento muito mais enriquecedor do que pagar para fazer algum curso (um curso pode ser um ótimo ponto de partida, mas curso nenhum vai te deixar apto ao mercado de trabalho).
Para organizar o que eu vou ler e sempre receber novidades que são do meu interesse, eu uso o Feedly. Um bom leitor de RSS é essencial.
Abaixo, uma lista de alguns dos principais sites e nomes que eu leio diariamente:
-
Eduardo Pires - Arquiteto de Software e professor, seu Blog tem ótimos artigos sobre arquitetura e engenharia de software, além de ótimos tutoriais gratuitos (e treinamentos pagos).
-
Troy Hunt (em inglês) - Profissional norte-americano especialista em segurança de software. Seu blog tem uma linguagem super simples e os artigos são sempre muito esclarecedores. Parada obrigatória para qualquer desenvolvedor.
-
Microsoft Virtual Academy (inglês/português) - A academia da Microsoft possui muito conteúdo e vídeos muito bons. Eu aprendi MVC aqui. Recomendo muito os Jumpstarts (te levam do 0 ao fazendo algo útil em poucas horas). E se você acha que a MVA tem apenas conteúdo sobre tecnologias Microsoft, a cerca de 6 meses atrás foi publicado um Jumpstart de Python Django.
-
ADT Magazine (em inglês) - Conteúdos diversos, todos relacionados a TI. Segurança, banco de dados, cloud computing, infraestrutura, nova linguagem do Google, e outras coisas.
-
Allan Kelly (em inglês) - Engenheiro de software britânico. É um dos meus profissionais favoritos. Posta bastante conteúdo sobre agile, engenharia e arquitetura de software. Seu blog é obrigatório para quem quer entender todas as etapas relacionadas ao desenvolvimento de software além da escrita do código.
-
UX Magazine (em inglês) - Não sou especialista em user experience, mas é sempre bom ver alguma coisa sobre, ter noção de alguns conceitos e ver como o mercado (internacional) está convergindo neste sentido.
-
André Baltieri - Microposts sobre engenharia e arquitetura de software.
Habilidade
Conheço somente uma forma de desenvolver habilidade: praticando. Então, como se tornar proeficiente com uma linguagem ou tecnologia com a qual não trabalha no dia-a-dia?
Tutoriais
Existem inúmeros tutoriais espalhados pela Internet, muitos deles, inclusive, podem ser feitos online.
-
TryRuby - Ótimo tutorial online para quem quer dar os primeiros passos com Ruby. Este tutorial foi completamente traduzido para o português brasileiro por mim.
-
Rails Book (em inglês) - Já aprendeu Ruby e agora quer aprender o seu principal framework para desenvolvimento web? O Rails Book é o tutorial em forma de livro mais completo que eu já vi, ele ensina desde comandos básicos de Linux, passando Github, Heroku e, claro, muito Rails. Tutorial muito recomendado, dependendo da sua fome, dá para devora-lo em um final de semana.
Jogos
-
Code Combat (em inglês) - Exercite Javascript jogando. É um tipo de RPG no qual a única forma de passar de fase é escrevendo código. Sempre recebe fases e desafios novos.
-
Robot Game (em inglês) - Jogo multi-player competitivo no qual você possui um robô de combate que deve vencer os robôs de outros jogadores. E onde está a programação? Você não controla o seu robô, você programa sua inteligência artificial em Python.
OpenSource
É fato indiscutível que a todo instante nós estamos utilizando software OpenSource (este blog que você está lendo usa Jekyll, que é OpenSource). Portanto, teve uma ótima idéia que vai ajudar um monte de gente? Nada mais justo do que contribuir um pouquinho com o mundo e participar da comunidade OpenSource. Você também pode contribuir ajudando a melhorar projetos que já existem.
- Github - Maior rede social e de desenvolvedores e projetos OpenSource do mundo. É possível contribuir com projetos já existentes ou criar os seus próprios. Se você ainda não tem sua conta no Github, pare tudo o que está fazendo e vá criar sua conta agora.
Concluindo
Existe muito conteúdo bom e gratuito na Internet, basta estudar. Você deve ter reparado que a maioria do conteúdo é em inglês, se inglês ainda é o seu fraco, já passou da hora de aprender. Não dá para crescer neste mercado sem saber inglês, portanto, dedique um tempo dos seus estudos a isso.
Na minha opinião, cursos são ótimos pontos de partida mas não irão lhe tornar profissional. O processo de profissionalização acontece a todo instante, a toda hora. É preciso dormir, comer e respirar programação. E, principalmente, gostar de programar.
Gostou deste post? Tem dúvidas ou sugestões? Algum tema específico que gostaria que fosse abordado neste ou em tópicos futuros? Deixe o seu comentário, compartilhe, me ajude a propagar este blog para que eu possa compartilhar meu conhecimento e experiências com cada vez mais gente.