Passo 2: SoloLearn

Neste passo foi-nos pedido que realizássemos um curso sobre JS numa plataforma que já usamos previamente para aprender CSS e HTML, que é o SoloLearn. Como prova de finalização do mesmo, deixo em baixo o meu certificado.

Para além disso, foi-nos pedido que anotássemos três tópicos que tenhamos considerado particularmente difíceis. Devo dizer que o único módulo que me gerou dificuldades foi o referente ao ES6 ou ES2015, pois possui muitos conceitos novos, um pouco mais complexos, que eu desconhecia e que tive dificuldade em assimilar.

  • let

A minha maior dificuldade com este tópico foi o facto de não ter encontrado nenhum sentido no mesmo. Apesar de ter percebido que a sua grande diferença de uma variável normal era ser definida em bloco, não permitindo a sua utilização fora do mesmo. Não percebi de que maneira isso era útil. Para mim até me pareceu uma desvantagem.

Em termos de novas terminologias, foi bastante fácil perceber. Não tive problemas em decorar a palavra let. Apenas não percebi, e também não me foi indicado, apesar de pesquisa, de onde deriva o let. Pois é simples associar var a variável e const a constante, mas associo let a quê?

Em termos de conceitos, já tinha uma noção ampla do que era function scoped e block scoped, sendo que não me causaram qualquer problema. O que me deixou mesmo na dúvida foi o conceito/propósito do let. Felizmente, através de um vídeo do youtube (url), que foi o meu grande ajudante em todas as dúvidas que tive com os tópicos, foi-me explicado o quão problemático pode ser usar o var em vez do let. Deram-me o exemplo de que se estivermos a usar uma biblioteca que possua uma variável cuja o nome seja igual a alguma que já tenhamos no nosso programa, esta pode ser sobreposta. Se usarmos variáveis que se limitam a ter efeito num determinado bloco, as chances de o mesmo acontecer são muito menores. Sendo assim pode ser considerado que o let é uma forma de boas práticas.

Sem dúvida irei lembrar-me do que aprendi hoje, pois o conceito não é muito complicado, e a palavra chave também é fácil de decorar (são apenas 3 letras).

  • for...in e for...of

É sempre complicado aprender loops novos, pois, para que os possamos usar com eficácia é necessário entender o raciocínio por traz do mesmo na sua plenitude. Raciocínio esse que às vezes pode ser um pouco confuso. Tal como no tópico passado, nenhum destes loops fez sentido para mim. Não consegui perceber nem o raciocínio nem o seu propósito. Algo muito importante na minha personalidade é que eu perco o interesse/desejo de aprendizagem de tudo aquilo cuja a utilidade ou valor para mim não é claro ou é inexistente. Foi o caso.

Em termos de terminologia, foi tudo muito simples. O for já conhecia (já possuo alguma experiência com programação e JS) e tanto o in como o of são palavras chave em inglês cujo o significado sou conhecedor.

Felizmente, com a ajuda de dois vídeos do youtube, um sobre for...of (url) e outro sobre for...in (url) consegui entender a aplicação prática dos mesmo, sentindo-me confiante para utilizar os dois loops em algum projeto. Para demonstrar isso mesmo, vou dizer como funcionam e para que servem os dois loops. Os programadores utilizam geralmente os for loops para aplicar algo em todos os elementos de uma matriz (array em inglês). Sendo assim, estes dois loops servem para facilitar esse processo. Ou seja, for (por cada) elemento in (em) ou of (de) uma determinada matriz, executa um determinado código.

Considero que amanhã e nos próximos dias irei lembrar-me daquilo que aprendi hoje, pois analisar e modificar matrizes é algo que se faz com muita frequência em programação, principalmente quando trabalhamos com algoritmos, sendo de grande utilidade uma estrutura de repetição que facilita esse processo.

  • Set

Mais uma vez, o grande problema que tive com o tópico foi precisamente não perceber qual a sua utilidade. Neste caso, qual a vantagem de transferir uma matriz para um set.

Em termos de terminologia, tive que decorar alguns comandos, mas nada de especial, como, new Set() (para definir que matriz queremos transferir para o Set, mySet.add() (para adicionar valores), mySet.delete() (para eliminar valores) e mySet.has() (para verificar se possui algum valor). Este são apenas alguns. O significado e função de cada um foi-me indicado no vídeo que falarei mais à frente. Para além disso, realizei também uma pequena pesquisa no seguinte site (url).

Acho que entendi extremamente bem qual a diferença entre um Set e uma matriz e quando usar um ou o outro com a ajuda do seguinte vídeo (url). Um set elimina quaisquer valores repetidos. Sendo também muito fácil editá-lo, adicionando ou retirando valores, limpando o Set por completo, etc... Porém, possui uma grande desvantagem em relação à matriz. Não é ordenado. Como tal, não possui nenhuma posição associada a um determinado elemento. Logo, não posso chamar o elemento que se encontra na posição 4, por exemplo. Sinto-me plenamente confiante para colocar esta minha nova aprendizagem em prática.

Esta era uma ferramenta que eu ansiava muito, pois sempre tive a necessidade de editar matrizes e achei muito tosco. Sendo assim, acho que é algo que eu não irei esquecer facilmente. Talvez um comando ou outro me fuja da memória. Mas não é muito grave, apenas necessito de consultar o site que indiquei acima.