Teaching Those Beginning The Journey
Becoming a master developer is like becoming a master craftsman; you just can't rush the process. You learn the basics, apply those skills, and over time master them and adapt them to be your own. As time goes on, you take on bigger and more complicated tasks, and apply appropriate skills to those, and so on. Our journey as developers is really much the same and yet sometimes I feel that we don't help those at the very start of the journey as much as we could.
This post is very much my opinion, and based on my own experiences of teaching and writing for developers of all levels of experience. I find that in order to teach something, more or less anything but at the beginner level in particular this is true, it's important to pick out a few key points and get those across. Whether I'm preparing training, a conference talk or an article - there's always information that is identified as being out of scope. For example I've been speaking about the features in PHP 5.4 at a few conferences recently. Does my talk cover everything in PHP 5.4? Not at all, that would be dull to watch and hard to remember anything from the long list! It picks out a few things and points you in the direction of finding out more about each ... it might not be the right way, but it works for me.
I keep seeing on blog posts (we're blogging more again, this is good news!) about all kinds of topics, clearly aimed at people pretty early in the journey, comments from experienced developers saying "don't do X! X is bad!" ... even when X isn't super-advanced best practice, in order to understand why something isn't always a great choice of tool, first you must know what it is and how to use it. Instead, I'd prefer to see comments that say "now you've read that, read this:" with a link to other resources covering the best practices in question. Rather than "X is bad!" can we work on sharing links about which patterns to look out for, with constructive examples of how to do that better.
Knowing what to leave out is a skill for a teacher, and one thing I've learned about teaching is that becoming a good teacher is a journey in itself ...