Os Primeiros Passos para Aprenderes a Programar

Os primeiros passos para aprenderes a programar

Os Primeiros Passos para Aprenderes a Programar

Os Primeiros Passos para Aprenderes a Programar 620 350 Bruno Brito

Nos últimos tempos, várias pessoas me têm perguntado como podem aprender a programar (para a Web). Este artigo serve como um pequeno guia de iniciação, onde partilho um pouco da minha experiência e algumas soluções que te podem ajudar a manteres-te motivado quando sentires o nível de dificuldade a subir.

Antes de avançar, é importante referir que estou longe de ser um “super programador”. Se acompanhas este blog, saberás certamente que o meu background é essencialmente de Marketing Digital; no entanto, há já alguns anos que tenho vindo a dedicar cada vez mais horas por dia a esta temática, trabalhando actualmente no ramo enquanto Web Developer.

Já foi há algum tempo, mas ainda me lembro perfeitamente como aprender a programar pode ser uma experiência frustrante. O período de constante inovação tecnológica que vivemos pode-nos levar a pensar que qualquer um pode lançar uma rede social depois de um mini-curso no YouTube de um par de horas, mas infelizmente não é bem assim.

Se não desanimares a meio da viagem, verás que programar tem tanto de frustrante como de gratificante. Aprender a programar é uma óptima ideia, mesmo que não queiras seguir carreira no ramo.

O truque é manteres-te focado no teu objectivo e não dispersar- para que queres aprender a ler e escrever código?

O dilema das linguagens

Depois de meteres na tua cabeça que queres aprender a programar, terás logo um desafio interessante pela frente: escolher uma linguagem (ou várias).

HTML, CSS, JavaScript, PHP, Ruby, Python… por onde começo?

Qualquer programador te dirá maravilhas da sua linguagem preferida, utilizando termos que não conheces e que raramente respondem à pergunta para a qual tu queres realmente ter a resposta: para o que eu quero, qual é a ideal para mim?

Aqui, vou assumir que queres programar para a Web. Criar sites, webapps e eventualmente, aplicações mobile.

Para facilitar, separei também as minhas dicas por níveis, que vão de um novato absoluto até a alguém que já passou por alguns tutoriais e está pronto a entrar no mundo das webapps!

HTML e CSS em acção no Sublime Text

Nível #1: Começa por HTML e CSS

O HTML é o elemento responsável pelo conteúdo de cada página. É ele que diz ao browser que isto é um título, aquilo é um parágrafo, aquela palavra está a negrito e que ali fica uma imagem.

Sem saberes HTML não conseguirás produzir uma página Web, portanto eu diria que é essencial começar por aqui. Mas não te dediques só ao HTML – abraça de imediato o CSS, também.

O CSS é responsável pelo layout da página. Sem este elemento, não saberás como colocar aquele título a laranja ou adicionar aquela margem à imagem.

O CSS é, também, o elemento responsável por tornar um site responsive, graças às media queries, que são essencialmente regras de apresentação que se adaptam face à resolução do dispositivo do utilizador.

Apesar destas 2 linguagens serem absolutamente indispensáveis no mundo web, ainda assim não é por esse motivo que recomendo que comeces por aqui.

A verdade é que são as linguagens mais visuais que vais encontrar. Se procuras mudar a cor de um parágrafo e reparas que ainda está tudo na mesma, facilmente percebes a cada refresh do browser o que aconteceu. Com JavaScript, Ruby ou qualquer outra linguagem, entender o que está (ou não) a funcionar correctamente dará muito mais trabalho.

E a verdade é que para praticares um pouco de CSS nem precisas de sair do browser; podes sempre abrir o Inspector do teu browser (por exemplo as DevTools do Google Chrome) e ver o que faz cada linha de CSS – se ajudar, tens aqui um pequeno guia escrito por mim para uma aplicação parecida, o Firebug para Firefox.

Nesse mesmo artigo tens alguns sites que recomendo, que repito aqui e acrescento outros tantos:

Mozilla Developer Network

Este é “o” manual – sempre que precisares de conhecer mais a fundo algum elemento HTML ou algum selector CSS, este é o site a visitar.

O Mozilla Developer Network surge nos primeiros lugares sempre que pesquisas por qualquer palavra-chave relacionada com HTML ou CSS, mas é geralmente ultrapassado pelo W3Schools, que considero bastante inferior.

