When I studied C in College, I could tell you all functions on the ANSI library. More often than not, it meant that I knew if a library had something already done so we wouldn't need to do it again. Even simply things like using freopen to redirect standard output to a file, or using sscanf to parse an user input where outside of the class curriculum that I only got to know because I studied the language somewhat in depth. Now that I work with C#, nearly everytime I need a class that is somewhat uncommon, I am forced to do a research, and it usually DO exist in the framework (exception in mind, double indexed lists) somewhere. But I do not know it. Even the expert C# guys do not know it. We need to research. Because the framework is too big, it is not possible to know it. And because it is not possible to know it, every time I am coding, I feel like blind because of the possibility that of what I am doing is actually already there and I don't know it because I didn't think of the right words to research it for.