I found this interesting question on Quora ( http://www.quora.com/Computer-Programmers/What-skills-do-self-taught-programmers-commonly-lack ).
I, personally, am a self-taught programmer. I've no background for formal CS Studies at University. I've no knowledge about Algorithms, Data Structures and Design Patterns, Compilers etc.
I always feel there's a need to know such topics to become better a better programmer. If so, how can I pursue such topics ? Do I have to go back to University and attend a CS degree ? Or take online courses (and which?) Where do I start ?