Comece a programar!

YagoEu sou o Yago e hoje conversaremos sobre programação:

Aprendendo a programar

Quando vemos um programa que realiza operações fantásticas, que nos é útil no trabalho ou nos diverte, sempre surge a pergunta: será difícil fazer algo assim?

A resposta varia conforme a complexidade do programa, mas todos se baseiam em princípios básicos e fundamentais que estão presentes em todas as linguagens de programação: Programming Concepts, ou Conceitos de Programação.

Linguagens de programação? O que são?

Linguagem de computador é um meio de passar instruções para serem interpretadas por um computador. Toda linguagem possui uma sintaxe (forma de escrita) própria, regras de utilização de suas rotinas, e um conjunto de funções que facilitam operações corriqueiras.

Podemos passar instruções para o computador na forma como ele entende, ou seja, através de uma seqüência de bits (“0”s ou “1”s). Mas isto é difícil para seres humanos compreenderem! Mesmo assim, durante muito tempo esta foi a única forma, e ainda hoje se faz de forma semelhante, em algumas situações.

Quando usamos uma linguagem muito próxima à do computador, dizemos que é uma linguagem de baixo nível. Quando a linguagem se parece mais com nossa linguagem natural, executando funções através do uso de palavras (normalmente verbos) em uma língua que compreendemos, dizemos que a linguagem é de alto nível.

E qual linguagem é a melhor?

Programadores experientes respondem esta pergunta da seguinte forma: a melhor linguagem é a que você melhor domina e resolve seus problemas. Não existe linguagem melhor ou pior, existe linguagem mais apropriada para determinada aplicação. E muitas vezes mais de uma é eficiente para o mesmo fim, então a escolha passa por outros critérios: ambiente, desempenho, facilidade de aprendizado e até mesmo gosto pessoal.

Portanto, não vale a pena entrar em “flamewars” e discutir qual a melhor linguagem de programação, pois certamente o gosto pessoal vai falar mais alto e ninguém vai convencer o outro de sua escolha!

Tantas linguagens, qual eu escolho?

Para escolher a linguagem é preciso definir antes no que você pretende trabalhar. Se vai trabalhar produzindo para internet, possivelmente vai optar entre PHP, Ruby, Perl, Python ou Java. Se a necessidade é escrever um driver para conectar um dispositivo, como uma impressora, possivelmente a escolha é C ou C++. Para produzir um aplicativo gráfico para rodar no Gnome ou KDE, pode escolher C, C++, Java – mas ainda pode usar Python, e até PHP! Se vai fazer scripts na linha de comando, Bash Script, ou Perl, ou Python, ou PHP...

Mas que salada! E agora? E olha que ainda nem comparamos as características de cada linguagem, foco, ambiente de desenvolvimento... Difícil? Deixe que as necessidades de seu trabalho indiquem o caminho, converse com colegas, acompanhe as tendências, veja em que linguagens são produzidos aplicativos semelhantes ao seu... e experimente!

Ok, mas por onde começo?

Todas as linguagens possuem princípios básicos em comum. Na hora de “resolver um problema” podemos criar a lógica de resolução (que chamamos de algoritmo), uma seqüência de passos que conduz à solução. Isto independe de linguagem, e uma vez que tenhamos esta lógica de resolução, podemos implementar em qualquer linguagem.

As linguagens modernas incorporam um conceito muito importante, que é a Programação Orientação a Objetos. Nesta visão, as “peças” do software são consideradas classes, que definem os objetos do mundo real com suas características (atributos) e ações (métodos).

Independente da linguagem a ser escolhida, compreender orientação a objetos e algoritmo é o começo.

E isso não é muito complicado?

Não precisa ser. Os métodos utilizados na maioria dos cursos e universidades para ensinar estes conceitos básicos envolve o aprendizado de uma linguagem de programação. O problema é que além ser preciso aprender a lógica e os conceitos, ainda é preciso estudar as regras da própria linguagem – e isto envolve a sintaxe, regras, abre/fecha colchetes, põe ponto e vírgula, parâmetros das funções, etc.

Deste modo realmente pode ser complicado. Mas o curso Programming Concepts utiliza uma ferramenta que permite criarmos “mundos virtuais”, o Alice (www.alice.org). Com o Alice não é preciso escrever código para programar, nem é preciso dominar uma linguagem específica. Um ambiente virtual em 3D para aprendizagem de conceitos de programação.

Alice? No país das maravilhas?

Apesar do nome do programa basear-se na personagem Alice da famosa história, é apenas uma referência ao conceito de criação de “mundos virtuais”. Há várias personagens, e no curso Programming Concepts vamos trabalhar com personagens medievais – construindo histórias que lembram jogos. E isto não é uma brincadeira, mas um jeito divertido e interessante de aprender conceitos imprescindíveis para a carreira de programador.

E como vou aprender utilizando um jogo?

A interface do Alice já começa com o conceito de orientação a objeto logo de cara: todas as personagens são classes, quando lhes damos um nome tornam-se objetos, suas características são atributos, suas partes são outras classes, suas ações são métodos.

Quando precisamos “contar uma história”, usamos os recursos de drag-and-drop (arrastar e soltar) e vamos compondo o “roteiro”, que nada mais são que rotinas baseadas nos métodos das classes.

É possível reagir a eventos, então podemos interagir com a ação das personagens, colocando inteligência de decisão através da programação.

Todos estes conceitos são absorvidos sem a necessidade de se escrever uma linha de código! E são base para qualquer linguagem de programação que o aluno escolher no futuro.

E o que eu vou produzir durante o curso?

Além de toda bagagem teórica que o aluno vai adquirir de forma visual, o limite da criação está na imaginação e esforço de cada um. É possível tanto criar facilmente pequenas histórias como esta:

http://www.youtube.com/watch?v=QEU3t2YPJUo

quanto jogos em primeira pessoa como este:

http://www.youtube.com/watch?v=8Ue4hU0KMXA

Conclusão

O curso Programming Concepts é uma forma nova e agradável de entrar no mundo da programação. Com o auxílio do Alice, as barreiras comuns no ensino básico de programação tornam-se desafios instigantes. Não mais desenhos de fluxogramas, não mais diretamente o código, mas o conceito, o fundamento.

Tudo isso de forma abrangente dando liberdade para o aluno escolher qual a linguagem de programação será interessante para suas atividades no futuro.

Isto, claro, sendo software livre!

Próximos assuntos

Não perca, durante as próximas semanas:

  • Programas que fazem ví­rus;
  • Como os crackers tornam o vírus invisí­vel;
  • Exploração de dispositivos móveis;
  • Criptografia.

Veja a lista completa com os próximos assuntos.

Conte comigo, sua fonte completa e confiável de informações!

Tem alguma idéia? Quer sugerir um assunto?

Até a próxima!