Começar a programar é com JavaScript
JavaScript pode ser a linguagem ideal para quem quer aprender a programar. Na minha opinião e na de muitos outros professores e desenvolvedores. Mas por quê?
Programar é difícil. Começar a programar, mais ainda. Pode ser algo desmotivador e cheio de problemas. Compiladores, editores, erros, IDEs e a instalação de SDKs podem se tornar grandes barreiras para você, pequeno aprendiz. No JavaScript, tudo isso é minimizado. Suas VMs são onipresentes nos browsers, o editor pode ser o Notepad e a primeira execução é permitida até mesmo no Internet Explorer 6 do Windows XP do laboratório da escola pública. E o que é necessário instalar? Nada.
Você que nunca programou uma linha de código poderá, em poucos minutos, escrever seu OlaMundo
e entendê-lo. Isso não parece grande vantagem, mas você pode repetir o feito em casa, em um computador diferente, com outro browser e sistema operacional, para mostrar o resultado aos seus pais e amigos. Se já conhece um pouco de tecnologia, poderá rodar sua primeira aplicação até mesmo no seu celular Android, transferindo o html para lá.
Existem outras alternativas? Certamente! É fácil falar: "mas eu comecei a programar em ASM/C/C++/Java/PHP/C#/Python/Logo e me dei muito bem"! Não duvido. Eu mesmo comecei com Logo e Basic. Talvez algumas linguagens atraiam determinados aprendizes mais que outras. Mas o JavaScript diminui a barreira de aprendizado de uma forma que considero inigualável.
Não somos os únicos, nem os primeiros. Quando John Resig foi trabalhar na Khan Academy, optaram pelo JavaScript como primeira linguagem. John escreveu um post detalhando sua escolha, além de levantar algumas questões que o iniciante pode ter dificuldade com o JavaScript.
Foquei nas vantagens do ambiente de programação que o JavaScript traz. Ainda há outros: o aprendiz terá contato com uma linguagem importante para seu currículo, poderá encarar a programação funcional com mais naturalidade e também será facilmente motivado ao ser apresentado a APIs visuais, usando canvas, process.js e webgl.
E você, qual é a sua experiência ao ensinar? E ao aprender? Em particular, a primeira linguagem de programação.