...you ignore when learning things on your own. Seriously, if you teach yourself a language it's usually by developing a project of your choice (mostly for the fun of it, as it has been for me). What people do is, they go for the fun bit of hacking things together to get a working piece and pick one of two choice:
* Try to use all the language features even if this means overkill for simple situations.
* Go on to piece it together and leave a horrible mess.
I used to do the latter >10 years ago in that situation, starting out in the mess that Visual Basic itself is, never really realising just how bad it was. I was proud of what I'd achieved! Looking back, I can't believe I published any of that. It's when people go for the first choice and start realising how software is meant to look like from the source that they learn to be a competent programmer. There's all these intricate details like Garbage-Collection, String-Manipulation, Floating-Point Math (the point being that it is unlike mat taught at school !) and many more things like Memory-Management and some such that one *can* get to work sloppily, but it's only when one realises how to utilise these things in the correct way that i would agree self-teaching is the way to go.
I'm a self taught programmer, still in university (3rd year with an average mark of 1.8), employed as a software engineer and I'm 100% certain I wouldn't have been able to achieve 1 quarter of these things without teaching myself how to program. ....Yeah... it is at this point that people can rightfully say they *do* waste quite some time in university.