16

I am at secondary school right now and I'm the only one in my class who is experienced with programming. Because of that, people are constantly distracting me while I'm writing code to ask me to solve a problem. Usually I reply with something like 'I don't know, I never use that' but I don't want to lie to people.

Another problem is that I became so well known for this that even students from other classes are asking me questions. I find this damn annoying.

Thirdly, if I solve a problem for them they don't learn anything from it.

How can I stop people from asking me programming-related questions in a kind way?

12
  • 52
    Newbies asking questions doesn't go away when you graduate... Feb 10, 2011 at 0:28
  • 31
    @chrisaycock - They are called colleagues after you graduate. :) Feb 10, 2011 at 0:45
  • 13
    Start charging them a rate that would help you out and keep poor idiots away. Ah, never mind, this is yet another show off "Look at me, I am only 16 and I can code!" questions. Ok, dude, yeah, you are great. Now what?
    – Job
    Feb 10, 2011 at 2:56
  • 6
    @Gaurav: Pah. I haven't lied in almost a year, no exceptions, and my own happiness and that of those around me has significantly improved because of it. It'd be much better just to say "I need to take care of my own work before I can help with anybody else's," or even just "it's not my responsibility to help you." Because, well, it isn't.
    – Jon Purdy
    Feb 10, 2011 at 13:19
  • 4
    @Gaurav: Is this the part where I say "I'll never join you!" and you give me some crap about the power of the Dark Side, then I find out you're actually my father, whine for a bit, and suddenly jump down a hole?
    – Jon Purdy
    Feb 10, 2011 at 22:15

22 Answers 22

62

Wear headphones. Common trick used by undergraduate TAs who needed to use the same computer labs as their students at my school. They don't even need to be plugged into anything. This won't discourage everyone, but should cut down on the numbers quite a bit.

Post a sign on your textbooks / notebook, and put it in your email signature that you don't have time to answer questions due to your own intense studies.

Start a tutoring business, and explain that you charge X dollars an hour and schedule meetings ahead of time. This won't end the problem entirely, but it will help people value your time and will give you some spending money.

13
  • 17
    ++ for making money off of the questions
    – John
    Feb 10, 2011 at 0:49
  • 4
    Headphones are surprisingly good, actually. Feb 10, 2011 at 1:29
  • The headphone thing is kind of deceptive if you aren't actually listening to anything...
    – compman
    Feb 10, 2011 at 2:05
  • 7
    @user9521 And? :] Feb 10, 2011 at 2:11
  • 1
    If he is in secondary school, he will not be allowed to wear headphones in class. Well not in the majority of schools at least.
    – Orbling
    Feb 10, 2011 at 2:19
33

Tell them you are tutor and that you will help them at the rate of X dollars and hour. (If they are actually serious at least you would get paid for helping.)

2
  • best advice here
    – Dave O.
    Feb 10, 2011 at 1:25
  • 2
    +1 - This helped get me through college and turned into a very fun job.
    – jmort253
    Feb 10, 2011 at 7:18
17

Have them explain their code to you before you help them, or just point them to Stack Overflow and the crowd will tell them to do the same thing.

Unless the questions are routinely so basic that you get absolutely nothing out of answering the questions yourself, then I'd still consider helping once in a while (if it's clear that the people you're helping are at least trying). The best way to make sure you understand something is to teach it.

7
  • 6
    +1 for having them explain their code to you. Not 10 minutes ago I helped a coworker solve a very frustrating problem this way. He'd been beating his head against a memory corruption issue all day. He knew it had to be somewhere in the call stack, but he'd been through the whole thing and couldn't find it. So I told him to walk up the stack with me. A few minutes in, as he was explaining what was going on, he looked at one line and said "hey, wait a second..." and there was his problem as plain as day. But he never noticed it until he had to analyze it with someone else sitting there. Feb 10, 2011 at 1:00
  • @Mason Wheeler: Ensuring they learn the answer, rather than just receiving it amounts to a "give a man a fish..." argument, very worthwhile.
    – Orbling
    Feb 10, 2011 at 2:27
  • +1 For the last sentence, exceptionally true. Usually the highest stage of understanding: 0) Don't understand it, 1) Understand it basically, 2) Under it well, 3) Could explain it to another.
    – Orbling
    Feb 10, 2011 at 2:28
  • 4
    See Rubber Duck Debugging, you don't even need another person.
    – ocodo
    Feb 10, 2011 at 3:30
  • @Mason, age old trick. We call it "Grandmothering" here.
    – user1249
    Feb 10, 2011 at 16:17
