Curses! Another victim of the Fastest Edit Gun in the West.
–
randomAug 3 '09 at 0:08

5

"There are not stupid questions... only inquisitive idiots..." But I mean that in the nicest way.. of course I did.. I just didn't know they were stupid, yet. It's part of learning.
–
beggsAug 3 '09 at 9:19

The key is to differentiate a guru from a self-promoter. Claiming guru-hood (rather than reluctantly admitting it) might be a hint, but someone can be both. It's a bit like the idea that wanting a career in politics makes someone ill-suited to be a politician.
–
Phil LelloMay 1 '11 at 17:50

12 Answers
12

For starters, I wouldn't consider myself to be a guru, but I have a good story so I'll answer anyway

9 years ago, in High School, I started learning programming by hacking (hacking meaning trial and error-ing) away at PHP and MySQL. The code, which I still have, was a disaster. You want proof? Here's some of my earliest (working) code (note that it was 3D models, not fashion models)

This was back when SQL Injection was just a twinkle in the internet's eye. (I honestly don't know when SQL injective became 'popular', but it must have been well after this because the site was wide open all over the place)

And that's not all folks! After this magnanimous contribution to the internet, I decided I needed to share my code with the world! So I continued cutting my teeth in PHP and MySQL - this time modding phpBB. This was back before 2.2, it was the 2.0.x releases. I didn't write mods, but I compiled mods other people had written. Sometimes they didn't play nice, so I had to learn what they did, and re-implement it. It was essentially a branch merge every time - sometimes it went easy, sometimes it went very, very, ugly.

So after compiling about 5 dozen of the coolest, best, and most security-hole-ridden mods I could find, I implemented this forum package on the same site from above. I of course, wanted to share with the world. So I released this horrible amalgamation of code onto Sourceforge - and people used it! Not many. In fact I can only recall two. So four sites were running it - mine, the site from above, and two civilians who unwittingly handled my radiation-caked, hair-trigger hand grenade.

And we all got hacked.Badly. Mass deletion, hidden admin accounts, you name it. The site from above wasn't even mine! I felt horrible. I ended up having to show a sourceforge admin this evidence and get him to remove the files so no one else could impale themselves upon my unwitting punji sticks.

And 9 years later, I'm sitting in front of an array of screens, with a great job, a lot more knowledge, and the ability to look back and laugh at myself. If you love this stuff - don't give up. You will learn it. It will take you more time than some friends and colleagues, and less than others. Do you fieldwork before asking questions and be polite. It'll all work out.

I still ask questions that demonstrate my lack of knowledge, mostly about my daughter's passion: ballet. I prefer to think of them as demonstrating interest and curiosity, not stupidity. I do try not to ask them in a stupid manner, though.

The programmers i know who i'd consider "gurus" ask stupidsimple questions... and then answer them.

I suspect this is the line that divides the average programmer and the really outstanding ones: a willingness to look for solutions to their own problems, no matter how simple... and to recognize and make use of good information wherever they might find it.

There's an old saw about the difference between giving a man a fish and teaching him to fish that probably applies here... Some folks learn to fish, some don't.

I've been writing code since I was 10 years old. When I was younger, I didn't have a computer (this was way back in the day), but I had a computer class for a couple hours a day on a TRS-80. I used to carry around a pee chee that I would write my code in using pencil and paper. Then when I got into my class, I would ignore the instructor and type out my code. I've been making mistakes and learning for a very long time.

My advice to you is if it's something you really love, go to school for CS, get a job and find a mentor. Having a mentor that is a guru is the best way to become a guru. Don't be afraid to ask questions. But, don't ask stupid questions. Research your questions, learn about the subject and then ask intelligent questions. Eventually, with enough experience, you will have seen it all come and go several times and everything old will be new again. :)

Sure, nobody is an expert on all topics. The nice thing about SO, is that you are encouraged to improve your questions. Having a "stupid question" is not a problem, having a poorly thought out of question that makes no sense, is a huge problem.

Or, are they so smart and read a lot
of books so there was never a need for
stupid questions?

There was always a need, thats how you learn. Reading a book without practice will get you nowhere.

The longer I am around, the more I realize that I cannot say whether I am a guru or not. It's like you are not able to say whether you are a good programmer.And I find that I ask more questions today then I did "when I was young".

For me, Paul in the bible shows a great example: in the beginning of his ministry he called himself "an apostle just as much as the others", towards the end of his life "the greatest sinner of all".

Some of my questions are more refined due to experience, some I wouldn't have asked years ago because then they were too embarrasing.

What I hope to have found: a balance between asking too fast (not thinking about it) and waiting to ask for too long.

But I disagree. I think the other stupid questions are the ones you don't learn from. I have a great fear that there are many today who do not learn, but who only Google. Some of them are fortunate enough to be sent to SO by Google, and to have the opportunity to learn. But I have a concern that we too often hand out fish instead of teaching them to fish.

And, too many, on their own, will simply never learn to fish.

Thinking back, I realize that I did once think I had found an operating system bug. Fortunately, I was told why that was unlikely, was told to present my reasons for being sure it wasn't my bug, and then was shown the holes in my argument. Needless to say, it was my bug, not an OS bug.

From then on, I've done the same to myself, several times, before I've claimed to have found an operating system bug - even when I was working in the operating system development group.

Way back when, there was actually a chance that it was an operating system bug. The OS was being hacked, by hand, in assembler, so that there were many parts of it that were only running on two computers in the world. So it completely amazes me to see the number of people on SO and elsewhere, who are convinced they've found a bug in .NET code that's being used by hundreds of millions of computers around the world.

Everyone starts as a noob, then you read books, ask questions to whoever you can and practice makes perfect. That's how I try to improve and that's how I think that, in the end, you can become a 'guru'

Everyone asks stupid questions. The key is to learn how to learn - if you can research for yourself, find potential solutions, try some things before you actually ask your question, you will have a higher quality question, or even better - you might find an answer to your question.

Gurus have gone through all this - they've read around (not necessarily books, but usually you gain a lot from them) and learnt how to find what they're looking for. That doesn't mean they always know the answer, but they often know where to start when trying to find a solution.