Learning how to program real things
<p>How would you guys recommend I actually learn to program real things?</p>

<p>I mean, I know how to do basic academic things. I can implement a templated stack/queue/map/etc. data structure in C++ or Java or whatever. I can make a text-based hangman game or whatever. Etc etc.</p>

<p>But how can I learn to program something real, something useful? I've done project Euler up to question 100 or so, and I feel like that's given me more mathematical maturity but not programming maturity. Should I buy a book and follow exercises, struggle through interesting projects, etc.?</p>

<p>In short, how did you guys transition from academic exercises to real, fun and/or useful programs?</p>
