Outro ponto importante também pra quem está começando de fato nesse mundo da programação, é ter uma boa base de conhecimento sobre as funções nativas da linguagem, elas podem te ajudar no futuro.
Posso usar como exemplo a dificuldade que passei no começo desse ano é por não entender o que a função split() do Javascript fazia no sistema da empresa que estou estagiando, depois que eu entendi como funciona tudo fica mais claro.
Funções recursivas também me deram um trabalho pra entender e implementar.