18 de set de 2018

Como ser um bom programador? Confira recursos para deixar nos favoritos

Udacity Brasil

Muitos caminhos podem levar à programação, mas esse processo pode ser menos complexo do que você imagina. Entrevistamos três programadores que já atuam no mercado para elaborar um guia de como avançar na carreira, ajudar quem está pensando em começar e também quem já deu os primeiros passos.

Afinal, o que é preciso fazer para se tornar um bom programador?

Essa resposta (e algumas outras) ficarão a cargo de Fabio Akita, co-fundador da Codeminer 42; de Rafael Cerri, da Laboratoria; e de Roberto Ierusalimschy, professor do Departamento de Informática da Pontifícia Universidade Católica do Rio de Janeiro (PUC-Rio).

E todos têm conhecimento de causa.

Roberto Ierusalimschy é o projetista-chefe da linguagem de programação Lua, usada em programas como Angry Birds, World of Warcraft, Adobe Lightroom e Wikipedia. Ele começou em 1977 programando em Assembler, uma máquina Z80.

Fabio Akita deu os primeiros passos em programação no início da década de 1990. “Quando eu comecei a aprender não existia internet comercial, não existia Google ou Stack Overflow. Não existiam ebooks. Hoje é infinitamente mais fácil aprender do que era na minha época”, afirma.

Já Rafael Cerri trabalha como desenvolvedor web desde 2015. Primeiro atuou como fullstack no Agendor e hoje é front-end e instrutor na Laboratoria. Para ele, é importante ter “um bom raciocínio lógico para conseguir transformar as suas ideias em códigos” e também conhecer muito bem as ferramentas do dia a dia e os atalhos do editor de texto e do terminal.

Dos melhores editores de texto aos podcasts de tecnologia do momento, confira diversos recursos que o trio indica para programadores que querem avançar seus conhecimentos!

Um rápido guia de programação em 11 tópicos

1. Defina o básico

  • Procure ter um computador pessoal sempre que possível, já que isso te dá a flexibilidade para programar sempre que quiser. "É nele onde você irá aplicar os seus conhecimentos”, diz Rafael Cerri
  • Escolha um sistema para começar a testar. “Uso um sistema Ubuntu, mas qualquer sistema Unix-like é ótimo para programadores”, avalia Roberto Ierusalimschy

2. Editores de texto

Teste diversos editores de texto para avaliar qual funciona melhor para você! Entre os citados estão:

3. Cursos online

O programador Fabio Akita não tem um único curso online favorito. “Depende muito do seu estilo de aprendizagem. Eu recomendo que desde cedo as pessoas se acostumem a ser autodidatas e não dependam de cursos tradicionais que têm um local, data, professor e tudo mais.

Entre os mais bem cotados estão os programas Nanodegree da Udacity (que incluem Introdução à Programação, Desenvolvimento Web Front-End e Desenvolvedor Full Stack, entre outros), os preferidos de Rafael Cerri. "Você terá ajuda de mentores para te auxiliar no seu aprendizado”, afirma.

Outros exemplos incluem DailyDrip, Khan Academy, Frontend Masters e Code Academy.

4. Livros

Roberto Ierusalimschy indica três clássicos: The Practice of Programming e os dois Programming Pearls: Programming Pearls e More Programming Pearls.

Já Fábio Akita indica o Pragmatic Programmer, escrito por “dois dos signatários originais do manifesto Ágil; The Mythical Man-Month de Fred Brooks; The Cathedral and the Bazaar, de Eric Raymonds.

Rafael Cerri indica o livro Código Limpo ("Clean Code"). “Fala sobre boas práticas de programação e é praticamente um pré-requisito para ser um bom programador”, diz.

5. Meetups e conferências

A troca de experiências em pessoa é muito importante para desenvolvedores, que trocam não só conhecimentos como contatos e criam uma rede que pode ser bastante útil tanto no dia a dia da programação quanto para encontrar novas oportunidades.

“Em São Paulo existem dezenas de conferências e meetups. Sempre fiquem de olho nos seus grupos locais e sites como meetup.com”, sugere Fábio Akita.

Ele também organiza sua própria conferência, a The Conf, que tem como objetivo estimular o público brasileiro a se acostumar a falar inglês. A próxima edição será entre 21 e 22 de setembro.

Outros encontros indicados incluem:

6. Espaços de coworking

