

Ask HN: Becoming a programming tutor, any advice? - GotAnyMegadeth

Hello,<p>I was thinking of offering my services as a programming tutor in my local area (Bristol, UK). I haven't quite worked all the details out yet, but I was wondering if any of you had any advice on how to go about it. I don't even know if there is any interest for it yet, but I plan to start small and do it in evenings and weekends and see what happens.<p>I think that I would mainly be targeting beginners of any age, but perhaps also university students. I would either teach Android development, or just a language (C, Java or Perl).<p>Has anyone here done something similar? Is there anything you wish you knew before you started?
======
dgunn
I considered doing this myself but didn't for a few reasons. I have tutored
math (college level) for sometime now and it has proven to be quite lucrative
at times. I don't do it much anymore but in college and my early-career time
frame (when I usually needed money) it was great.

The primary reason tutoring math is better than comp sci (IMO) is the
following: In all levels of schooling and in practically every domain, math is
required whether you like it or not. Computer science is not.

I chose upper level math because of the types of rates I could charge. It's
very common to get clients who have high paying jobs who also need tutoring in
math. For example, a nurse who wants to sit for the GRE to get into grad
school will probably need help in math because math wasn't a primary focus
area when he went to college 3 years ago. That same nurse probably makes a lot
of money and can pay you well (Especially if you show that you made an
extremely high score on the math section of the GRE.)

Computer Science isn't required in most walks of life so so you'll
automatically reduce your clientele to mostly just students. Furthermore,
they'll be the smartest of the students (engineers, comp scientists,
physicists, etc..) so there won't be many to chose from. These kids didn't go
into these fields cause they're bad at learning from their teachers... They
also are reasonably savvy at looking up a free tutorial online. Worst part of
this is the fact that most of that group will be broke. If you're looking to
make money at this, you need a steady stream of people who can pay. This
demographic will not result in that (my experience only. yours could be
different).

This is not to say that you should tutor math. It's to say that you shouldn't
tutor comp sci. All this changes if you're doing this for fun/volunteering. I
mostly just tutor younger friends/family members now for free. There are
definitely worse ways you could spend your time.

------
katherineparker
I have not tutored but I can offer you my experience from being tutored. My
classmate tutored me in C++ last year. He was part of a peer tutor program at
my school.

Things I liked:

    
    
       -Flexibility in hours to meet up
    
       -Signing up for a certain amount of hours (keeps the
        commitment there)
    
       -Being patient with me
    
       -Answering my questions without speaking over me
    
       -He asked me to prepare specific questions or code to go  over before we met up 
    
       -Before the first session, we talked about specific goals I wanted to achieve
    

Things I didn't like:

    
    
       -It was hard staying on topic sometimes because we were also friends
    

Good luck with your tutoring business!

~~~
GotAnyMegadeth
Lots of good points, thanks. Signing up for a block of hours is a good idea, I
hadn't thought of that.

~~~
katherineparker
Your welcome =)

Btw, the standard at my school is to do 5 hours as sign up, then do one hour
tutoring sessions (and sometimes the odd two hour session). It's kind of nice
so you have a commitment and people will be more likely to show up and
continue tutoring than waste their money and your time waiting for them to
show. Once again good luck with everything, I'm sure you will be successful
since you're planning this out well!

------
codegeek
I have tried teaching programming and here are some things I would suggest
other than the usual stuff:

\- Do not assume that just because _you_ think a topic is simple, it will be
simple for your student to understand. Remember you have done this thing many
times over the years. So _now_ it seems trivial to you but probably not to
your student who has never done it before. So be patient and go slow.

\- Everyone learns differently. Figure out what works for _that_ specific
student and use it to your advantage. If you user is a writer who wants to
learn how to program, try and use some references to writing if you can when
explaining a concept.

\- Focus on the negative cases. Teach a specific concept (say pointers in C or
vector in Java) not just by showing an example program that works. Teach it by
breaking the program and showing how the compiler/interpreter etc. behaves
when something does not work the right way.

\- Try and use pictures/diagrams to illustrate a concept if necessary. For
example, pointers can really be explained well if described in pictures where
you show the address, the value etc. and how they are related. For example,
when you say int * p, what really happens.

\- Teach them how to "design" a program for larger programs. For example, I
was taught to use nouns and verbs where nouns _usually_ become class.
Something like that. But knowing how to design an app is very important in my
opinion.

------
EnderMB
Hello, fellow Bristolian!

Most of the advice I'd give is already here. All I can suggest is that you
tailor your lessons towards a certain goal. For example, if you were teaching
Java to a struggling student they may need strengthening in certain areas of
OOP to solve their specific problems. A guy in my old CS class at UWE got some
outside tutoring because he was struggling with designing his classes and the
person that taught him gave him a generic run-through of how to write Java
instead of aiding him with his problem, whereas an hour with a TA managed to
resolve his misunderstandings.

------
hiddenfeatures
Just one tip from someone experienced in tutoring/training others (non-
technical skills): _Be very patient_.

Whatever you might think how easy something is, your view is blurred by years
of experience. A beginner will take far longer than you expect him to take for
any given task

~~~
GotAnyMegadeth
Thanks, that's a good point. It's easy to forget how much of your "Common
sense" is actually years worth of experience.

PS * or her

~~~
pc86
He is almost certainly being used as a neutral pronoun in this context.

~~~
hiddenfeatures
thanks for the support :)

