Pages

Sunday 10 April 2016

Private tutoring practice - coding interviews!

- I think private tutoring is about picking the correct exercises and stringing them together efficiently into lessons. Coming up with the right exercises is really hard, though. It requires a crap ton of 'creativity' (aka. failing and trying again) to come up with an exercise that feels correct. It takes even more to come up with an exercise that feels 'magical'.

I can't really explain the feeling of magic that comes with creating a really good exercise. Some exercise ideas just have this weird exciting feeling to them. Sometimes you can practically taste the excitement of the students, that's how good the exercise is.




- Revision and refreshing knowledge is really hard because it's hard to build knowledge. When I was tutoring maths, I often made the mistake of assuming that the knowledge would stick after being practised once or twice. After your student learns a concept, they forget it in one week unless you forcibly bring it back.

It's actually really hard to retain knowledge. I clearly remember falling into the trap of trying to build up knowledge by doing 1 topic per lesson, building upon the knowledge covered in previous weeks.

What I discovered is that 1 topic per week is crap. I think you need to keep an intuitive sense of the student's understanding as you go along, and make sure you're selecting exercises that are just on the border of their understanding - exercises that they can just barely do.

As SOON as they make some sort of progress, as soon as you give feedback and they learn a new technique, you need to stabilise it ASAP by picking the same exercises and using positive feedback to reinforce that their newly learned technique is useful. If you can connect the newly learned item to a positive experience, you're good for memory - the more positive the experience the better, in my opinion.

- Private tutoring is very different to group tutoring - you are able to have complete and utter focus on a single student, you don't have to worry about coordinating an exercise across different ability levels, and you have a superb ability to come up with unique exercises on the spot.

It's especially cool when you're doing maths exercises, because you can spontaneously invent maths exercises that combines a particular set of techniques. For example, factorisation. After you teach them how to factorise quadratics with a negative constant term you'll look at the book for a simple example, but there isn't one, so you create one yourself:

x^2 + x - 6 == 0

Then you can create one that's slightly harder. You make the factorisation less obvious:

x^2 + 9 - 52 == 0

... reinforcing the idea of "splitting the end term into two factors".

Then you introduce the concept of a negative x term:

x^2 - 3x - 10 == 0

... and you can decide to have more or less complex negative exercises based on how easily the student picks up the ideas. It's a creative, magical freedom that I think is unique to teaching.


- Teachers always talk about how homework is essential to learning and you can't really learn without homework.

I don't disagree, on the condition that the teacher only gets a certain amount of contact hours. If you only have one contact hour a week, there's no way that you're going to be able to teach anything properly in just that one hour without homework as well. Of course, that's also a lesson I learned the hard way. Thanks and sorry, Tristan.

Thus you can either increase contact hours or add non-contact-hours learning time as well - i.e. homework.

One oversight I think teachers often make, however, is that it's 100% the student's responsibility to do the homework. Because it's not. If the homework doesn't have a low barrier to entry, if the homework is boring, if the homework is repetitive, there's no way that you're going to get your students to do it. The teacher also has significant responsibility in that respect, to make the work interesting, to make the work engaging, to make it easy to start on, to make it exciting. No one wants to take home a sheet of 100 integration problems and slowly work through them.

If the student isn't excited, then how are they going to have the energy to learn anything at all?

Isn't that your goddamn responsibility as a teacher?

I didn't do this well during the private tutoring sessions, but luckily he wanted a job so he put a fair bit of work into interview preparation as well. I wasn't strong enough, I wasn't motivating enough, but I guess I was saved by my student this one time.

But it still might not be enough. I should have thought harder about how to make the practice seem more exciting. I don't know.


- Since it would be impossible to cover any form of content in the time I had, and covering content wouldn't be very useful since it only would have a certain chance of being covered in the interview, I thought that it would be more useful to practise interview technique and make sure that you can demonstrate your best in the interview. The most important thing I think, is not to panic no matter how lost you may feel. Once you panic, you lose, and your mind is no longer in its problem-solving state. If you practise doing interviews, especially difficult problems, and you don't give up no matter how rekt you may feel, I think that would help a lot.

I'm glad I made that decision, and I think it'll turn out fairly well. In my own programming interviews I think I did a lot better after I had passed some interviews, because it removed the stress and pressure of having to acquire a job and the interviews became more fun and relaxing. Good problem-solving mentality overall.


- Being reliable and on time is important, as is responding to email quickly. The more reliable you are, the more likely the student will turn to you on help - which gives you the power of influencing the student, rather than some other pleb teacher or misinformed website on the internet. Assuming you are above average in teaching ability, being reliable means you will be able to provide better support to the student than they would otherwise have gotten.


- Ensure you are aligned with the student's goals. Sometimes making the content fun and interesting isn't enough, because maybe the students just wants to score an A in their test and feels like they're having too much fun learning. For students whose goal is to achieve (e.g. get an A, get the job), you have to demonstrate to them that they are making tangible progress so they don't leave and go and learn from some other average teacher. You have to give feedback, and then give them a similar exercise and show that they perform better on it now that they have obtained your sage wisdom.


- When you're private tutoring, you have a lot of free focus and attention that you can pay to the student - you can watch how they perform, what they're slower at, what they do well and worse at. This is absolutely invaluable information - and it's hard to remember all of it. If you take notes of their performance, you can optimally tailor the next exercise to suit them.


- Currently, I feel that the practise is going well but the challenge is the harder exercises - I don't know how I'm going to tackle them. If I just give a difficult exercise straight off, he's going to struggle, and the lesson will feel like a huge battle just to get to the next step, and he's not going to take anything away from the lesson.

Teaching someone to solve arbitrary difficult problems is a non-trivial task. I still have no answer for this one.


I'm thinking that a computational system would be really good at this. Like, you know, incorporating feedback and using it to construct the subsequent exercise in the optimal manner and using the correct elements. Of course, it would be impossible without an amazing human designer for the computational system, but the idea is really cool, right? Teachers never have time to pay individual attention to each student, but with computational assistance to assimilate and collate feedback, and I think it could be possible.

No comments:

Post a Comment