If you can’t explain it simply, you don’t understand it well enough. - Albert Einstein.
I think it is safe to say that Albert enjoyed thinking things through until he understood them well enough to explain them simply. 3 years ago to the day I started a blog to challenge myself to see if I understood software development practices well enough to explain them simply. Often I fail with verbose explanations of concepts, which according to Einstein means I must not have a complete grasp of them yet. But overall, I consider the blog a success. Granted with the insignificant number of subscribers and only a couple hundred page views a month, I don’t think I’ll be quitting my day job. However, that was never the point.
By thinking things through, verbalizing them, and discussing them outside of myself, I have gotten a clearer understanding of the whats and the whys of development. I’ll go so far as to say that over the past 3 years the blog, the 65 pages of notes yet to be clarified and simplified, and the ensuing conversations have been the main catalyst for my improvement and overall development as a software developer.
For what it’s worth, I recommend the same for any developer. Try writing down what you think is most important about development, or what drives you crazy etc. You may find that you can’t, because you can’t verbalize what are just abstract judgments. You may also learn some things are not as important as you thought. Best of luck.