Aprendendo JavaScript com exercícios TDD e críticas a esse modelo

Com as novas tecnologias, principalmente cloud e busca por sistemas que consumam menos recursos, estou interessado em tecnologias de API REST e consumi-la no navegador. Quando se fala em navegador sempre temos o JavaScript, no MongoDB temos documentos JSON e um terminal, que se não for JavaScript, tem várias semelhanças, além do Node.js no lado do servidor. Com todas essas tecnologias a única que não tenho conhecimento para identificar se ela pode ser aplicada com vantagens e quais seriam é o Node.js, então andei pesquisando para aprender.

Achei um link no site oficial muito bom do nodeschool.io. O tutorial presente no site segue um esquema TDD, ou seja, você tem um exercício para fazer e para validar o mesmo, basta rodar o teste, isso tudo via Node.js e npm. Pode ser um pouco complicado para quem não tem contato nenhum, porém não é muito complicado instalar essas duas dependências e para iniciar o tutorial basta seguir os comandos do site.

Como eu já conheço programação em JavaScript no navegador, esse tutorial a primeira vista pareceu muito interessante, e bem legal a forma de aprender. Porém eu já sabia JavaScript e conheço algumas de suas características, como uso de callbacks e prototype. Também temos um curso específico de JavaScript, infelizmente ainda não tive tempo para dar uma conferida no mesmo para falar sobre o mesmo.

Olhando esse modelo de aprendizado, com textos curtos e um exercício estilo TDD para resolver, lembrei do Codeacademy e que outros sites oferecem conteúdo desta forma. As vantagens são obviamente a rapidez para quem inicia, todo seu aprendizado já vai ser em cima da linguagem, já é possível iniciar uma filosofia de TDD, além da resposta muito mais rápida se o código funciona ou não. Porém não sei se quem tem um mínimo conhecimento de JavaScript, com pouco ou nenhum domínio de callbacks e outras características da linguagem teria o mesmo aproveitamento do material.

Com certeza “cursos TDDs” não irão substituir o material escrito, ainda prefiro um texto explicativo que um exercício para aprender novos conceitos, pelo menos acho que o conhecimento que consigo obter seria maior. Recentemente li o livro Padrões JavaScript e mesmo sem ter feito nenhum exercício aprendi várias boas práticas e formas de escrever um código melhor, obviamente apliquei depois nos códigos para fixar o aprendizado. Só lembrando que essa foi minha forma de aprender.

Recentemente também estive querendo dar uma olhada em Ruby, porém não achei um bom material, que com certeza existem, porém não quero algo que me ensine a fazer uma condição, laço de repetição simples ou o básico de orientação a objetos, tenho esse conhecimento de outras linguagens, gostaria de algo que me ensinasse Ruby e sua forma de resolver os problemas (filosofia), provavelmente o ideal seria algo mostrando um projeto ou parte dele, que possa utilizar como referência. Porém após o fim do mesmo ficaria perdido novamente, somado aos açucares sintéticos que levam a várias formas de escrever exatamente o mesmo código.

Achei no site do Ruby um link de Ruby a partir de outras linguagens (https://www.ruby-lang.org/pt/documentation/ruby-from-other-languages/), li o de Python, aprendi algumas diferenças, porém não sabia fazer uma linha sequer e não consegui ler nenhum código mais específico de Ruby, que simplesmente não entendia a sintaxe do que eram certas partes.

Não tive esse problema com Python, pois quando aprendi fazia algum tempo que não programava, servindo como revisão, além do tutorial presente na documentação ser bem objetivo. Porém acredito que isso irá acontecer com qualquer linguagem, e principalmente a dificuldade de perder o “sotaque”. Gostaria de saber se mais alguém passou por isso e o que fizeram, também seriam interessantes links de material classificados para os diferentes níveis de conhecimento para se aprender alguma linguagem. Deixem nos comentários, depois posso organizar em uma página separada, ou se souberem algum lugar que já tenha isso, melhor ainda.

Anúncios

Comente

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s