Ask HN: Becoming a programming tutor, any advice?
Hello,
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.
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).
Has anyone here done something similar? Is there anything you wish you knew before you started?
11 comments
[ 0.69 ms ] story [ 42.2 ms ] threadWhatever 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
PS * or her
Things I liked:
Things I didn't like: Good luck with your tutoring business!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!
- 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.
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.
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.