I was once taught (on a time management course, of all things) that there are three different people when it comes to learning: visual, auditory and kinaesthetic (aka tactile). Visual people need to see things to understand them, auditory people need to hear things to understand them and kinaesthetic people need to try things to understand them.
How much that is true, I don't know, but I was classified as kinaesthetic and it came as no surprise. I'd discovered that university that I didn't really understood a proof in physics until I'd done the maths for myself. I couldn't remember bullet-point lists, but could learn sentences. To revise I didn't read notes or make visual aids, I worked through past papers.
Which doesn't mean that I can't learn something in other ways - an article is a good way to look up a detail I've forgotten. Or can serve as an introduction.
I already knew that in order to understand coding I need to do it. That's the same for everyone - it's when you try it for yourself that you discover the bits that weren't clear. I've tried various sites where you read some information or are given it in a video and then have to do it for yourself. I've also tried YouTube tutorials where you code along.
But I've sometimes struggled to apply this knowledge to my own projects.
I much prefer applied maths to pure maths. I understand maths much better when I can understand what it is. When learning calculus I felt like I was just changing a number into another number. I didn't understand why until it was explained to me that differentiation is used to measure the slope of a line on a graph and integration is used to measure the area under the graph. I haven't done any differentiation or integration since leaving university, so I don't remember how to do it any more, but I remember why you do it.
What has really helped me learn to code is watching coders work on real problems. I understood better how to structure SCSS files when I watched a coder code and saw how to use it to find things. I understood how to build up unit tests as your code gets more complicated.
Sites like FreeCodeCamp and CodeAcademy are still valuable, because sometimes you need something explained in just the right way to get it to click and it could take a few different explanations before you find that way.
I'm off to watch more videos.