An old saying, which is very true: If you can't explain something then you don't really understand it yourself.
I've finished up, for the time being, a series of articles on how to build a cross platform build environment. You've likely seen them, the big "CMake" labelled things. As my first real effort writing a series of articles outside of internal documents, I think they went over (are going over) fairly well. I knew folks liked my documentation at work in general and there were no horrible complaints. So transitioning to writing publicly with more than say 20 readers, I feel pretty happy with the results.
But, the thing I forgot about before writing up articles, is how good it is for me, personally, to go through all the details and describe them in a proper manner. If you think you know something 'well', write an article and find out how much you generally 'gloss over' in your day to day use. For my set of articles I actually had to clarify my usage against actually understanding the real workings of certain things. I used things like the dependent options but I rarely really considered what I was doing with them until I had to describe it in plain English. Putting the usage into plain English forced me to really think about why I was doing things in a certain way which actually led to re-evaluating a lot of things I do lately.
If folks didn't consider me knowledgeable about CMake prior to the articles, I think they may consider me that way now. But more importantly, I know I am fairly knowledgeable in that I can clarify details based on anything described in the article since I had to deep dive and make sure I really understood the features in order to describe them. (NOTE: I could have written things correctly and *STILL* misunderstood some minor details, it is possible and I accept it.) In saying this I suggest leaving the term "expert" out of your vocabulary. There is no such thing as expert, very very knowledgeable yes, but expert semi-implies infallible. As programmers we all know that is not realistic.
Edited for clarity since this is now linked from the front page.. (EVIL Michael! )
Edited by AllEightUp, 12 April 2013 - 01:03 PM.