I'm getting exception XYZ. Do you know what the problem is?
The questioner didn't bother to include a stack trace, an error log, or any context leading to the problem. He or she seems to think you operate on a different plane, that solutions appear to you without analysis based on evidence. This person thinks you are a guru.
We expect such questions from those unfamiliar with software; to them systems can seem almost magical. What worries me is seeing this in the software community. Similar questions arise in program design, such as "I'm building inventory management. Should I use optimistic locking?" Ironically, the person asking the question is often better equipped to answer it than the question's recipient. The questioner presumably knows the context, knows the requirements, and can read about the advantages and disadvantages of different strategies. Yet this person expects an intelligent answer without supplying context. He or she expects magic.
It's time for the software industry to dispel this guru myth. "Gurus" are human; they apply logic and systematically analyze problems like the rest of us. Consider the best programmer you've ever met: At one point he or she knew less about software than you do now. If that person seems like a guru, it's because of years dedicated to learning and refining thought processes. A "guru" is simply a smart person with relentless curiosity.
Of course, there remains a huge variance in natural aptitude. Many hackers out there are smarter, more knowledgeable, and more productive than I may ever be. Even so, debunking the guru myth has a positive impact. For instance, when working with someone smarter than me I am sure to do the legwork, to provide enough context so that person can efficiently apply his or her skills. Removing the guru myth also means removing a perceived barrier to improvement. Instead of a barrier I see a continuum on which I can advance.
Finally, one of software's biggest obstacles is smart people who purposefully propagate the guru myth. This might be done out of ego, or as a strategy to increase one's value as perceived by a client or employer. Ironically this attitude makes a smart person less valuable, since they don't contribute to the growth of their peers. We don't need gurus. We need experts willing to develop other experts in their field. There is room for all of us.
5 comments:
I'm pretty sure the term "guru" as applied to computer people has always been at least half-ironic.
I've met people that had more experience in a particular topic than I could ever want/hope to acquire. Those people are true gurus in that area.
(e.g: Kernighan and Ritchie on C,
McCarthy on Lisp, Steele and Sussman on Scheme, Linus Torvalds on the Linux kernel)
But you're right that most 'gurus' are just smart people who are curious and keep learning.
Real gurus are usually people who have either written or worked on the system in question longer then anybody else. Programming skill is likely meaningless to questions directed at them as the large body of knowledge of the system is what causes their insights. If you work with someone that has been in their job for over a decade they are likely either a guru or deadwood. Or of course both.
A guru is a person who has skill and/or knowledge and teaches or guides others. Many people only focus on the first part and ignore the second. A person who spent a decade in their job may have tremendous skill and/or knowledge, but if they do not share, do not use it to teach/guide others, they are not a guru, just an expert.
A guru is not a person with the most knowledge, but they are a person who is willing to share the knowledge that they do possess.
Part of the problem is the relative low barrier to entry for programmers these days. A person who is relatively naive in the field can easily end up with a very complex task or on an important project. When I give tips to new programmers, I suggest they ask good questions and be sure to listen to those with more knowledge. Otherwise they'll always be looking around for "gurus" to help them out instead of learning from those with more experience.
Post a Comment