Mentoring - First Steps
A few months ago I was asked by someone - let’s call this person L for Learner - who has never programmed before to mentor the first steps into software development. L wants to get into data science, and the programming language mostly used in this field is Python. I consider Python as the right first language to learn and agreed.
My first step was to get an online book for the first steps. For Python, I settled for How to Think Like a Computer Scientist, which is an accessible introduction into the language. For the theory, I agreed to be available online by messages and video calls.
I have to admit that I never mentored absolute beginners. In the role as a team lead, I was training other developers, but they already had some knowledge of software development and at least the basics of computer science. With L this was of course different.
Why did I agree to mentoring L? The idea of knowledge transfer was on my mind for a long time. In our daily work as software engineers there is not much time to do this and companies don’t pay for it during a project contract - most of the time they don’t even want to pay for writing extensive tests. My current situation working on a book and my products allowed me to spend some time on mentoring, however.
The beginning was very encouraging. L was moving fast and seemed to understand quickly what the book presented. As a side note, L is 30 years old and was a good student at high school with interest in mathematics and other science subjects. Circumstances prevented L to get into university.
We had lots of talks, and I had to pack out my computer science 101 knowledge soon. It was very refreshing for me to satisfy L’s interest because I felt that there was a will to learn. Also, the first programs were excellent. L has talent.
Soon the online book I suggested was not enough. L turned more and more to YouTube and was watching videos there. The quality of freely available videos is sometimes tricky because especially with Python we have to deal with different versions of the language that are not always compatible. When I suggested Stack overflow, I got my first surprise surprise. L responded, I have seen that, and I am using it.
At that time, I thought more professional learning material is needed, and I sponsored a SafariBooksOnline account. There L could watch videos and dive I to a whole world of Python books. I recommended some and L started to study more.
After about three months of mentoring, I saw a drop of engagement by L. L asked fewer questions, and I was feeling that motivation was missing. So I invited L to general talk about the journey so far.
In this talk, it emerged that I was too slow in my efforts. L was learning quickly, and I tried to slow down deliberately. However, then I noticed that L was moving very fast. Suddenly we discussed functional programming and the difference to Object Oriented Programming and about other very technical topics. I was astonished about the knowledge that L could amass in such a short time.
When I asked L about the quality of my mentoring, I got the answer: “It’s good, but you are not challenging me enough.”
It made me think, and we agreed that I would give L problems to solve and do exams.
Conclusion so far
L is now working on a little game, similar to the famous Snake game. Still, I have to curb the enthusiasm a bit not to start with the UI, but to focus on the mechanism of the game first. This exercise may not have anything to do with data science, but it is an excellent way to apply Python knowledge.
My first steps as a mentor were - for me - mixed, but I think I have done a not too bad job. It will be time soon to give the training of L into more professional teaching hands, however.
I have asked L to give a short statement about what I wrote so far:
I was encouraged to take a turn of my career to learn programming. I did put full force to want to know what is programming and coding. I have been teaching solidity right now and not having any background of programming has been such a learning curve way through. I got interested and fascinated to read, watched video to gain more knowledge of programming. There is much more I don't know and understand yet. But there is more I know now compared from the beginning.
In a few weeks, I will write another post about progress.