Code kata in my opinion is the superior way to learn. Code through practice and repetition, just like every other skill.
Ironically, you can read a book about it https://www.amazon.com/Pragmatic-Programmer-journey-mastery-...
https://www.amazon.com/Pragmatic-Programmer-journey-mastery-...
+1 on CI & automated tests BTW.