Estão a esquecer-se de uma coisa muito importanto.
Quando alguém quer aprender a programar apenas por querer aprender é necessário que seja fácil e simples obter rapidamente resultados encorajadores.
Ainda por cima não sabemos qual é o ambiente, mas mt. provavelmente é Windows.
Como tal, isso poe logo de fora as linguagens decentes como o Perl (a minha escolha pessoal).
Ninguém falou até agora nos BASICs que há para Windows, como o Blitz Basic ou o Dark Basic, é certo que são orientados para o desenvolvimento de jogos e não têm um IDE decente apropriado para RAD como o Delphi e o VB, mas é facil obter resultados, muito mais facil que escrever um Hello World em C que crie uma janela no windows e escreva para lá esse texto...
Passou-me pelas mãos no outro dia uma linguagenzita chamada KPL (kid's programming language -
http://www.kidsprogramminglanguage.com/ ), tem um IDE text based decente com um monte de exemplos. É uma especie de basic OO e mais simples que o Blitz ou o Dark Basic. Instalei só por piada e é realmente facil por umas imagens no ecran, rodar uns sprites, fazer colisões, etc. Não posso dizer que gostei da linguagem em si, mas parece-me que tem a simplicidade necessária para se aprender com facilidade sem assustar um principiante.
Se o interesse de uma pessoa está na Web e não no PC então a única escolha possivel é o PHP, mas como para fazer coisas realmente interactivas é necessário aprender também HTML, Javascript e CSS isso já não é tão facil.
Pessoalmente não gosto de Java e nunca o recomendaria a ninguém, mas tenho razões pessoais para isso que não se prendem exactamente com o desenvolvimento mas sim com o impacto deste na qualidade dos programas.
Não sei se existe um LOGO para windows, mas a ideia de
como aprender a programar mantem-se... Se não se está a ser ensinado a programar (na escola, univ, ou o que seja) tem que se começar de uma base em que uma pessoa com um minimo de vontade e inteligência lógica seja capaz de compreender realmente a ideia que está subjacente a um programa.
DEPOIS de aprender o que implica fazer um programa, depois de saber para que serve um IF, os varios tipos de ciclos, as funções, etc, então a pessoa pode fazer uma escolha informada se vai aprender esta ou aquela linguagem.
Dependendo do que quer fazer pode ir para Assembly ou pode ir para COBOL, ADA, RPG-2, FORTRAN, o que quer que seja, mas antes de aprender a programar numa linguagem tem que se apanhar o paradigma da programação. Seja este sequencial à moda antiga num loop fechado, seja este event driven como é normal hoje em dia. Para chegar a esse ponto não se pode escolher ferramentas que em si têm uma dificuldade acrescentada.
Em conclusão.
Primeiro um BASIC como o KPL, Dark ou Blitz basic.
Depois um que tenha um IDE apropriado para fazer appls "normais" de windows, VB ou Delphi, provavelmente o C# também. Java não mas isso é gosto pessoal.
Depois... depende... :-)
Um programador não é aquele que sabe C ou Java, um programador é alguém que sabe
programar, a linguagem é apenas a ferramenta que é usada para implementar um dado algoritmo, e, mesmo sendo verdade que existem linguagens mais apropriadas para determinadas tarefas, o facto é que, na maior parte dos casos é como a marca da Cerveja... uma questão de gosto.