Contents
Share the post with your friends!
8 not so obvious characteristics of an effective programming mentor.
The work system in Devs-Mentoring
From the very beginning of building Devs-Mentoring.pl, I had one main assumption. I wanted to provide future programmers with a place, even an asylum, where they would learn programming more effectively under the supervision of a personal trainer – a programming mentor. We spread the philosophy of approaching each student individually. The mentor is to act as a personal guide and sensei (like from the Karate Kid movies) for each student.
Therefore, I - being a company manager - try to select people for the team who have certain features necessary to be an effective mentor for programming cadets. Our mentoring is based on sharing your experience and professional knowledge with people learning programming. A good mentor should be able to resolve any of his/her student's programming issues, direct the student onto the right learning path, help in choosing a specialization and answer every important question in the context of future work in IT.
In this way, he or she shares commonly unavailable knowledge and tips on how to show their best side in the industry and is, above all, a catalyst in the process of searching for a coding job by the student. Each of us is well aware of what the current IT Junior position market looks like - tough competition and the number of candidates significantly exceeding the number of vacancies. Therefore, cooperating with a personal teacher - a professional programmer - is an ideal opportunity to go a step further than other aspiring Juniors and, at the very least, effectively prioritize the learning and build a portfolio and CV in line with the expectations of future employers.
So if you are wondering what to expect from a mentor who will take the reins of your development and lead you from start to end in your effort to switch industries, go ahead and read the below, less obvious, features of each of the mentors working for our company. Or maybe you would like to join our team and are wondering if this profession is the right fit for you? You will also find the answers below!
Not so obvious characteristics of our programming mentors.
1. The mentor has highly developed soft skills.
We realize that a mentor's highly developed technical skills are one thing. However, an equally important criterion for a "good mentor-programmer" is whether he is enthusiastic about imparting knowledge and is simply able to get along with the mentee. We do not want the supervising of our students’ development to be facilitated in a rigid way resembling a corporate setting.
Of course - we must clearly define the goals to be achieved and coordinate the student's work, but it should be performed in an atmosphere of friendliness and lack of tension. The mentor is supposed to fulfill the role of a "programming guru", but at the same time be a "friend in the industry" – someone the mentee can turn to for advice on any development problem. Therefore, the mentor must have a good understanding of the student's needs and emotions to be able to fully adapt their work methodology. All this effort is aimed at taking full advantage of the potential of young programmers.
2. He can deliver solid feedback and doesn’t beat around the bush.
The mentor significantly accelerates your programming development. That is why it is so important that he/she is able to constantly correct your learning process - through solid and constructive feedback. A good teacher cannot beat around the bush and praise your every (not necessarily good) move. He must have the courage to clearly communicate to their student in some situations that, for example the learning strategy chosen by the student is not working out or that they must spend more time on individual work, etc.
When talking about feedback, we also mean all the conclusions, hints and suggestions for changes after the Code Review of the student's projects. The goal of the mentor is to make you into a competent programmer, not a person who just "slaps together" blocks of code they don’t really understand. If a functionality you have written is less than optimal, and your code violates the SOLID or GRASP rules, the mentor must pinpoint that and suggest to you what should be changed to improve your solution. So your teacher must be consistent and thorough and never turn a blind eye to the imperfections in your project. I am aware that every unfinished detail may have a negative impact on your future career and put you in a not necessarily good light in the eyes of your future employer.
3. He patiently directs and does not provide ready-made solutions.
When you have a problem grasping a given concept or coding a working function, the mentor is the first person to passionately help you solve the problem. Help coming up with a solution, however, must occur by tossing tips and suggestions, and not by providing a ready-made solution. It’s a fact that a person learns better from their own mistakes and memorizes different solutions more effectively by discovering and understanding the traps and pitfalls of their original approach. 99% of cases we’ve encountered so far show that the student's inability to solve a given problem results solely from selecting the wrong strategy or incomplete understanding of a given concept. The hints sent by the mentor on a regular basis are usually enough for the trainee to solve the problem on their own. Thanks to this, the student is motivated that the working code was created only using their keyboard, drew more conclusions and learned more thoroughly the reasons why his previous solutions did not work properly.
4. Puts clear and achievable goals in front of the student
The mentor is your master and your guide in your efforts to switch industries. You, as his student, only need to be diligent in your work and achieve the goals set by the mentor. Therefore, your teacher must get very familiar with your predispositions and time capabilities during the mentoring. All this so that you that the goals they set are realistic and achievable. The weekly goals must be individually tailored to each student - it is obvious that a person who learns programming can do more without having to work at the same time than a student who programs "after hours" and is often tired after their full-time job duties.
The mentor's task is therefore to lead you towards the established goal, regardless of the conditions or the amount of time you have at your disposal for learning. To do that successfully, they must properly establish a learning path for you, so that you can maximize the results of your work and get the most out of mentoring.
5. He is available not only on-live calls
According to the philosophy of our company - the mentor’s job is to support and help the mentee also outside of the live online meetings. They do so in such a way that the student feels that he or she has a person above them, who is available to them all the time and is willing to help or give expert advice continuously. An exclusively available IT professional is undoubtedly a treasure trove of knowledge and generally unknown good programming practices, so we strive to ensure that you can maximize the benefits of working with us. There is nothing worse than waiting for a response for a few days when you are stuck with a given problem and can't move on with your project. Therefore, when working with our mentors, expect that they will support you in a continuous and uninterrupted manner, as much as possible (you need to remember the mentor also has responsibilities and a full-time job).
Therefore, upon establishing their cooperation with you, the mentor informs you about their availability for ad hoc support. Rest assured though - your sensei will not allow you to face a problem on your own, without support.
6. He is able to motivate a student should that be required. To the mentor nothing is impossible.
This principle is related to the previous point where we said that a mentor should have highly developed soft skills. Your teacher is the main person who believes in your success and won't let you let go easily. They are well aware of the fact that learning to code means constant ups and downs, therefore he will motivate you during your more difficult moments and encourage you to not give up, but instead work even harder and keep developing your skills. You will be surprised, but often the role of a mentor is to have an honest conversation with you and answer various inaccuracies or doubts related to learning programming. You can count on them when you need a pep talk, or if at some point you stop seeing the point of your development (often for trivial reasons). It’s your mentor who is able to look at your learning from an unbiased perspective and provide you with the most objective feedback and, as a result, encourage you to continue working (when there are no serious objections to continuing learning).
7. A mentor is not afraid of criticism. He/She has a very transparent approach to their work with a student.
The mentor knows that there are as many ways of working and learning preferences as there are people. That is why we want our cooperation with the student to be as transparent as possible and be done in a way that ensures our mentees are never afraid to tell us if something’s eating away at them. The task of the mentor is to adjust the work system to your preferences - so that you can get as much out of the mentoring as possible. Therefore, your guide realizes that they must respond to even the slightest remarks and suggestions on your part to adjust the methodology of work.
Right from the get-go, the mentor will communicate to you that for effective development, work transparency is of the utmost importance. We need to clearly formulate expectations and possible disappointments (both at the mentor-student and student-mentor level) so that the work is as fruitful as possible and so that you can get as much out of it as possible.
8. He tries to implement as many real-world industry practices and standards in their work with the student as possible.
We want to get you used to the work of a professional programmer from the very beginning. Therefore, a mentor often needs managerial skills to effectively manage your work and bring your working style closer to what is the norm in software houses or larger corporations. Therefore, they know how to effectively carry out joint project work in the spirit of the most popular Agile methodologies (I.e. SCRUM), and teach you how to effectively estimate tasks. In this way, they train you - the future programmer - not only in the area of technical topics but also help you stand out on the job market and find your way in various commercial projects.
Of course, each mentor is also characterized by several more obvious features, such as:
9. Passion and flair for teaching and imparting knowledge.
10. Drawing satisfaction from the achievement of the student's goals.
11. Patience, calmness and, if necessary, the willingness to explain the same thing multiple times.
I must admit that getting such people on board is not the easiest job, but we have a way. Most often, mentors are former students who have already achieved sufficient mastery in their profession and meet all the aforementioned requirements. As a result, mentors are people who are well-known to us and with whom we have been cooperating continuously for many months, therefore we know that in addition to effectively transferring their knowledge, they will be able to get along with the mentees without any problems.
Wish you all the optimal!