Iniciando no mundo da programação

Todas as pessoas que estão dando os primeiros passos no mundo da programação se deparam com uma questão fundamental: Qual linguagem de programação aprender primeiro ? Este pequeno texto tenta de alguma forma dar uma resposta para esta pergunta.
Antes de mais nada, lembre que esta é apenas a minha opinião e muitos provavelmente não concordam com meu ponto de vista, mas pelo menos acredito que possa servir como um ponto de partida.

Mesmo que você já saiba programar, este texto pode esclarecer alguns conceitos muito importantes, mas lembre-se que ele foi criado para pessoas que estão começando a escrever suas primeiras linhas de código. Eu não vou ensinar a programar nada aqui, apenas tentarei traçar alguns caminhos para que você possa iniciar sua jornada da forma mais tranqüila e produtiva possível.

Antes de mais nada, vamos ao básico:

Para se criar um programa para computador, você precisa de uma linguagem de programação e um compilador ou interpretador ou máquina virtual.

Definições e diferenças entre Compilador, Interpretador e Máquina Virtual:
Um compilador é um tradutor capaz de traduzir um texto escrito por um programador (código fonte) em um código binário de uma determinada arquitetura de processadores. Este código gerado é incompreensível para o ser humano, mas pode ser lido e executado pelos computadores.
O ciclo de desenvolvimento então se estabelece da seguinte forma: o programador escreve um texto seguindo as normas e regras estabelecidas pela linguagem de programação. Em seguida, o programador executa o compilador, que verifica se este texto escrito pelo programador não contem nenhum erro e o traduz para uma seqüência de zeros e uns (código binário), que o computador (Sistema Operacional) é capaz de entender. Depois disso, basta que o usuário execute o programa final gerado para ver o resultado. Resumindo, o processo seria:
1- Programador escreve o código fonte e executa o compilador
2- Compilador procura por erros de gramática e de semântica e gera um arquivo executável (binário).
3- Programador executa o código binário e o testa.
4- Os 3 passos anteriores são refeitos até que o programa esteja completo.
5- Usuário final executa o código binário gerado pelo compilador (no Windows, os conhecidos arquivos com a extensão EXE).

Um interpretador difere dos compiladores pelo fato de nenhum código binário ser criado. O programador escreve o código fonte e este pode ser executado diretamente através de um interpretador. O interpretador irá ler o código fonte procurando por eventuais erros, e ao mesmo tempo, já o executa e mostra para o usuário o resultado. Desta forma, com a utilização de interpretadores ao invés de compiladores, o ciclo de desenvolvimento se torna mais simples:
1- Programador escreve o código fonte e executa o interpretador.
2- O interpretador lê o código fonte a procura de erros, e conforme vai lendo as instruções, vai executando-as.
3- Os 2 passos anteriores se repetem até que o programador alcance sua meta.
4- Usuário final executa o interpretador, que por sua vez lê o código e executa todas as operações lá descritas.

Por sua vez, uma máquina virtual é algo que fica entre os 2 casos anteriores. No caso das máquinas virtuais, o programador escreve um código fonte e executa um programa (compilador) que irá traduzir o texto redigido pelo programador (código fonte) em um código binário, assim como acontece com os compiladores tradicionais. Mas a grande diferença neste caso, é que o código binário gerado não pode ser executado diretamente pelo computador. Embora ele seja binário, ele ainda é incompreensível para o computador. Para que o computador possa executar este código, é necessário uma máquina virtual. A máquina virtual traduz o código binário gerado pelo compilador em um código binário que o computador (Sistema Operacional) consegue entender.

Comparação:
A utilização de máquinas virtuais pode parecer meio estranho para alguém novo na área da programação, mas esta técnica trouxe grandes avanços, e está sendo cada vez mais usada. A principal vantagem, é o fato de ser muito fácil executar um mesmo aplicativo em sistemas distintos. Um código binário criado a partir do método tradicional dos compiladores só pode ser executado no Sistema Operacional onde foi criado, já um código gerado por uma máquina virtual pode ser executado em diversos Sistemas Operacionais diferentes (desde que exista uma máquina virtual existente para aquele determinado Sistema Operacional). Ficou confuso ? Pense no Java. Você pode criar um programa no Windows, e eu poderei roda-lo no Linux, FreeBSD, MacOSX, Solaris e muitos outros Sistemas Operacionais sem fazer nenhuma alteração no seu programa.
Por outro lado, esta camada de tradução a mais criada pela máquina virtual torna a execução do programa mais lenta quando comparada ao método tradicional de compilação.
Já as linguagens interpretadas são ótimas pois simplificam o processo de desenvolvimento.

