He&#x27;s got a reasonable argument - to a point. I&#x27;ve done massive quantities of reading myself. But hacking away at the LibreOffice codebase has taught me that for everything I know in theory, I&#x27;m not necessarily able to implement straight away in practice.<p>I&#x27;ve had occassions where I&#x27;ve had to try to work around issues, but it <i>really</i> helps to have experienced and helpful devs around on the Freenode IRC channel. I mean, they expect you to do your own research first, but if you really are stuck and need some pointers they are pretty helpful to have around. And they help you progress with your coding.<p>So I think theory is great, but mentorship (even informal and sporadic, because getting advise from experienced devs is, IMO, a form of mentorship) is pretty much essential. Not all theoretical ideas are going to work well. For example: design patterns. These are great and I&#x27;m a massive fan, but they won&#x27;t necessarily be useful in all cases. Let&#x27;s say you decide to implement the Composite Pattern - well, not a bad thing. But if there is a performance critical part of the code then it may not be the best thing to use.<p>Another issue, of course, is where there are differences in opinion on how to do something. Some people really want to use relational databases, others graph databases. If you read up on the theory behind a graph database, but not on relational databases, then you might decide to use them where they aren&#x27;t appropriate.<p>And then there is the issue of the sheer scope of reading about a subject. Often there is so much information that you can get lost. Or it&#x27;s so advanced that it&#x27;s hard to get started - though in most areas I&#x27;m finding that this is getting much better as information is disseminated more widely on the Web.