I second every poster that said you need to write code. Mastery of any skill, be it programming or cooking, takes repetition. Michelin-star chefs didn't read a book and then the next day begin producing culinary masterpieces. They over-salted the risotto, over-cooked the filet mignon, burned the souffle, and set fire to the stove countless numbers of times, all in the process of becoming better cooks.
So, you need to write software. Lots of it. Fix bugs in open-source projects, or revitalize a dead project that has a user base. Write useful web/iPhone/desktop/server apps to automate tasks and make your life easier. Do the same thing for your friends and family. Don't start your own open-source project if you can avoid it -- there are too many out there, and you'll learn more by having to understand an existing codebase first.
Avoid more higher education until you've got a few solid years of work experience as a developer. This isn't because school is necessarily useless, but because the academic world is very, very isolated from the pressing practical needs that you need to satisfy as an employee.
Also, play! Build a compiler by twiddling machine code on a Z80, or a web framework written in Malebodge, just because it's a fun thing to do. The best programmers are people who love what they do, and who do it all the time because they get a kick out of building something.
Spend some time learning esoteric languages. Write your pet project using Lisp, or Scala, or Smalltalk.