Bootstrap - site

Bootstrap

O Bootstrap é a framework mais popular de HTML/CSS/JavaScript e é a base de milhões de sites que andam por aí.

A ideia é descomplicar a introdução de componentes que quase qualquer site utiliza, como grelhas, botões ou até sliders. O Bootstrap já traz de origem esses componentes e muitos outros.

A adopção desta framework é tal, que consultar a documentação do Bootstrap é absolutamente essencial – e quando começares a entender como a podes utilizar, desenvolverás sites com muito maior facilidade.

Codecademy

Provavelmente o site mais popular de tutoriais de programação. O Codecademy é gratuito e tem bons tutoriais de iniciação a HTML e CSS, bem como alguns projectos que podes tentar fazer depois de concluíres os cursos.

Para além de poderes ficar com as bases destas 2 linguagens, ainda poderás fazer tutoriais utilizando a já referida framework Bootstrap.

FreeCodeCamp - site

freeCodeCamp

Menos amigável ao início, mas definitivamente mais completo que o Codecademy, o freeCodeCamp ambiciona transformar pessoas em programadores em pouco tempo, com dezenas de horas de tutoriais gratuitos sobre os principais tópicos.

Aqui podes dedicar muitas horas a aprender HTML, CSS e até fazer um site responsive com a ajuda do Bootstrap.

CodePen

Se queres saber como se faz “aquele botão” ou “aquela animação”, vais gostar deste site. O CodePen tem sempre as últimas tendências de web design, sendo diariamente alimentado pela sua comunidade, que lá partilha as suas últimas criações em código.

Não só podes alterar o código e ver em tempo real o que acontece, como é um site que podes usar para portefólio dos teus próprios trabalhos.

Treehouse

De início, não vejo qualquer razão para pagares para aprenderes HTML e CSS, porque qualquer um dos sites que mencionei acima te podem dar uma grande ajuda.

Ainda assim, se estiveres disposto a pagar 25 dólares por mês, a Treehouse é, na minha opinião, a melhor escola online que existe. Lá poderás encontrar imensos cursos de HTML e CSS, com vídeos e exercícios a acompanhar.

A Treehouse já foi mencionada neste blog mais que uma vez (aqui e aqui) e será um ponto de paragem praticamente obrigatório quando estiveres mais confiante nas tuas capacidades.

Nível #2: Aprende as bases de Ruby

Esta é a parte mais polémica do artigo, porque outras pessoas te aconselhariam a aprender JavaScript (e algumas das suas variantes mais atraentes, como jQuery, Angular ou React) ou PHP (o coração do WordPress, que representa 25% de toda a Internet).

Ainda assim, o meu conselho vai para Ruby. A razão? Simples.

Ao início, vais aprender o que é uma variável, o que é um if statement e o que é um método. E, por muito bom que o tutorial seja, o mais provável é que precises de algum tempo até que consigas encaixar verdadeiramente o que significa cada um destes termos.

Outro “pequeno” problema desta fase é que retirarás pouca gratificação destes primeiros tutoriais, por te ensinarem a fazer coisas que raramente te impressionarão ou por não compreenderes a utilidade para a construção de uma webapp, por exemplo. Este é um nível crítico, onde a taxa de desistência é bem superior ao nível anterior.

Tudo isto já será frustrante q.b., mas ao menos terás uma linguagem muito agradável de se ler para começar. Não vais ter de estar preocupado em fechar parêntesis a torto e a direito, como acontece por exemplo com JavaScript e, a esta altura do campeonato, é pouco relevante estares a aprender a linguagem #1 do Github ou não.

Praticamente tudo o que aprenderes em Ruby vais poder reutilizar mais tarde, noutra linguagem. Muda a sintaxe e pouco mais.

Em suma, não tornes a tua aprendizagem mais “dolorosa” sem qualquer necessidade!

Esta é uma linguagem que o mundo das start-ups adora, portanto encontrarás sempre muita informação online. Para Ruby, podes começar por estes sites:

Codecademy

Codecademy

O curso gratuito de Ruby do Codecademy é muito completo. Aqui poderás descobrir o que são iteradores, hashes ou lambdas. Este é um excelente ponto de partida para o universo Ruby.

