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.

JavaScript-logo

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.

Quando ministrávamos nosso curso de lógica de programação em Groovy, tínhamos todos esses problemas. Não é a toa que migramos para JavaScript na Caelum, e também a versão online de cursos na Alura. Os resultados não poderiam ter sido melhores.

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.

Esse post foi atualiza em 2017 e continuamos com a mesma opinião: comece com o JavaScript!

58 Comentários

  1. Caio Ribeiro Pereira 12/11/2013 at 08:05 #

    Os anos passam e o Javascript continua cada vez mais vivo, visto que desenvolver pra web é essencial pelo menos dominar o básico dessa linguagem. E graças as tecnologias de hoje, já é possível criar uma aplicação 100% Javascript utilizando (Node.js no backend e MongoDB como database).

  2. Denis Toledo 12/11/2013 at 08:38 #

    Troquei o design gráfico por web a pouco tempo. A primeira linguagem de programação que aprendi foi actionscript3, porém, não entendi nada e logo abandonei e nem tentei praticar.
    Hoje estou aprendendo javascript por conta e vou fazer um curso depois de pelo menos entender bem o básico, para poder fazer um curso e tirar mais proveito.
    Por enquanto me viro com jQuery.
    Obrigado pelo post.
    Abs

  3. José V. Dal Prá Junior 12/11/2013 at 10:24 #

    Realmente, JS é muito menos burocrático que demais LPs. Bom para quem está aprendendo, ruim para um sistema de grandes proporções.

    Ótimo artigo.

  4. Rafael Gontijo 12/11/2013 at 12:31 #

    Concordo que para a primeira linguagem de programação, quanto menos burocrática melhor, más em um curso mais aprofundado, de faculdade por exemplo, eles não podem e provavelmente não conseguem passar todos os conceitos somente com javascript, tendo de usar outras linguagens para faze-lo, mais como introdução a programação linguagens assim são, na minha opinião, as melhores.

  5. Alexandre Aquiles 12/11/2013 at 22:56 #

    A onipresença do JS realmente faz cair o primeiro obstáculo para se aprender a programar.

    O Dan Ingalls, que projetou e implementou os primeiros ambientes de Smalltalk, desenvolveu o Lively Kernel[1], uma IDE que roda toda no browser e facilita a criação de coisas gráficas. E é JS puro!

    Curto bastante o livro interativo “Eloquent Javascript”[2] (em inglês). Vai do básico a coisas mais complicadinhas, permitindo que você rode os códigos enquanto lê!

    E a naturalidade da programação funcional é um ponto muito positivo. Programadores iniciantes que usam JQuery, por exemplo, usam o tempo todo funções de primeira classe e closures (nos callbacks), mesmo sem saber.

    Já ouvi o CV (veterano do Guj) falar que “Javascript é um LISP de sintaxe feia”. 🙂

    O problema é o povo se assustar com as incoerências da linguagem [3].

    [1] http://lively-kernel.org/repository/webwerkstatt/gettingStarted.xhtml
    [2] http://eloquentjavascript.net/contents.html
    [3] http://wtfjs.com

  6. Moises Santana 13/11/2013 at 08:29 #

    Eu comecei a programar em VB6, depois em Java e Javascript paralelamente. Eu odiava Javascript por que não entendia, as coisas não funcionavam no lado do cliente, era um inferno. Tempos depois, alguns projetos me fizeram naturalmente abandonar o ódio que eu tinha do tal JS, quando menos percebi lá estava eu amando JS e escrevendo códigos fantásticos com a bichinha. Concordo contigo, eu mesmo tive o prazer de ensinar programação com JS e os resultados foram fantásticos ! Hoje é minha linguagem de programação favorita.

  7. Rafael Jesus 13/11/2013 at 08:49 #

    @CaioRibeiro exatamente, o LinkeIn quando migrou sua versão mobile em Rails 1.2 pra Node.js uma das vantagens citadas pelos Devs foi o aproveitamento do time de JS no server tbm, tornando 100% JS o desenvovimento, além de que os caras tinhas 30 servidores, e com o Node.js só 3.

    @PauloSilveira sabe que eu estava pensando nisso hoje pela manhã, se eu tivesse aprendido JS desde o início, teria feito muita coisa diferente…Além de ter uma visão totalmente diferente

  8. Marcelino Avelar 13/11/2013 at 10:22 #

    Rafael Gontijo, eu penso ao contrário tem é muita faculdades por ai que não sabem nem explorar os recursos que o JS tem como programação funcional e OO com protótipos, e se precisar de IO tem o Nodejs para isso, que é bem mais simples de instalar do que a JVM e CLR por exemplo.

  9. leandrw 13/11/2013 at 10:44 #

    Discordo. Creio que a falta de tipagem possa atrapalhar o conceito de programação por parte dos alunos. Linguagens como Pascal e C passam melhor o conceito de computação. De qualquer forma javascript é uma linguagem excelente, e atualmente essencial.

  10. Leonardo 13/11/2013 at 12:52 #

    Javascript não é a melhor das linguagens, mas é o temos para o momento.

  11. Beto 14/11/2013 at 10:50 #

    Javascript é a melhor linguagem que temos no momento!!!!

  12. Cornélio José Wiedemann 14/11/2013 at 11:07 #

    cara, excelente post .
    Vou encaminhar para meus colegas da facul, muitos tao querendo apreender tbn

    abraços

  13. Cinthia Faz 14/11/2013 at 14:48 #

    Na verdade pra mim nenhuma linguagem se constrói sozinha hoje em dia, uso sim muito javascript, mas sempre aliado ao PHP.

    Mas concordo que para começar a ter uma boa base JS é essencial!

  14. Rafael Jesus 15/11/2013 at 13:39 #

    Brian Leathem do Richfaces – Red Hat em seu twitter:

    “After a few days of working in a javascript environment, returning to a java one is like running into molasses. Everything takes longer”

  15. Michael Alves 15/11/2013 at 14:42 #

    JavaScript uma linguaguem, que ainda vai viver por muito tempo e isso eh excelente.

  16. Tiago Celestino 18/11/2013 at 21:02 #

    O problema de começar programar é não entender o que é “programação”. JS, Java etc..

  17. Robson 19/11/2013 at 00:55 #

    Eu comecei com Pascal \O/

  18. Michell 26/11/2013 at 17:06 #

    “Discordo. Creio que a falta de tipagem possa atrapalhar o conceito de programação por parte dos alunos. Linguagens como Pascal e C passam melhor o conceito de computação. ”

    Concordo com o que nosso amigo leandrw disse. Acredito que para aprender, é necessário uma linguagem fácil (como o Pascal), mas que não dê tanta liberdade ao usuário. Acho que quem está iniciando deve fazer as coisas “no braço”. Só depois disso ele vai conseguir perceber o poder que determinadas linguagens, que oferecem recursos prontos, possuem.

  19. Paulo Silveira 26/11/2013 at 17:23 #

    Entendo os outros posicionamentos, mas não estou discutindo aqui qual é a linguagem que passa melhor o conceito de computação. A decisão é escolher a linguagem que é mais fácil de ensinar, mais fácil de motivar, mais fácil de começar. C e Pascal são bem mais difíceis de aprender, quanto mais pra ensinar uma pessoa que está começando.

  20. Pedro Abs 26/11/2013 at 17:48 #

    Realmente javascript é uma linguagem encantadora. Muiti-paradigma, orientada a objetos e funcional, e, consequentemente, muito divertida. É uma linguagem fácil de se iniciar na programação mas muito difícil de se dominar profundamente.

    Houve uma época em que a estudei bastante, inclusive, padrões de projeto para esta linguagem.

    Deixo parte dos meus estudos aqui:

    http://pedroabs.wordpress.com/category/desenvolvimento/web/javascript-e-ajax/

  21. Guilherme 26/11/2013 at 22:05 #

    Concordo acho que no primeiro semestre alunos de programação deveriam ter linguagens como JS e Python que são muito mais simples e muito poderosas. Pois quando o cara entra no curso ele quer sair logo programando algo que seja palpável, e em outras linguagens isso é muito mais custoso. Quando você motiva o aluno com esse tipo de linguagem e mostra coisas que ele consegue fazer e entender com certeza isso o motiva e dá forças para ele continuar no caminho da longa estrada da programação. Só para deixar claro: SIM O ALUNO TEM QUE TER CONTATO COM LINGUAGEM C, FAZER COISAS NO BRAÇO … MAS DEIXA ISSO PARA QUANDO ELE ESTVER MAIS FAMILIARIZADO COM OS CONCEITOS DE INFORMÁTICA.

  22. Rafael Jesus 27/11/2013 at 10:33 #

    Excelente responta @PauloSilveira,

    Tem muita gente com a cabeça fechada no mundo da programação ainda, essa semana perguntaram no GUJ “O que estudar pra aprender Java Web” e um cara respondeu: Comece a estudar Servlet & JSP e o livro Effective Java pra depois tentar um framework,
    Cara isso não da mais pra começar a programar assim, linguages como JS, Rails e Python já estão atropelando e já possuem conceitos de programação super avançados como Closure, Lambdas, Procs e sem contar o ecossitema dessas linguagens que vão além dos ambientes corporativos e burocráticos que se encontra o Java

  23. Natan Junges 27/11/2013 at 15:00 #

    Realmente, o Javascript é uma linguagem muito fácil de aprender e de escrever. Eu sou desenvolvedor web, e com o Javascript descobri que é possível fazer coisas incríveis, que eu achava que só era possível fazer com linguagens como Java, C, etc. Caso alguém esteja interessado em prender mais sobre Javascript, deixo o link do meu blog: http://javascriptdeaaz.blogspot.com.br

  24. Camila Tavares 04/12/2013 at 19:49 #

    Eu já fiz tanto o curso de Lógica de Programação com Groovy quanto o com JavaScript da Caelum. E no meu ponto de vista, para aqueles que estão iniciando, aprender a programar com o JavaScript é muito mais interessante e estimulador. O aluno desde o primeiro dia de aula já vê resultados com o JavaScript!!!

  25. Balastros 08/12/2013 at 12:39 #

    Vou dar uma bronca… Não se ofendam.

    Tudo isso acaba sendo conversa de maricota, fofoquinha de corredor. Qual é a melhor linguagem para aprender? Fala sério. Professor é professor, não tem essa de buscar facilidade para ensinar um aluno. Se não quer dificuldade, fica em casa. Não sabe brincar não desse para o playground, assumi a responsabilidade em cima do peito e manda pau. Transforma o aluno, tira ele da estagnação. É fácil ensinar arroz com feijão, manda bala em algo mais sofisticado.

    É o seguinte, muita gente quer programar, mas não tem talento e competência para isso. Quer o caminho mai fácil. Senta a traseira na cadeira e vai estudar, mano. Pega um assembly da vida, estuda e vai dar certo. Estuda arquitetura de computador. Conheça ciência da computação.

    Muita gente quer facilidade para chegar rápido a uma carreira na área de T.I que se mostra vantajosa, mas não que ter o esforço de anos de estudo. Assim eu também quero. Vou chamar a minha mãe, mâeeeeeeeeeeeeee.

    Essa discussão fica na mesma esfera de dizer qual é a melhor linguagem. É Javascript, Java, C, C#, Pascal? Isso tudo é estupidez, a melhor linguagem é aquela que você sabe programar. Depois aprenda outras.

    Já chega…

  26. Paulo Silveira 09/12/2013 at 11:23 #

    @Balastros, creio que você conheça muito pouco, ou nada, sobre métodos pedagógicos e didática. Seguindo o seu estranho e invertido raciocínio, ensinaríamos as fórmulas físicas da cinética através da derivada da fórmula da aceleração para alunos da sexta série. Não é porque se gasta mais tempo pra aprender um mesmo assunto de uma forma mais difícil que se aprende melhor. E se prestar bem atenção ao que eu escrevi, está claro que as possibilidades são infinitas, mas que a discussão, não só minha, é que JavaScript tira barreiras de quem é curioso com o computador. Mas se você quer mandar o menino de 12 anos começar instalando o linux no próprio computador, e acha que isso é melhor, boa sorte para bater cabeça com o que o pessoal que ensina essas crianças já bateu cabeça antes. Mande o menino de 12 anos estudar arquitetura de computação e assembly.

    Esse falso elitismo de estudo é o que nos atrapalha.

  27. Edson Junior 12/12/2013 at 16:57 #

    Paulo Silveira, depois da sua postagem resolvi qual linguagem vou começar a estudar.
    Tem quase 1 ano que estou querendo aprender mas não acho uma linguagem que seja menos complicada de aprender sozinha.

    Muito obrigado.

  28. Arthur 12/12/2013 at 17:35 #

    Comecei com actionscript 2, parecido com javascript. Na época, não usávamos nenhum framework. Foi a melhor coisa que fiz, saí do java (na época eu estava começando a trabalhar com struts 1 e não entendia nada) para apanhar bastante com actionscript. Depois que endureci o pescoço voltei para o Java (inclusive estudando na Caelum) para aprender como o Java resolvia toda aquela surra que eu levava. hehehe. Muito bom!

  29. Rafael Jesus 12/12/2013 at 22:58 #

    @PauloSilveira por favor não desanime na escrita de novos artigos, infelizmente tem nego assim, tinhamos um open space na empresa que se acabou por gente arrogante

  30. Denys 13/12/2013 at 15:52 #

    O Python tem a mesma capacidade didática. Porém, acho que a formula de maior peso nessa equação, é a vontade do aluno.

  31. Paulo Silveira 13/12/2013 at 15:53 #

    sempre é a vontade do aluno. mas ele nao precisar instalar o python, nem abrir o console do msdos, nem uma janela maluca que ele nunca abriu, já é uma ajuda grande que o JavaScript da!

  32. Paulo Silveira 13/12/2013 at 15:53 #

    @Rafael obrigado! fique tranquilo. É que eu gosto de responder o pessoal anonimo que nao tem argumento. É tipo um hobby 🙂

  33. Éderson Cássio 03/02/2014 at 09:46 #

    Realmente, começar ensinando com JavaScript é extremamente motivador. Os alunos podem ver resultados rapidamente.
    Claro que o aprendizado da lógica por si só já vai “comer” 100% do esforço do aluno, por isso é uma boa pedida poder minimizar os outros problemas. JS vc pode debugar fácil usando as janelas Console e Source do Google Chrome.

  34. Pedro Abs 06/02/2014 at 12:01 #

    Parece brincadeira de criança mas, para quem nunca viu uma linha de código, vai ai uma sugestão de uma linguagem simples e visual que pode ser ensinada até para as crianças:

    SCRATCH

    http://pedroabs.wordpress.com/2014/01/27/programando-com-diversao-scratch/

  35. Rafael Jesus 11/02/2014 at 19:14 #

    Ta ai ó, desenvolva com Dev Tops da gringa e comece com JS com ou sem expertise http://www.greatcodeclub.com/

  36. Djalma Araújo 13/02/2014 at 15:24 #

    Eu concordo pela facilidade da linguagem, mas discordo pelo fato da linguagem ser dinâmica demais.. você pode fazer qualquer coisa praticamente e não seguir padrão nenhum também.

    Acho interessante o estudante iniciar por linguagens com estruturas definidas, tipagem, etc.. mas não discordo de seu post. 🙂

  37. Eduardo A.C. 04/03/2014 at 22:02 #

    JavaScript é uma linguagem excelente (uma das minhas preferidas), e realmente deve ser sem igual para “iniciar” futuros programadores.
    Mas nem sempre a dificuldade é ruim: as vezes a adrenalina do desafio é maior que a emoção de ver o hello world fácil. Eu aprendi a programar aos 11, sozinho, com basic, assembly e C, lendo livros e escrevendo rascunhos em um caderno para depois “executar” os fontes de cabeça, porque eu não tinha computador, a não ser o da escola, que não tinha gcc).

  38. Paulo Silveira 05/03/2014 at 02:51 #

    oi Eduardo. Faz sentido sim. E por isso digo no artigo: ha muitas pessoas, como nós, que aprenderam sem ser com JavaScript. É só uma dica para quebrar a principal barreira. Se uma crianca tenta em assembly e nao consegue, talvez seja um bom momento de tentar o JavaScript.

  39. Walker 17/03/2014 at 09:23 #

    Eu uso lego e outros blocos para iniciar os estudos de programação para alunos a partir dos 13 anos. Pode parecer infantil, mas é colorido e divertido. O aluno nem sabe o que exatamente esta aprendendo naquele momento… mas depois, com associações adequadas e tradução para uma linguagem (como o javascript) o aprendizado vai fluindo de forma natural.
    A maior parte dos preceitos didáticos pressupõe que o aluno parta de um assunto mais elementar para um mais difícil, de acordo com seu próprio ritmo.
    Programar não é elementar, mas pode ter seu sinuoso caminho atenuado por boas práticas… como adotar uma linguagem sem tantas barreiras ! Voilá !
    Voltando um pouquinho no tempo, lembraremos que quem começou com Basic viu o quanto era mágico poder fazer algo de imediato… pelo menos para quem tinha a sua disposição somente um MSX, sem nada mais para fazer além de programar e ver o que acontece !
    Aprender a programar é magnífico, afinal todo ser humano aprecia a idéia de que pode construir algo. Se for de imediato então, maravilha !
    Adoto o Javascript e provavelmente estarei migrando as aulas para o uso das API’s do Google.
    Tem dado certo, mas a vontade do aluno sempre será fundamental. E estimulá-la também faz parte do nosso difícil trabalho !

  40. Guilherme 02/07/2014 at 22:43 #

    Be MEAN man! como eu digo há anos… JavaScript vai dominar o cenário de desenvolvimento presente e futuro… “Sempre” existiu! Nós apenas não conhecíamos o poder da linguagem… Há alguns anos chegou o “Ajax”, que nada mais é do que Async JavaScript and XML (que agora usamos JSON. Deveria trocar o termo para Ajaj). Depois veio o Google com a engine v8, que possibilitou o NodeJS com seus super poderes trabalhar no backend, com velocidade e formas para trabalhar com eventos de forma assíncrona. Hoje em dia temos a faca e o queijo na mão para desenvolver aplicações web como se fossem nativas do sistema operacional, tudo assíncrono com requisições XmlHttpRequest, e Socket com eventos indo e vindo do backend para o frontend. Sem mencionar applicationCache e localStorage que nos proporciona aplicações web funcionando off-line a partir do primeiro acesso! Trazendo velocidade para o usuário, redução de carga no servidor e um mundo de sistemas dentro do navegador. Eu sou fãn da linguagem e vejo um futuro brilhante nessa área! Gostei muito do título e do artigo em sí… Geralmente não comento em posts, mas esse mereceu minha atenção e comentário do meu ponto de vista. Parabéns Paulo Silveira! Concordo contigo.

  41. Floriano Noguti 14/01/2015 at 10:21 #

    Parabéns Paulo Silveira excelente artigo e realmente quando você está aprendendo e logo vê os resultados, mesmo que um simples “Hello World” isso motiva demais a seguir adiante. E a simplicidade é um grande aliado para ir quebrando tabus e barreiras, não que aprender programação seja fácil, mas aprender de forma gradativa e com bom embasamento certamente irá ajudar a construir uma carreira sólida. E o JS vai de encontro a essas necessidades, é como aprender a caminhar, aos poucos pode-se ir longe!!!Aproveito pra agradecer a Caelum que tem um material fantástico pra quem está começando e pra quem já está na estrada.

  42. Anderson 23/09/2015 at 15:20 #

    Tenho 27 anos e acho que já tô velho pra caralho mas ando estudando o Javascript através do livro que você e o Adriano escreveram.
    Nunca tive nenhum contato com programação mas conheço bastante gente que programa e todas me dizem que é besteira estudar Javascript. Que eu deveria estudar Java, C#, etc…
    Cada um fala uma coisa! Ao invés de ajudar atrapalha ainda mais.

  43. Lucas Pessanha 17/02/2016 at 00:07 #

    Gostaria de aprender JavaScript, alguém poderia me recomendar materiais de estudo? Já programei em pascal, pyhton e um basicão de html (bem básico mesmo, e esse ja tem tempo).

  44. Beto Bahia 19/02/2016 at 06:06 #

    Nasci em 1950,parto normal,chorei,mamei,aprendi andar,falar correr brincar,então chegou a hora de ir para escola que desejava muito e no meu primeiro contato com que era aquilo ouvi do meu amado professor.
    ESCREVER É DESENHAR A PALAVRA. Desde então desejo todos os dias APRENDER mais e mais. Dificuldades são pra ser resolvidas maiiiiisssss, se facilitar é muito melhor. quando eu tinha 6 anos era difícil falar por telefone com meu padrinho que morava em santos, telefonista liga para o nº xxx. E´éra isso 3 Nº. mas não dava porque estava chovendo. Hoje de qualquer lugar do mundo podemos nos comunicar e nos vermos através de 1 Aparelhinho manual chamado Smart-fone ou qualquer coisa assim, imaginem se as pessoas tivessem preguiça de criar e nos ensinar, deixem de falar merda aprendam e ensinem. A melhor linguagem para aprender é aquela que vc. se sentir melhor. aprendi que as cabeças não são iguais e nem os cerebros se alguem inteligente tem uma formula fácil de ensinar faça nunca complique para o aluno que ele 1 dia pode te passar pra traz. O melhor PROFESSOR FORMA O MELHOR ALUNO. Prega lo pau Prof. Abs.. Vovo Beto 1º

  45. Vovo Beto 1º 19/02/2016 at 06:27 #

    Ao Anderson. Não gosto de dar conselho mas posso te passar uma experiencia de vida e que passei a meu filho. Q. tem o nome igual o seu. Estude tudo que puder por que o amanhã não se sabe o que vai precisar. estudei eletrônica na época da Válvula e tambem agora no Chip. estamos na Era da Mecatrônica,Nanologia, T.I. inteligecia artificial. stou velho é pessoas igual vcs que tem que dar continuidade não perca tempo, Q. o Tempo não para Porto e não Espera ninguem. Abs Vovo Beto 1º

  46. Vinícius Albuquerque 23/03/2017 at 21:43 #

    Não só é bom para começar a programar, mas também para aprender outros paradigmas. Estruturado, funcional, orientado a objetos (class e prototype-based), orientado a eventos… Até para desenvolvedores intermediários, é uma boa escolha de aprendizado.

  47. Daniel Caquieto 30/03/2017 at 16:23 #

    Esto aprender a programar em Java e esta ser uma experiencia muito positiva a pesar de haver alguns comandos que tiram o programador do serio! mais esta ser uma experiencia muito boa.

Deixe uma resposta