Hmm, I even am not be able to do FCC challenge (yes, that tribute page).
Though I did a project in Arduino, creating Lisp interpreter in D, made Nim binding for Irrlicht 3-D Engine and collecting sporading coding snippet in Nim.
Somehow I never be able past the interview or live coding testing. my coding brain usually reaches a peak performance at the deep morning after sleeping or after sometimes coding so I can enter the "flow". The interview and live-testing always done whether at noon or at afternoon when I'm in dumb state
Thankfully I've many connections and those guys just gives me some projects to do, well, at least I can fill my pocket and continue living
You should plan what you want to achieve with learning to code. In my case, I've been coding for fun, so I'm the example that maybe you want to avoid the most
For serious answer, do coding step by step without looking the tutorial or video. If you like the "hard-way", you can code with looking the reference first in order to fill your "muscle-memory" and code again the 2nd or 3rd time without looking the reference. You would find the discrepancy between what you see, what you know, and what you understand.
For more generic answer, once you able to learn something, you can easily learn for another domain just like what I did with diverse programming topic (however I'm still struggling with how to design a web page so it can look as "godly" beautiful while still giving the most wanted performance )