Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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?

share|improve this question
45  
Newbies asking questions doesn't go away when you graduate... –  chrisaycock Feb 10 '11 at 0:28
25  
@chrisaycock - They are called colleagues after you graduate. :) –  ChaosPandion Feb 10 '11 at 0:45
12  
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 '11 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 '11 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 '11 at 22:15
show 4 more comments

22 Answers 22

up vote 59 down vote accepted

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.

share|improve this answer
16  
++ for making money off of the questions –  John Feb 10 '11 at 0:49
4  
Headphones are surprisingly good, actually. –  Dean Harding Feb 10 '11 at 1:29
7  
@user9521 And? :] –  Nathan Taylor Feb 10 '11 at 2:11
show 10 more comments

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

share|improve this answer
2  
+1 - This helped get me through college and turned into a very fun job. –  jmort253 Feb 10 '11 at 7:18
show 1 more comment

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.

share|improve this answer
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. –  Mason Wheeler Feb 10 '11 at 1:00
3  
See Rubber Duck Debugging, you don't even need another person. –  Slomojo Feb 10 '11 at 3:30
show 5 more comments

"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.

share|improve this answer
1  
This will stop the vast majority of interruptions, IME. –  JBRWilkinson Feb 10 '11 at 14:20
add comment

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.

share|improve this answer
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 '11 at 19:19
1  
+1 For Socrates. –  Orbling Feb 28 '11 at 23:55
show 2 more comments

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.

share|improve this answer
add comment

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.

share|improve this answer
add comment

Would it work to tell them about Stack Overflow?

share|improve this answer
show 1 more comment

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.

share|improve this answer
show 1 more comment

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.

share|improve this answer
show 2 more comments

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.

share|improve this answer
3  
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. –  Slomojo Feb 10 '11 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 '11 at 14:54
add comment

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.

share|improve this answer
show 1 more comment

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.

share|improve this answer
add comment

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?

share|improve this answer
show 2 more comments

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.

share|improve this answer
1  
I think I have to say this alot. Alot. –  rightfold Feb 10 '11 at 0:22
add comment

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.

share|improve this answer
show 1 more comment

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."

share|improve this answer
add comment

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

share|improve this answer
show 3 more comments

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.

share|improve this answer
show 1 more comment

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

share|improve this answer
add comment

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.

share|improve this answer
add comment

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].

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.