Try Ruby (CodeSchool)

Este pequeno curso é feito pela CodeSchool, um grande concorrente da Treehouse.

A CodeSchool também é paga, mas neste curso podes ter um cheirinho de Ruby e da qualidade dos cursos deste site, que tem muitos outros tutoriais de Ruby.

Learn to Program (Chris Pine)

Learn to Program

Este pequeno livro (que podes ler na íntegra no site gratuitamente) foi-me recomendado como leitura de preparação para o bootcamp da Creators School e é um excelente manual para aprender as bases da programação, utilizando a linguagem Ruby sempre como exemplo.

Learn Ruby The Hard Way

Este é um recurso similar ao anterior – se não estiveres a gostar do livro do Chris Pine, podes dar uma chance a este.

Nível #3: Explora uma framework com o conceito de MVC, como Ruby on Rails

O conceito de MVC (Model, View, Controller) é importantíssimo para a criação de webapps modernas e se seguiste o meu conselho e optaste por Ruby no nível #2, então o passo seguinte mais lógico será mergulhares no mundo de Ruby on Rails. Aqui terás, finalmente, também contacto com bases de dados.

Rails começou por ser desenvolvido para servir o project manager Basecamp, mas acabou por se tornar um projecto open-source que serviu/serve de coração a algumas das marcas digitais mais populares da actualidade, como o Airbnb, Hulu e Github.

Neste nível já conseguirás criar projectos de alguma complexidade, onde poderás colocar os teus conhecimentos de HTML, CSS e Ruby em prática. Poderás começar por criar blogs e task managers e gradualmente evoluir para ideias mais ambiciosas. Mais à frente, poderás pensar em desenvolver algumas competências no mundo da JavaScript, que será um óptimo complemento.

As convenções do universo Rails tornam tudo mais simples, mas ainda assim prepara-te para perder muitas horas a ler mensagens de erros e a tentar perceber porque é que algo não está a funcionar – mas isso faz parte de ser programador, como refiro aqui!

Aqui ficam os sites que recomendo para esta fase:

Ruby on Rails Tutorial (Michael Hartl)

Rails Tutorial

Este tutorial, criado por Michael Hartl, é um ponto de paragem obrigatório para a comunidade de Ruby on Rails.

Ao longo deste extenso tutorial criarás uma aplicação similar ao Twitter e pelo caminho serás apresentado ao conceito de MVC, utilizarás o Cloud9 como ambiente de desenvolvimento e o famoso Git para controlo de versões do teu código.

Este é um tutorial longo e relativamente complexo, mas é sem dúvida uma excelente introdução ao que Ruby on Rails permite.

Rails Guides

O site da documentação oficial de Ruby on Rails. Sempre que tiveres dúvidas e fizeres uma pesquisa, provavelmente acabarás aqui.

RailsCasts - site

RailsCasts

RailsCasts é um projecto de Ryan Bates que consiste em screencasts sobre tudo o que está relacionado com o universo Rails – desde gems (que são “plugins”) à utilização de frameworks como Angular ou Ember, encontrarás um pouco de tudo neste site.

Apesar do site estar parado desde 2013, este continua a ser um site de referência para a comunidade Rails, pela qualidade dos screencasts: sucintos, mas ao mesmo tempo ricos em informação.

Conclusão

Como vês, programar pode ser intimidante, mas não tens que ter medo de experimentar. Começa por molhar os pés com HTML e CSS e vai subindo gradualmente a dificuldade (e o teu envolvimento) com o tema.

No que toca a aprender a programar, a web está cheia de sites de qualidade e certamente encontrarás uma resposta para praticamente qualquer problema que tenhas.

Nunca te esqueças de procurar sempre uma aplicação prática para o que estás a aprender – faz uma app dedicada a outro tema que gostes, ou um site relacionado com um hobby teu. Tenta tornar a aprendizagem o mais divertida possível.

E, acima de tudo, não desanimes se as coisas demorarem a entrar. É perfeitamente normal e faz parte da viagem. Força!

Se quiser entrar em contacto comigo, pode enviar-me um e-mail para [email protected] ou preencher o formulário abaixo.

NOTA: Todos os campos são de preenchimento obrigatório.

Os Primeiros Passos para Aprenderes a Programar

Tempo de Leitura: 10 min
0