O boom das startups provocou, segundo Fábio Akita, o surgimento de dezenas de espaços de coworking. Ele recomenda estes locais apenas se você tiver algum objetivo específico em mente.

“Se você tem pouca gente ou é sozinho, quer um lugar para trabalhar e o custo faz sentido, com certeza vá. Mas não vá aleatoriamente, achando que só porque está lá vai acontecer alguma coisa”, aconselha.

7. Desafios e jogos para treinar

“Programar é uma atividade que exige prática. Você deve estar constantemente praticando com código fora do trabalho. Todo projeto open source que esbarrar e achar interessante, você deve baixar, vasculhar o código, tentar modificar, sem ter objetivo de usar esse código”, afirma Fábio.

Por isso, ele sugere os hackathons, que considera uma boa atividade social para quem está aprendendo a programar. É possível encontrar uma lista de hackathons no Brasil aqui.

Rafael Cerri indica o Codewars e o HackerRank. “São excelentes sites para você praticar e resolver problemas utilizando a programação.”

Leia também: 5 plataformas gratuitas de desafios de programação para treinar suas habilidades

8. Comunidade online

Fabio Akita recomenda parcimônia no uso de comunidades e grupos online em WhatsApp, Telegram e Facebook. “Participe e ajude os outros que tenham dúvidas, pois responder perguntas é outra excelente forma de ver se você sabe o que acha que sabe. Mas filtre o que consome, vá em coisas objetivas e evite ao máximo discussões filosóficas que no fim acabam sendo só perda de tempo”, sugere.

Para Rafael Cerri, o Slack do Training Center, o Slack do CS50 e o Slack do Front-End Brasil são boas comunidades.

Além disso, reserve tempo para explorar repositórios como o GitHub. "Essas ferramentas são boas justamente porque dão acesso a uma vasta biblioteca de exemplos de códigos dos mais diversos tipos, o que facilita muito ter referências na hora de você mesmo escrever os seus. Assim como você nunca vai fazer gols sem parar logo no primeiro dia de um treino de futebol, assuma que seu código no começo sempre vai ser o pior possível”, avisa Fábio.

9. Onde tirar dúvidas

O site Stackoverflow, segundo Fabio Akita, é um dos principais lugares para tirar dúvidas.

“É ótimo pelo simples fato de que, se você está começando, pode ter certeza absoluta que nenhum problema que você tiver é novo. Alguém já teve esse problema – muitos na verdade – e certamente a resposta já foi publicada em algum lugar. E aprenda a usar o Google antes de sair perguntando”, recomenda.

Um assunto em comum entre eles é a importância da colaboração, seja ao buscar ajuda para resolver um problema ou escrever códigos organizados e limpos para que outros desenvolvedores consigam entender o que está acontecendo.

E não importa onde você vive hoje, existem várias formas e lugares de buscar essa interação online e offline. Há meetups, conferências, comunidades como Stack Exchange, Quora, Reddit, grupos de Facebook e projetos open source presentes em repositórios no GitHub ou GitLab.

10. Podcasts

Rafael Cerri gosta de três podcasts brasileiros que falam sobre tecnologia e desenvolvimento e têm um bom conteúdo:

Para Fábio Akita, os podcasts podem ser uma boa fonte de entretenimento e ainda trazer perspectivas diferentes. "São bons para ouvir no caminho pro trabalho enquanto você espera no trânsito", fala. "Também gosto de comprar audiobooks na Audible.com e ficar lendo coisas que não são de programação. É importante você não ser bitolado também”, diz.

11. Palestras e vídeos

O YouTube é uma grande festa de boas palestras e eventos, só é preciso filtrar suas áreas de interesse.

“Recomendo procurar os principais eventos internacionais que disponibilizam gravações. Na minha área de atuação, que é Ruby, eventos como RailsConf ou RubyKaigi, do Japão, têm dezenas de palestras bacanas", sugere Fábio.

Em um mundo cada vez mais conectado, é preciso vasculhar conteúdos além das fronteiras. "Você precisa saber o que o resto do mundo está fazendo – e não se restringir somente ao Brasil”, finaliza.

Vá além:

Sobre o autor
Udacity Brasil

A Udacity, conhecida como a "Universidade do Vale do Silício", é uma plataforma online e global que conecta educação e mercado para ensinar as habilidades do futuro – de data science e marketing digital à inteligência artificial e desenvolvimento. Hoje, há mais de 7 mil alunos ativos no país e 50 mil pelo mundo.