15

"let me finish this and I'll be over to look at it". They go away. You take 1 hour to finish. They will start solving the problem themselves

It works with colleagues, friends, family but not with grandmothers. If she wants her printer fixed you better do it now.

1
  • 1
    This will stop the vast majority of interruptions, IME. Feb 10, 2011 at 14:20
8

If the issue is that you want them to learn something, without you showing the answer, you could always try...

...the Socratic Method!

Yes, instead of letting them ask the questions, try to make them think by asking leading questions back with as small logical leaps as possible.

Or else you could just lead them to the stack overflow site if you don't have the time.

3
  • 1
    I don't think it works in practice. Socrates was well known for finding answers by not trying to prove(by experiments) any concept he came up with.
    – apoorv020
    Feb 28, 2011 at 19:19
  • Doesn't work for questions like "What's 1+1", but then again, that's their problem. ;) Mar 23, 2011 at 4:54
  • holy crap, that link is great! I wish i could get trained on asking questions that way.
    – Ape-inago
    Mar 23, 2011 at 8:50
5

The paid tutoring answers are really great. I made a lot of money that way in both undergraduate and graduate school.

You could also start a study group after school, where people get together and brainstorm about their programming questions. That's really common at university, and is a great way both to make friends and to learn. Then when somebody interrupts you with a question at school, tell them you're busy but they should bring it to the study group. And it's astonishing how explaining things to other people helps you understand the material more deeply than you could otherwise.

Many programmers at my university did that, and not only did they all get great grades, but had a lot of fun. We also did that for some organic chemistry classes when I was working on my doctorate, and we also all got A's and had a lot of fun. We always had coffee, some people even brought food, and we'd sometimes go out for beer afterward.

4

Talk to the teacher (if you need to use the lab) and see if you can form a study group. I know you want to avoid answering questions, but this will really make you a better programmer. You will have a deeper understanding if you have to explain it others. This will help you manage the Q & A and limit disruptions. Just tell everyone to bring it up at the study group. You never know, you may create one or two other resident experts that can take on some of the questions.

4

Would it work to tell them about Stack Overflow?

1
  • That's a great idea.
    – rreeverb
    Feb 10, 2011 at 2:41
3

I heard this in a talk on general productivity, but I can't find it right now.

The basic idea is, that if you are asked a question is not to respond to an individual directly, but a blog (or something similar), thus building up a knowledge base you can point people to.
Not having to answer the same questions over and over again already helps a lot and actually makes this interesting. There's only a limited amount of questions you'll be asked until you reach a point where you learn something yourself, because the questions are new to you.
Also this is potentially of help for the years after you and even other schools.

Maybe a forum is a better idea than a blog, because you wouldn't have to do all by yourself. In the beginning you would have motivated people pointing out duplicate questions and maybe someday even others will be able to provide answers.
Think of it as a homebrew version of stackoverflow, just for a specific group, possibly in your native language.

It's up to you to decide how far you will go. The fundamental step is to cut out the need to answer to the same stupid questions over and over again.

1
3

If you are in secondary school, then really students should be asking the teacher if they need help, not a fellow pupil.

In an ideal world, they should probably not be speaking to anyone, unless they are working in pairs in which case they should be talking to their partner only.

If people won't leave you alone, tell the class teacher to get it to stop, explain that it means you cannot get your own work done and it'll end.

I used to assist teach IT/Computing in secondary schools for a long time, so I know how it is in those classes.

NB. Personally, I would just answer the questions and enjoy helping people, you can get your own work done another time. When I was a young student it was the same for me - I loved answering questions, it is good public service and helps the staff out.

2
  • In secondary school programming the most knowledgeable pupil usually knows more than the teacher. Feb 28, 2011 at 21:41
  • @Peter Taylor: True, I did. ;-) [Still the teacher should be providing the assistance.]
    – Orbling
    Feb 28, 2011 at 23:54
3

I don't think I saw this answer yet - why not try getting over yourself and your mad coding skillz and actually just answer questions? If it's really out of control you can use any of these other suggestions, but why not learn more by teaching?

