My tiny 2 cents...
When doing some sort of coding exercise / project, you constantly bump into things that are new and you have not done before. Usually you have a choice of either really looking into the matter and spending a few moments wrapping your head around it, or just quickly trying, compiling, looking at the results and repeating until you get the wanted results. Let's say you need to read / write a file and you haven't done it before. Now, usually you might be exited about getting that neat gfx displayed on screen as fast as possible, not really care much about the process of reading / wrinting files, and be tempted just to "hack it away", quickly glance at some API and just try it with some guesstimated parameters until it works. My advice is not to do that, but take a moment to study the API documentation / whatever, and get the big picture of the concept - what is the idea about this method and this class etc. It will take you 0,5h - 1h longer until you see your nice gfx, but you have actually learned something useful in the process, and you don't need to look up that info ever again. Repeat for couple of hours per day times a couple of years and you start to be a pretty knowledgeable person....