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.

This is more of a philosophical question, I suppose, but it seems quite well suited to here, to me.

I'm a 20-year-old, second year software engineering student, with a good history in development, working for a software development/consultancy when I'm not studying etc etc etc

All through my first year I found myself helping and explaining things to my peers when it came to programming and general software development stuff - data structures, common/important algorithms and the like.

I can think of one or two pros to what I'm doing but I feel like I shouldn't have been helping, in case I end up confusing people or passing on bad practices.

It bugged me at the time, but I never thought to ask. So: should I be helping?

Thanks

share|improve this question
    
I'm "+1-ing" the question for your comment on Stephen's post where you explain your process for helping, especially (although the question is also good, I just want to encourage people to read your comment). –  Ethel Evans Jul 18 '11 at 19:29
add comment

4 Answers

up vote 5 down vote accepted

Yes, if you feel comfortable doing it, you should feel free to help your peers. Helping and explaining things to your peers is the basis of a site like this.

You very well may end up passing along bad habits, but even as you are learning and growing, so are your peers. I would be careful to point out that the advice you're offering is your opinion, and that it might not be correct.

When I was in university I was a teaching assistant in several introductory courses and I would often hear the question "Isn't there a quicker way?" or "Is that really how you do it?" To these sorts of questions I would simply reply "I have developed my bad habits out of years of inexperience with new problems, you should feel perfectly free to develop your own".

If you really feel that you don't know, or don't understand something, then I would suggest that you and your peers work together to get that understanding through an office hours visit to your TA or Professor. It's a far better solution than "faking it".

Helping your peers understand how you break the problem down and look for a solution is a very good way to approach this, since you are teaching them to fish, instead of simply feeding them. If your approaches don't work for them, well, then at least they've been exposed to another thought process and can continue to develop their own.

Hope this helps.

share|improve this answer
4  
I'll respond here to all other answers, because they're pretty similar: I do definitely make sure to say (perhaps excessively so) when something I do is just my preference, and definitely say "I don't know" when I don't know. If I get asked to explain something complex, or to show them how something works, I do try to kind of guide them to answers by walking through my thought processes and asking them the questions I ask myself, rather than go "this is how it works. See you later". Is that a good idea? –  AndyBursh Jul 18 '11 at 16:18
    
I've accepted Stephens answer here, but I really wish I could accept them all! –  AndyBursh Jul 18 '11 at 16:25
1  
Sounds like the method you are using is very much like the Socratic method, which is well-accepted as a good teaching practice for one-on-one teaching. It also helps insulate against passing on false conclusions if you are making mistakes, and forming good questions requires a good understanding of the problem - so you'll be more likely to see mistakes if you are making them, and get the correct answer for both you and the person asking for help. –  Ethel Evans Jul 18 '11 at 19:31
add comment

I help if someone asks for it, but don't if I'm not asked, unless I see other code which could be detrimental to the project (performance issues, security problems, etc)

I always try and make it clear that what I am explaining is my take on things, and there might be better ways out there. I also try and show why I do things instead of just how to do them, and I'm always willing to listen to someone else's point-of-view or counter-arguments.

share|improve this answer
add comment

YES!

But be humble about it. "Why not do it like this?" or "I usually do X."

This opens a dialog on the Subject (rather than sounding like a preacher), and Guess what! you may even learn something from them!

share|improve this answer
    
Thanks, that part of it was definitely part of my worry - coming off as an insufferable know-it-all. There are other people on my course who're referred to in less savoury terms for that reason! –  AndyBursh Jul 18 '11 at 16:22
add comment

You should be helping. But don't do their work for them.

There is nothing like trying to teach to help you identify what you don't understand and fix that. Reviewing the basics is a good way to make sure that your foundations are solid. Just make sure that if you explain something and are not entirely sure of your explanation, that you go away later and google it to see whether you got it right. If you didn't come back and apologize and give the correct explanation. This is a valuable form of deliberate practice.

It is true that if you are confused, your explanations will only confuse. And you could easily pass on bad memes. However it doesn't sound like you are doing that. And your peers are in a position with lots of potential help available. If your "help" is not helpful, they should be getting feedback from the classroom that you're not a person they should be asking. People usually manage to figure that out.

share|improve this answer
    
+1! Just like trying to formulate a proper question will often reveal the answer to you without even having to ask the question, trying to formulate an answer will often show you that you actually have no clue! This is extremely valuable. –  Jörg W Mittag Jul 18 '11 at 18:57
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.