4
  • +1 My Philosophy in the professional world is that I ALWAYS make time for another developer with a question. I will stop what I'm doing and answer another programmer's question every time. Well, just about every time - I have had exactly one colleague ever who was just a complete numb nut and never left me alone and I had to tell him I'd catch up w/ him in a bit - but I still did. It's called karma. I realize the academic setting may be a bit different but I don't recall anybody having the problem you're describing. Mar 23, 2011 at 5:49
  • @Chuck - I like the sound of that. If all of us took the attitude that we don't have time to help other devs who have questions, Stack Overflow would never have been the success it is. Answering questions helps us to learn and understand things in a deeper way than we might have otherwise, and asking them helps us be the kind of humble developer that will continue to "suck less each day" as Jeff puts it. Mar 23, 2011 at 11:16
  • @Chuck-The philosophy is good but when it meets the real-world, it often doesn't work. Sometimes you run into that person who finds that it is easier to keep asking for help than to actually spend effort figuring out the answer their self. I don't mind when it is one-off occasionally, but when it becomes the person's default behavior it severely impacts my ability to meet schedule. When this happens, I ask them to please start emailing the question and I will get to it when I am not involved in something else. Then they either latch on to someone else or learn to figure it out on their own.
    – Dunk
    Apr 30, 2015 at 15:49
  • In my experience, the help vampires are the ones who wouldn't move one finger if you were the one who needed help.
    – gnasher729
    Jul 30, 2015 at 15:01
2

Post a sign:

Programming questions answered: 25c

(Euro cents, I assume)

The cheap ones will leave you alone, and you'll make a few bucks off the rest.

4
  • 4
    Same but $10 (or euros), at least make it worth your while, what the hell is 25c going to get you? That's poor business, underselling the service leaves Radek in the same situation, annoyed.
    – ocodo
    Feb 10, 2011 at 3:33
  • 1
    You think a bunch of students will pay 10 euros to get one question answered? Students much be a lot richer in Europe than they are over here. I figure 25c is reasonable, and he might not find it so annoying if he makes money. Maybe 1 euro is better.
    – Kyralessa
    Feb 10, 2011 at 14:54
  • Programming questions answered: Cost = 1 Mountain Dew. At least it is affordable and you don't come off as a pr*&^k. You'll have the side benefit of being able to stay up all night programming:p You might even get good enough with all the extra programming that you can then charge a can of Monster Energy drink and be able to stay up even longer programming.
    – Dunk
    Apr 30, 2015 at 15:51
  • @Kyralessa: That's the idea. You see, he doesn't really want to answer questions. He wants to focus on his own education and learn to get a job that pays at least 200,000 times as much a year than the 25 cents.
    – gnasher729
    Jul 30, 2015 at 15:06
2

Depending on the environment your situation might differ - what I did was: "Please don't interrupt me, I need to concentrate myself, but I can help you a bit at 3 PM." To the second pupil: "... can help you after this other guy, who will be first at 3 PM" to the others: "... there are already some of you queuing up".

A few of them will solve their problems on their own. You have time for your job, but will improve your knowledge if you have to explain it to someone else, and you will feel good for giving some help, and not refusing totally.

The next step is to distribute the simplest questions to intermediate colleagues, to whom you gave help. If they refuse to spread their knowledge, refuse to help them in future.

An important hint is: Don't help in the fastest way possible, but in an enduring one. This will only cost you less time in the long run: Show them, how to solve the problem on their own, but don't do their homework.

1
  • Ah, thats a good thought: fostering your pupil to become a teacher in the future. Great idea.
    – Ape-inago
    Mar 23, 2011 at 8:59
2

How about just saying the truth: "when I'm working I don't want to be interrupted, so if you want my help you must wait until I'm done, even if it means waiting until 10PM".

Then if their question is lazy feel free to say "I don't know".

I wouldn't worry about them "not learning anything". That's their problem.

1

Just tell them you have enough work of your own and can't help. Say this enough times and they won't come to you.

1
  • 1
    I think I have to say this alot. Alot.
    – user4595
    Feb 10, 2011 at 0:22
1

Tell them how they find out the solution on their own. (Give them hints, tell them to google it, whatever works...)

If they are just lazy and want you to make their work, just tell them you dont want to do it for them.

I believe if you would explain some stuff to people who are willing to learn you will benefit from it. Explaining stuff to people in an easy way is a very important skill and you should not leave out this chance to practice it completely.

Afterall if it gets too much, just give them a short answer how to find it out. (or just say "no, leave me alone" if they deserve it)

