Similar to you, a lot of what I have learned in CS/programming has been through experimenting (personally I like the Jennifer Dewalt method of just doing a lot of small projects: http://jenniferdewalt.com). You are not bad at studying! We all just have our own learning methods that are most comfortable. A proper education system would ask you what ways you like to learn, then have multiple versions of the same curriculum taught in different ways. Somebody build that please.