In the past few weeks, as I've tried and failed at various projects, there has been a realisation that you can only go so far with random reading and coding.
The first few years of programming are spent coding projects pretty minor on the algorithms/data structures side.
But when you finally start growing out of it and when 'cool' projects for you start to become more complex, a seemingly invisible wall smacks you. The wall seperates amatuer and scientist. And unless you are/I am prepared to study, that wall isn't gonna give way.
Crossing the wall is going to require some serious studying, where I actually try to solve the exercises at the back of Algorithms rather than just read the book. At college I'll probably be able to get my hands on a hard copy.
And once this wall is broken, there will be more walls to break.