If you really want them to stop, start giving some of them false solutions.

1
  • +1 for telling them to Google it. It can be done in a manner without being rude or condescending and in a manner that teaches the person to fish.
    – jmort253
    Feb 10, 2011 at 7:20
1

Don't.

There are 4 methods of learning, in order of effectiveness:

  1. Hearing
  2. Seeing
  3. Doing
  4. Teaching

You're lucky that you have the opportunity to partake in the most effective learning mechanism, so early in your learning 'career'. Don't give them the answers, but teach them to solve the problem (the whole 'give a man a fish' thing).

You'll be much better for it in the end.

If you still don't want to bother with them, then any of the other answers here are suitable.

1
0

I find the best way to let someone down in a kind way is to explain the situation and provide them with some options.

people are constantly distracting me while I'm writing code to ask me to solve a problem.

If you are busy working, simply explain your situation and recommend that they ask the instructor or use a resource like Programmers on Stack Exchange.

"I'm sorry but I have to focus on my work right now. You should ask [Instructor] or maybe even look for some help online."

Thirdly, if I solve a problem for them they don't learn anything from it.

An alternative that emphasizes your third point (or if you have the time, yet don't feel good about helping):

"To be honest, I want to help you with this however I'm not really sure how to help you learn the material. Sure, I can solve the problem, but that would take away from your opportunity to learn. I really don't want to take that away from you. I would recommend talking with [Instructor], searching Google and / or Stack Exchange."

0

Charge a fee per project and do it for them. I've made quite some dough during college for the last three years and it landed me some handsome disposable income.

Even if it's a friend, I charge at least a couple of beers. :)

3
  • There's this cool thing called "Academic Dishonesty" which tends to get you to fail a class or worse, keep pushing through idiot into the workforce. Mar 23, 2011 at 4:42
  • @Jeff: There's no rules for helping people from other colleges - and in fact, doing this isn't against my morals, so it's fine by me. :)
    – Sergio
    Mar 23, 2011 at 5:30
  • @Sergio I'm not saying that my morals are for or against that, because lord knows when a friend offers me a 6 pack or a growler for 10 minutes of my time I'm not going to turn them down. But I would caution care in stepping is all, because some schools even frown upon others from else wise doing your work (that is if they find out). Mar 23, 2011 at 6:05
0

-1 for all who tell people to go away. How are they every going to learn? Especially if they have the courage to come and ask for help.

Having been the OP's shoes myself, I found that helping others with their issues made me a MUCH better programmer than ever would have if I had sat and written everything in a vacuum. You get to see lots of wrong ways of doing things, you get to see how others approach the same problem, and you will get to see some creative solutions to problems.

Now that said -- there is a time to say "I'm working on _, I cant help you right now" If your busily working to meet a deadline, getting distracted is very annoying, and kills your productivity. If your school allows - move to a different room.

0

I have the same problem, and here's how I deal with it:

Say someone comes up to me while I'm studying, programming, etc, and asks, "How do I do X?" or "Why won't my code work?". I respond by having them explain the problem in detail, and explain what they expect the code to do and why, or perhaps how to solve smaller parts of the problem. Half the time, this does the trick, and they leave me alone.

For the other half, I usually decide that instead of just giving them a solution, I'll actually teach them what they're missing. It may take a little more time, but it pays off because now they know more, and now they can help others in their class, so they won't bother me.

If they're really annoying, I go on some rant about the benefits of MVC and why their code should be broken into functions and classes and separating presentation from logic and not all jumbled up in main. I find the longer you go on and on and on, or the more aggressively you critique their code, the faster they go away, and the longer it is before they come back. But really, I save this strategy for the ones I don't like or don't even try to learn the material.

0

I would actually suggest helping them, not by giving them answers but by reviewing their code and leading them in the correct direction. A simple "Well have you thought about [x]..." is extremely helpful for the people that are just having a tough time grasping the situation, and as for the people just looking for handouts, it will shy them away once they realize that you're not just going to give them the answer.

I'm sorry, and this might sound a bit rude, but at 16 do you really have that demanding of a life that helping a fellow student out is going to put your life out by miles and eons? Maybe it was just my childhood, but I do remember a GIANT chunk of free time that could be used for any endeavor that I so pleased, and some that I didn't necessarily please, but have helped me in the long run, one of which was helping comrades out when they didn't understand some concept [was math and programming for me].