segunda-feira, 9 de fevereiro de 2015

Onde aprender a programar online?

Trabalho final para a disciplina de algoritmos, escrito em C. (Mr_Do)
Já pensou em aprender a programar ou tem curiosidade de saber como é?
Cada programa ou site que você visita é programado através de milhares de linhas de código, escritas em uma certa linguagem de programação. Você pode estudar essas linguagens e desenvolver suas próprias ideias!
Se você está começando na área de TI, seja entrando na faculdade ou pensando em fazer, aprender a programar será algo muito benéfico e facilitará o aprendizado mais formal que você verá nas aulas.
E mesmo que você não seja da área, pode aprender a  programar para desenvolver algum sistema, montar um site ou blog pessoal ou só pelo desafio. Programar é como aprender outro idioma!
No entanto, aprender corretamente, atento desde o início aos exemplos de boas práticas, é fundamental. Há várias formas de escrever um programa, mas há boas práticas e convenções que devem ser seguidas. Por isso é muito importante consultar e usar as fontes certas.

Linguagens de programação

Uma dúvida muito recorrente é sobre qual linguagem aprender. Atualmente existem muitas linguagens, dezenas delas muito utilizadas e reconhecidas. Você pode experimentar algumas delas e ver qual mais gosta. Com a experiência e o pensamento lógico mais desenvolvido, você acabará aprendendo várias linguagens, e conseguirá aprender uma nova com muita facilidade.
Vale salientar a diferença entre linguagens de programação e de marcação. As de programação, como Java, C, Ruby, Javascript etc, são usadas para escrever os mais diversos tipos de programas. Java, por exemplo, é a linguagem utilizada para escrever aplicativos para a plataforma Android.
Já as linguagens de marcação, como HTML, servem para formatar um conteúdo. O layout deste site, o posicionamento do texto, o tamanho e a cor das fontes, tudo feito através de HTML e CSS (o CSS é utilizado para aplicar estilos aos elementos do HTML, como a cor de um texto ou o tamanho de uma fonte).

Trecho de HTML. uma linguagem de marcação.

Onde aprender

Existem diversos lugares nos quais você pode ao menos começar a ter contato com a programação. A maior parte do material está em inglês, mas alguns sites oferecem opções em português.  Não desanime se achar muito difícil, o começo é assim mesmo. Com o tempo tudo começará a fazer sentido e parecerá mais fácil.

  • Codecademy
    • Com versão em português, a Codecademy possui aulas interativas bem interessantes. Com lições passo-a-passo, você vai tendo contato com os conceitos da programação, além de aprender algumas coisa básica de uma linguagem. Há aulas de HTML e CSS (para construir páginas da web), bem como de Javascript, jQuery, Python, Ruby e PHP.
    • Recomendo fazer os exercícios de HTML e CSS para ter uma ideia de como se estrutura uma página da internet. Depois, recomendo as aulas de Python ou Ruby. Mas todas valem a pena.
  • Apostilas da Caelum
    • A Caelum ministra cursos de programação no Rio de Janeiro, São Paulo e Brasília. Eles disponibilizam gratuitamente, uma série de apostilas sobre Java, desenvolvimento web, C#, Ruby e Algoritmos e Estrutura de Dados.
    • As apostilas são muito bem completas e explicadas, seguindo boas práticas de programação. Eu recomendo a Java e Orientação a Objetos para começar. Depois você pode seguir com as outras de Java, se gostar.
  • Coursera 
    • Um grande repositório de cursos de universidades do mundo inteiro. Não só de TI, mas de assuntos como biologia, artes e economia. Muitas cadeiras são bastante avançadas, mas algumas são focadas ao público iniciante. Vale a pena ver todos os cursos oferecidos.
    • Normalmente os materiais são todos em inglês. Você espera uma nova turma começar e se inscreve. As aulas são formadas por vídeos semanais, com atividades para fazer em casa e materiais para ler. Como uma disciplina da faculdade.
    • Recomendo para iniciantes o curso An Introduction to Interactive Programming in Python. Para quem está interessado em Android e já sabe um pouco mais, recomendo Programming Mobile Applications for Android Handheld Systems.
  • Apostilas da K19
    • A K19 ministra cursos e consultoria na área de TI em São Paulo. No seu site, eles disponibilizam diversas apostilas gratuitas sobre Lógica de programação, desenvolvimento Web, Java e .Net. É preciso se cadastrar ou logar com Facebook ou Google.
    • Recomendo a apostila de Lógica de Programação e de Orientação a Objetos em Java. Depois você pode seguir estudando conforme a necessidade. Para aplicações com banco de dados, por exemplo, a apostila SQL e Modelo Relacional explica sobre o assunto.
Outros lugares que também possuem muito conteúdo: OpenStax CollegeedX e a famosa Khan Academy
Você também pode se interessar pela Hora do Código, uma introdução de uma hora a ciência da computação.