Meta Stack Exchange is where users like you discuss bugs, features, and support issues that affect the software powering all 158 Stack Exchange communities.

What is meta?
Here's how it works:
  1. Any Stack Exchange user can ask a question
  2. The community provides support, votes on ideas, and reports bugs
  3. Your voice helps shape the way Stack Exchange operates

When do people become gurus? Do they ask stupid questions? Or, are they so smart and read a lot of books so there was never a need for stupid questions?

share|improve this question

migrated from Aug 2 '09 at 23:54

This question came from our site for professional and enthusiast programmers.

From your profile, one way to improve things would be to answer more questions than you ask. – waffles Aug 2 '09 at 23:54
I love having enough arbitrary number to edit questions. Hail grammar! – JSONBog Aug 2 '09 at 23:59
Yeah I really need to get another 100 reps :p – waffles Aug 3 '09 at 0:01
What's an Overlow? Is that like a buffer underrun? Or does the code need a refactor pick me up? – random Aug 3 '09 at 0:04
@random: too slow! I also have enough arbitrary number... – Shog9 Aug 3 '09 at 0:05
Curses! Another victim of the Fastest Edit Gun in the West. – random Aug 3 '09 at 0:08
"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. – beggs Aug 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 Lello May 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)

$nav="<a href=\"index.php\">Home</a> <font color=\"#999999\">&gt; </font><a href=\"models.php\">Models</a> <font color=\"#999999\">&gt; </font>";
    $query = "SELECT name FROM models_supra_cat WHERE supra_id = '$supra'";
    $supra_name = sing_result($query);
    $nav.="<a href=\"models.php?supra=" . $supra . "\">" . $supra_name . "</a> <font color=\"#999999\">&gt; </font>";
    $nav_add="<a href=\"models.php?supra=" . $supra . "&";
    $nav_add="<a href=\"models.php?";
$query = "SELECT name FROM models_cat WHERE cat_id = '$cat'";
$cat_name = sing_result($query);
$nav.= $nav_add . "cat=" . $cat . "\">" . $cat_name . "</a>";
echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"5\" bgcolor=\"f0f0f0\">\n<tr>\n<td>\n" . $nav . "</td>\n</tr>\n</table>\n<br><br>";
$query = "SELECT, a.sub_cat_id 
      FROM models_sub_cat as a, models_sub_cat_in_cat as b
      WHERE b.cat_id = '$cat' 
      AND b.sub_cat_id = a.sub_cat_id
      ORDER BY a.sub_cat_id ASC";
$result = mysql_query($query) or err_report($query);
while ($line = mysql_fetch_array($result)) 
    $msg.="<LI><a href=\"";
    $link.=(isset($supra))?"supra=" . $supra . "&":"";
    $link.="cat=" . $cat . "&sub=" . $line['sub_cat_id'];
    $msg.=$link . "\">" . $line['name'] . "</a>\n";
    echo $msg;
  1. Templating Engines? Pft. I write my HTML myself, thank you.
  2. register_ globals? Well duh! What alternative was there! HTTP_ POST_ VARS? luser!
  3. PHP 4 baby! You had to go find a webhost that wasn't on PHP3!
  4. 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.

share|improve this answer

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.

share|improve this answer

Can't it be both? ;-)

The programmers i know who i'd consider "gurus" ask stupid simple 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.

share|improve this answer
It is a Chinese proverb - see – Peter Mortensen Aug 3 '09 at 4:00
Ah, yes... "Give a man a fire, he'll be warm for a day. Light a man on fire, he'll be warm for the rest of his life!" – Shog9 Aug 3 '09 at 14:19

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. :)

share|improve this answer

When do people become gurus?

It takes a long time and lots of practice.

Do they ask stupid questions?

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.

share|improve this answer

I've made plenty of mistakes :)

  1. Don't know the difference between $foo and $_POST["foo"]
  2. Didn't know the difference between disabled and readonly
  3. Failed to use arrays where appropriate...
  4. Treated functions like strings, and wondered why they wouldn't work...
  5. Called smart people "Friends" hoping they'd give me code to read a file...

Basically, we were all once very dumb :) Those of us who are smart enough know that we are all still very dumb - some of us just have learned how to hide it a little better than others ;)

share|improve this answer
Hey, Jonathan: you are not to answer this question. It says "when you were young". You're 26, which in biblical terms is not even considered grown up (30) ;-) – malach Aug 3 '09 at 10:57
@Ralph, I'm plenty old for a post-deluvian chronology :) – Sampson Aug 3 '09 at 17:51

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.

share|improve this answer

They say that the only stupid question is the one you don't ask.

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.

share|improve this answer

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'

share|improve this answer

That depends entirely on whether it is Friday afternoon or not.

share|improve this answer

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.

share|improve this answer

Peter Norvig tells us that it takes ten years, regardless of field. Research in cognitive science backs this up.

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .