I believe that there is a step that every developer must take. For lack of a better term, I will call it the Plunge into Knowledge. I've seen it happening many times, and it happened to me as well. You start your development life by doing your job. You get a task, you do it. If you hit a snag, you turn to one of your co-workers for advice. If they hadn't yet taken the Plunge themselves, they will give you the best answer they have, an answer they probably received from someone else who used...