![]() |
Ruby > Ruby mentoring >
Background ∞
When I first started using computers, I was rather bothered by various user interface elements. As my skill grew, and I became a “power user” I found and still do find serious and obvious bugs and issues any time I use a program.
I wanted to learn programming so that I could help with all the software I was using. However it was all proprietary, and I would need some hardcore machine language skills or otherwise I would have to decompile and tinker a whole lot. Back then I didn’t have the confidence I have now to just contact the manufacturer with suggestions. Well, using proprietary software gave/gives me a sort of claustrophobia. When the underlying operating systems started becoming a sort of fad that would come and go, obsoleting a huge array of programs, I knew I had to get out.
This is what led me to Linux and both free and open source software. With access to the source I can make changes myself or ask/pay someone else to help.
I did end up learning some programming here and there, but I haven’t ever had the ability to get into proper application development.
The existence of this website does demonstrate some small ability I guess. While I’m still learning I lack some fundamental sort of motivation. My youthful curiosity has been slowly dying over the years, and so it’s become very hard to get motivated to learn new stuff and actually accomplish goals.
Youthful enthusiasm ∞
I met a guy playing multi-player Minecraft. He asked a lot of questions about all sorts of stuff. The thing with me and questions is that I will take them seriously and answer what I can, no matter how obvious or stupid the question might seem (to others). I do rather enjoy helping people answer questions.
I’m really bad with trivia and yet I know a little bit about all kinds of interesting stuff. My attention-span, interest and memory are scattered at best but I have a depth and interlinking to my memory that lets me recall related information really well.
The way I work internally is to mull over knowledge from an alternate perspective, essentially tutoring myself. This is probably largely responsible for the quality of my memory for those things that interest me. This self-tutoring habit also makes me particularly talented at explanation.
Are you a programmer? ∞
At one point I was asked if I was a programmer. I tried to dismiss it in a sort of yes-and-no way, mainly because I’ve met “Real Programmers” and I’m not one of them. I ended up pointing him to my compiled website project. He asked if I could teach him to program.
The thing is, a day or so earlier I was going over my programming history and I wondered if I could both get inspired and learn more by doing paired programming or even through tutoring. So I pretty much had to take this opportunity.
So that’s why I said yes. Now to explain why this is more interesting than it otherwise would be, and why I have a little section all about this topic.
Project goals ∞
There are a few outlets that this project has.
There are technological challenges found with paired programming. What are the right tools to use? Is a webcam important? Is voice chat important? My writing on the tools we’ve tried and our thoughts on them may help others.
The social side of mentoring and paired programming may be something I could write on. What mistakes have been made? See Ruby mentoring mistakes. What’s the best way to discuss things, to program things, etc?
Finally, I want to create a different arrangement for a lesson plan that goes down the path created by exploring the mentee’s questions. In cases where a mentor is not available, a solo student may find this differently-arranged lesson plan much more accessible.
My qualifications ∞
I’m somewhat unqualified and that makes me perfect for the task. I really have no idea what I’m doing, and this is a good thing. So far.
I’ve already made and have learnt from a lot of the mistakes that a new programmer would go through. I do have my crotchety old habits, but because I don’t claim any sort of expertise I have less of the ego that slows improvement. I’m learning as I go and I’m not afraid to admit it.
Opening with a solid mentoring relationship is like an apprenticeship. All the good habits can be fairly-forcefully relayed, and the learning experience can be structured. This makes early development much easier and faster.
At some point our abilities will equalize. When the student-teacher relationship is outgrown and the pair can recognize themselves as peers there is a much more comfortable and effective learning environment.
The mentee’s attitude ∞
The kind of student who would work well in this sort of learning environment is one who has already tried to learn on their own. They’re already reaching, questioning and experimenting.
Nobody can be taught to be great at anything. They can be taught to be fair, and perhaps good.. but unless there is a lucky matching of interests and a seed of passion nobody can be taught to be truly great.
The truly great have already tinkered on their own.. already been trying. These are the people that have potential.
My mentee had already been playing with Game Maker. He already understood basics and picks anything up in minutes. He asks deep long-term questions which are not solved by tutorials or are only peripherally discussed far too late in the lesson plan.
It’s this sort of questioning and exploring character quality that gives this endeavour such potential, and it’s a (if not the) primary reason this is so interesting to me.

