fonte e executa o interpretador.2- O interpretador le o codigo fonte a procura de erros, e conforme vai lendo as instrucoes, vai executando-as.3- Os 2 passos anteriores se repetem ate que o programador alcance sua meta.4- Usuario final executa o interpretador, que por sua vez le o codigo e executa todas as operacoes la descritas.Por sua vez, uma maquina virtual e algo que fica entre os 2 casos anteriores. No caso das maquinas virtuais, o programador escreve um codigo fonte e executa um programa (compilador) que ira traduzir o texto redigido pelo programador (codigo fonte) em um codigo binario, assim como acontece com os compiladores tradicionais. Mas a grande diferenca neste caso, e que o codigo binario gerado nao pode ser executado diretamente pelo computador. Embora ele seja binario, ele ainda e incompreensivel para o computador. Para que o computador possa executar este codigo, e necessario uma maquina virtual. A maquina virtual traduz o codigo binario gerado pelo compilador em um codigo binario que o computador (Sistema Operacional) consegue entender.Comparacao:A utilizacao de maquinas virtuais pode parecer meio estranho para alguem novo na area da programacao, mas esta tecnica trouxe grandes avancos, e esta sendo cada vez mais usada. A principal vantagem, e o fato de ser muito facil executar um mesmo aplicativo em sistemas distintos. Um codigo binario criado a partir do metodo tradicional dos compiladores so pode ser executado no Sistema Operacional onde foi criado, ja um codigo gerado por uma maquina virtual pode ser executado em diversos Sistemas Operacionais diferentes (desde que exista uma maquina virtual existente para aquele determinado Sistema Operacional). Ficou confuso ? Pense no Java. Voce pode criar um programa no Windows, e eu poderei roda-lo no Linux, FreeBSD, MacOSX, Solaris e muitos outros Sistemas Operacionais sem fazer nenhuma alteracao no seu programa.Por outro lado, esta camada de traducao a mais criada pela maquina virtual torna a execucao do programa mais lenta quando comparada ao metodo tradicional de compilacao.Ja as linguagens interpretadas sao otimas pois simplificam o processo de desenvolvimento.Tipos de linguagens de programacao:As principais linguagens de programacao modernas podem ser dividas (de forma simplificada) em 2 grandes grupos: linguagens de programacao procedural (Basic, C, Pascal, ..) e linguagem de programacao Orientadas a Objetos (Java, C#, Smalltalk, ..).As linguagens procedurais sao, na minha opiniao, mais simples de se entender por isso recomendo que inicialmente voce comece a estudar essas linguagens e deixe um pouco de lado as linguagens orientadas a objetos.No desenvolvimento de um sistema procedurais, voce deve descrever diversas instrucoes dizendo passo-a-passo o que exatamente o computador deve fazer. Ja as linguagens de programacao Orientada a Objetos tentam simular o mundo real no computador, atraves da criacao de classes, metodos, atributos, etc. Desta forma, o programador descreve o programa de uma forma mais abstrata, o que pode tornar a programacao um pouco mais complicada para os usuarios iniciantes.Bom, chega de conversa! Vamos voltar para pergunta inicial: Qual linguagem de programacao utilizar para iniciar no mundo da programacao ? A resposta e............ DEPENDE ! Vou tentar dividir em tipos de personalidade. Ai voce pode analisar a que