Tipos de linguagens de programação:
As principais linguagens de programação modernas podem ser dividas (de forma simplificada) em 2 grandes grupos: linguagens de programação procedural (Basic, C, Pascal, ..) e linguagem de programação Orientadas à Objetos (Java, C#, Smalltalk, ..).
As linguagens procedurais são, na minha opinião, mais simples de se entender por isso recomendo que inicialmente você comece a estudar essas linguagens e deixe um pouco de lado as linguagens orientadas à objetos.
No desenvolvimento de um sistema procedurais, você deve descrever diversas instruções dizendo passo-a-passo o que exatamente o computador deve fazer. Já as linguagens de programação Orientada a Objetos tentam simular o mundo real no computador, através da criação de classes, métodos, atributos, etc. Desta forma, o programador descreve o programa de uma forma mais abstrata, o que pode tornar a programação um pouco mais complicada para os usuários iniciantes.

Bom, chega de conversa! Vamos voltar para pergunta inicial: Qual linguagem de programação utilizar para iniciar no mundo da programação ? A resposta é………… DEPENDE ! Vou tentar dividir em tipos de personalidade. Ai você pode analisar a que melhor se encaixa, e assim poderá escolher a linguagem que provavelmente será mais produtiva para você:

Caso você queira algo mais fácil de aprender, eu recomendo iniciar com Pascal. Ela é uma linguagem que não é muito mais utilizada hoje em dia, mas é ótima para aprender, pois é uma linguagem que possui uma estrutura muito bem feita. Mas não tente ir logo de cara para o Object Pascal, pegue um compilador de Pascal puro. Você encontra mais informações sobre esta linguagem no Wikipedia.

Caso você seja mais “nerd” e tenha paciência e vontade de aprender, você pode tentar começar programando em C (mas fique longe do C++, aprenda C puro primeiro). É uma linguagem bastante difícil de se aprender, mas depois que você sabe ela, qualquer outra vai parecer muito fácil! É uma linguagem muito utilizada ainda nos dias de hoje e todo bom programador tem que saber.

Caso você goste de jogos de computador e queira aprender a programar para desenvolver jogos, recomendo a linguagem Blitz Basic (ou suas variantes, Blitz3D, BlitzPlus ou BlitzMAX). Ela é muito, muito fácil de usar e é totalmente voltada para o desenvolvimento de jogos para computador. Você encontra mais informações sobre ela em: www.blitzbasic.com

Caso você esteja pensando em aprender Java como sua primeira linguagem de programação, eu te digo: não faça isso! Eu programo com Java faz mais ou menos 6 anos e não a recomendo como linguagem para se iniciar no mundo da programação. Caso você não tenha uma ótima base de Orientação a Objetos previamente estabelecida, Java será uma linguagem bastante complicada e muito confusa. Por essas razões, não acho que vale a pena começar com ela.

Mas o mais importante: independente da linguagem que você queira aprender, existem outras coisas muito mais importantes para se estudar: Desenvolvimento de Algoritmos e Estruturas de Dados.
Para fazer um programa de computador, você precisa ter uma sólida base destes 2 temas. Sem saber isto, você nunca será um bom programador em linguagem alguma! Saber quais os comandos da linguagem não é nada, você tem que saber o que fazer estes comando, e é aí que o estudo de Desenvolvimento de Algoritmos e também de Estrutura de Dados é que vai te ajudar.
Para estudar estes temas, recomendo fortemente o livro Algoritmos: Teoria e Prática (Charles E. Leiserson, Clifford Stein, Ronald L. Rivest e Thomas H. Cormen). Este livro, embora tenha um preço um pouco elevado, contem simplesmente tudo sobre o tema. Vale muito a pena estuda-lo caso você realmente queira se tornar um programador um dia.

Marcio Frayze David é formado em Ciência da Computação pela PUC-SP e trabalha com desenvolvimento de softwares utilizando Java (J2SE, J2ME e J2EE) e Smalltalk. Ele também é membro do grupo de programadores Insaners (http://www.insaners.org), que desenvolve jogos open-source para Windows, Linux e celulares. Nas horas vagas gosta de estudar sobre Software Livre, Compiladores e Linguagens de Programação. Pode ser contactado através do email “mfdavid em gmail.com” ou em seu blog: http://www.insaners.org/marcio

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X