Everyone who has been working in the computer industry for a long time has had to hear questions like: I am getting an XYZ exception. Do you know what the problem is?
Those who ask such questions rarely bother to show the stack trace, application log, or provide any context that would help understand the problem. Apparently, they think you operate on some other plane where solutions are revealed to you without any analysis of the facts. They consider you a guru.
We expect such questions from people who are not familiar with software, from those for whom the system’s operation seems almost magical. What worries me is that we encounter this even within the programming community. Similar questions arise during software design, for example: “I am writing an application for warehouse management. Should I use optimistic locking?” The irony is that, as a rule, the questioner is better prepared to answer the question than the one to whom it is addressed. The questioner is likely to know the context, understand the requirements, and be able to read materials on the advantages and disadvantages of various strategies. And yet, they expect a reasonable answer without any context. They expect a miracle.
It’s time for the development industry to say goodbye to the myth of the guru. “Gurus” are ordinary people. They apply logic and systematically analyze problems just like the rest of us. They resort to quick decision-making techniques and intuition. Take the best programmer you have ever met: there was a time when this person knew less about programming than you do now. If someone seems like a guru to you, it’s only because they have dedicated years to learning and refining their thought process. “Gurus” are just smart people with an insatiable curiosity.
Of course, people’s natural abilities vary greatly. The level of ingenuity, knowledge, and productivity of many hackers in the world is beyond my reach. Nevertheless, debunking the guru myth will be beneficial. For example, if I work with someone smarter than me, I will have to do the routine work and provide that person with enough context, knowing which they can effectively apply their expertise. Dispelling the guru myth also means breaking down the illusory barrier to improvement. Instead of this magical barrier, I will see a continuous path of my development.
Finally, one of the main obstacles to the development of a software project is knowledgeable people who deliberately spread the myth of the guru. They may do this out of ambition or in an attempt to increase their own significance in the eyes of clients or employers. The irony is that such behavior can make knowledgeable people less valuable, as they do not contribute to the professional growth of their colleagues. We do not need gurus. We need specialists who are ready to develop other specialists in their field. There is enough room for everyone.