Bug in the system
Computer science is in the core curriculum. In theory, anyone who graduates from high school should know the basics of coding.
So why is there so much demand for courses, programming schools or boot camps?
Problems arise at the very approach to teaching programming, which should be a practical subject, unfortunately not always is. Another problem is that the universal education system is not prepared for cooperation with specialists - practitioners for whom sharing knowledge is also a natural way of self-development.
As a result, in addition to the group interested in programming, who will undertake further education in this field, there are also people who need an additional impulse: modern teaching methods implemented by practitioners and, above all, going out of the abstract zone to concrete, indicating the applications and use of the code as a tool.
On the one hand, the answer to this need appears in a modern approach to programming, already present in kindergarten. On the other hand, in the programming schools, boot camps or courses mentioned above. Here, however, another staircase begins from student motivation through teaching methods to what students actually need from their mentor.
Educational reality
Konrad was the leader of my team. Many years of experience and knowledge has determined his position in the company and the project. In line with his beliefs, he decided to share them with the younger generation. He ended up in high school as a specialist - he quit after a year.
The current education system is broken. In many cases, teachers cannot cope mentally with the fact that specialists, entrepreneurs and engineers are indispensable in some areas of education - e.g. learning programming. Students very often have no respect for teachers and science. The system in which they operate unfortunately does not promote specialization and the quality of the acquired knowledge. Quality very often takes a back seat.
When Konrad was fighting during 45-minute computer science lessons, I was finishing my second year of work in a private programming school. I found it because, as a programmer, I felt that I needed to develop further.
Self-development opportunities
The range of self-development opportunities for programmers is quite broad. Reading (books, blogs), listening (audiobooks, podcasts), watching (YT), working in IT projects, independent creative work, public speaking or teaching others are just some of the things you can do to expand your skills.
Teaching others develops knowledge, technical skills and, essential in the programming profession, soft skills.
The problem of changing the career path
Various people choose programming schools. Each of them has their motivations and expectations towards the mentor and school. Many of them come to the training with a specific idea of what a programmer's job looks like. These ideas are often based on myths circulating on the web, such as 15k-programmers, stress-free work, demanding professional group, etc.
A career change is often motivated by wages, self-development, the need to start a career from the beginning (e.g. after a longer parental leave), curiosity, and other people's success stories.
Unfortunately, the threshold for entry into the IT industry is relatively high (despite seemingly low). A programmer is one of those professions in which a break in development can eliminate us from the labour market. The knowledge that you need to acquire at the beginning is enough to complete the program of several years of study. However, this will still be just an introduction.
Moreover, you never know whether the chosen path of change will be the right one. My position is that it is worth trying. However, I realize that not everyone can take risks - because they have family, obligations or other private reasons.
As a mentor, I felt that honesty was a fundamental thing that I owe to the people who trusted me and started their learning process with me. Whenever I felt that someone would never be a programmer, I tried to say it honestly and delicately.
First meeting
When you meet someone new for the first time, you feel stressed. Recruitment interview, approaching a girl at a disco, asking a neighbour in a tracksuit from the bench next to the block to keep an eye on the bike - gives a whole range of emotions, but stress reigns supreme among all of them. My first meetings with students were also always very stressful. I felt I had to give my best, get liked, listen to the needs and motivations and, most of all, understand the other person because I was going to work with them for the next few months.
My students' perspective is a little bit tricky since they know almost nothing about the world they want to enter. They also do not know me - the man who will introduce them to this world.
From the very beginning, it is worth taking care of the relationship between the mentor and the student. Building trust by opening up, showing that you are a regular person with stronger and weaker sides is one method to keep in mind. My recipe for a good start in such a relationship is a lot of smiles, honesty and creating an action plan, the so-called contract.
Contracting
A contract is an unwritten (but very clearly articulated) agreement between the student and the mentor that defines mutual expectations, cooperation, and helps to set boundaries (e.g. the mentor is not available 24/7). It also gives a professional character to the mentor-student relationship. It sounds scary, but such a contract very often saves you in difficult situations.
Process of learning
The first stage of education is euphoria and a lot of motivation. The beginning is relatively easy. We are happy with the decisions we have made to change. Most things are going well. Especially since we usually start learning relatively easy things like the basics of HTML and CSS.
With time, motivation decreases, euphoria fades, and the topics discussed become more and more difficult. The first serious crisis appears with the introduction of GIT, terminal support and the basics of programming languages (in my case JS). With the crisis, the first doubts arise - whether the chosen path is the right one.
A good mentor should sense whether the problem is temporary due to the work overload or whether the person should quit. Sometimes it can help change the narrative (looking for analogies of technical terminology in the real world), referring to historical events in the industry. Sometimes you have to turn into a coach/psychologist/friend who will help the student decide the next steps. Another feature that definitely helps in crises is flexibility - giving yourself more freedom to choose topics according to the student's needs.
Goal
What is the student's goal? Change of job? Well, not always. Sometimes it is a matter of learning something new. There have been times when, after the course, I heard that programming teaches you to think, but the work would be too demanding.
Programming courses are challenging and should be for people who are taking their first steps in this industry. A programmer's work is a constant struggle for personal development - the more experience, the more interesting projects and better earnings.
So why teach others?
Konrad lost to the system. He has returned to a programmer's role - but his teaching mission continues to smoulder in him, but he implements it differently - how? I think that's a topic for a different story.
I, on the other hand, quit my job in the programming school after four years. I teach individually - because my experience shows that this form offers the highest effectiveness.
There is only one conclusion: sharing knowledge is fun, develops a lot and allows you to meet many fascinating people and different points of view on seemingly straightforward subjects.