In this article, I will present my thoughts and practices that I use during mentoring. They result from four years of experience in mentoring. It took me a lot of time to develop this approach to my students in my work as a mentor. I cordially invite you to read it.

For many people, after reading this article, two issues may be surprising. The first one: the mentor only shows the path and supports you in acquiring knowledge - the mentor does not teach. The second issue: the knowledge transferred is limited to what the mentor knows and can do - we will not find out more. What is important to me is the relationship I build during joint mentoring activities - technology is just a tool, the most important thing is people. Knowledge and skills will be acquired along the way.

Mentor-Student relationship

When starting mentoring with a person who contacts me,at the beginning I think about the mentor-student relationship that will be created during our joint classes. I try to take on the role of my future student. It is worth for them to also look at mentoring from the perspective of the mentor. In this article I will try to explain the process of transferring knowledge from both sides.

Of course, I could immediately indicate the starting and ending point of the path that should be followed to become a Junior Java Developer. I could describe the formal learning framework and get down to business. Fortunately, I am far from this approach, mentoring classes are individual and tailored to the student's needs. I have an action plan prepared, but each point is implemented at a pace appropriate to the student.

The pace of knowledge acquisition

Example, if I see that a given person absorbs the knowledge provided well, we simply start a new topic faster - there is no artificial "wasting of time". However, if a given issue poses a problem, we slow down and focus on it, explaining the topic from various sides. In the perspective of the entire process of transferring knowledge, the moments of deceleration and acceleration are averaged, but the student acquires knowledge at his or her own pace.

Conventional starting and ending point

The starting and ending points are arbitrary. Nevertheless, I have a coherent vision and development path towards working as a Junior Java Developer in the "industry standard", i.e. knowledge and skills that are currently applicable in various companies. I do not have a rigid schedule, only designated main points on the path to changing profession to Junior Java Developer. In my mentoring, I distinguish two paths for future junior Java programmers. The first one: Support path of the future Junior Java Developer, second: Knowledge path of the future Junior Java Developer.

My mentoring practices

Below is a list of my main thoughts and practices that I apply during mentoring:

  1. I deliberately use the phrase "transferring knowledge" instead of "teaching."
  2. To better understand the people to whom I imparted knowledge, I took on the role of a student myself.
  3. The problem in understanding what the mentor is talking about does not lie solely on the student's side.
  4. The mentor only shows the path and supports you along the way of acquiring knowledge.
  5. The mentor supports the process of independent problem solving.
  6. The knowledge transferred is limited to what the mentor knows and is capable of.

Transfer of knowledge

I deliberately use the phrase "transferring knowledge" instead of "teaching." In my understanding, knowledge is transferred through practice and experience, using real examples, while I understand teaching as "learning by heart" theories from the textbook. We were taught at school; in the past, students were given practical knowledge about the profession they were to perform in the future. The very term "knowledge transfer" changes the perspective, location and purpose of acquiring knowledge.

Practical example

Przykład, wiele osób, które zapisuje się do mnie na mentoring, mówi mi, że „jest zmęczony, zmęczona uczeniem się z internetu”. Moim zdaniem, na ten stan rzeczy składają się dwa czynniki. Pierwszy, to właśnie „uczenie się na pamięć”, wiąże się, to z tym, że wiele kursów nastawionych jest na przekazywanie wiedzy teoretycznej w „podręcznikowy sposób”, czyli rozdział po rozdziale. Drugim czynnikiem jest ogrom wiedzy dostępnej w internecie w formie artykułów, video, podcastów.

Taking on the role of a student

In order to better understand the people to whom I impart knowledge, I took on the role of a student myself - "I signed up for tutoring". In my opinion, I have set the bar high for myself, as most people who come to me for mentoring do. I started learning mathematics "from scratch" and quantum physics, so that I could eventually deal with the topics of artificial intelligence (AI) and machine learning (ML). I know that for many people changing their current industry to the IT industry, it is not an easy process.

Practical example

Example, as mentioned above, I am learning under the supervision of a mentor, you could say, from scratch. Why from scratch? I abandoned (mentor's path) school memorization of patterns and formulas in favor of mathematical proofs and the practical application of knowledge. Thanks to this, I could see what it looks like to acquire new knowledge, solve homework tasks from the student's perspective and struggle with problems in understanding a given issue. This perspective has greatly helped me improve my craft as a mentor.

The learning problem lies on both sides

When imparting knowledge, I assume that the problem in understanding what the mentor is talking about is not only on the side of the student, but also on the side of the mentor himself. That is why I dynamically adapt the methods and way of transferring knowledge to a given person. Knowing that my way of transmitting knowledge may be imperfect and may not work for every person, I arm myself with a lot of patience and humility.

Practical example

Example, many times I hear "I don't understand it", then I wonder how I can convey the knowledge better. One way is to find a common language, if a person works in logistics, I use examples related to shipments and parcels. Another method is for me to repeat the same thing several times or paraphrase it. I encourage to take notes and learn from the official documentation of a given language, or programming tool.

Determining the path

You need to realize that thementor only shows the path and supports you in acquiring knowledge - the mentor does not teach. Therefore, I do not teach theoretical knowledge in a "textbook way", i.e. chapter by chapter, fragmenting individual elements. The student acquires knowledge based on a larger project, which is part of the future portfolio. The whole thing is set in the context of real work as a Junior Java Developer, just as the employer currently expects.

Practical example

Example, I often hear: "Won't you teach me programming in Java?" or "Won't you create a project for me?" In both cases, the answer is no. Of course, it's not like I won't present theory and practice for a given issue - there is theory and practice, you have to start somewhere. The point is that most of the work in acquiring knowledge is done by the learner. I support this process with interesting examples from the life of a real programmer.

Supporting independent learning

The mentor supports the process of independent problem solving. I inoculate the so-called "forensic computer science", I encourage you to review the existing source code and track the course of application operation. I show how to search for information using the right keywords entered into an Internet search engine. I explain how to act when "the mentor is not at hand", you can always read the official documentation and/or read the "built-in documentation" in the form of javadoc. It is best to acquire knowledge based on practice and our mistakes. We write code that contains errors - I have heard many times, "Are you sure you know Java?" - in which I ask you to point to the element underlined in red to see what the message is and find its solution yourself.

The knowledge transferred is limited

Please remember that the knowledge transferred is limited to what the mentor knows and can do - we will not learn more. Therefore, without further improvement on your own, you can limit yourself to one programming language, e.g. Java, or a selected technology, e.g. web applications. The student's independent acquisition of knowledge could focus on a new language, e.g. Python, or technology, e.g. cloud applications.

Summary

To sum up, in my opinion, the starting point for successful mentoring is a good mentor-student relationship, which will, on the one hand, allow the mentor to effectively transfer knowledge, and, on the other hand, will help the student go through the knowledge path of the future Junior Java Developer.

Zdjęcie autorstwa Yan Krukau z Pexels.