How to teach a (Junior) Developer better problem-solving style

2 crucial techniques

Photo by <a href=”https://unsplash.com/@officestock?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Sebastian Herrmann</a> on <a href=”https://unsplash.com/s/photos/problem?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a>
Photo by Sebastian Herrmann on Unsplash

I would like to start this article with one of my favourite quotes:

In our everyday busy life we tend to lose focus on what is really important when teaching others and we give away a lot of fish and this comes with consequences. At work, this approach does not really help in a long-term perspective. A person receiving help will most likely not spend time on finding “a way the teacher actually got this fish” but I do sometimes ask my students to analyse the way that helper approached a problem that this person could not fix, if that person was present while the teacher got to the solution. This happens when I really can not make time to give a “proper” lesson. What happens further If we just give away fish is that the person will still not know much when a similar kind of problem occurs.

In most scenarios I make time to focus on showing how to approach the problem or somewhat force a person to find the solution by asking the right questions. A trivial start to this is to give a question back “And what do you think?”. Going deeper and deeper by asking more questions we are able to spot a bottleneck or knowledge gaps in a person’s thinking patterns or even better we allow the person to come to this conclusion on his own.

A lot of troubles come also with people’s assumptions.

I see a lot of Junior Technicians getting stuck with finding the solutions for wrongly defined problems.

Example situation:

A person says “I am stuck building a batch ingestion process” — and when I ask why do you actually build a batch ingestion process, I hear the person saying that somebody else told him that there is an API limit.

My next question is — “Did you actually check this with the official documentation?” — No.

This is a clear assumption problem and not spending enough time on preparations. I advise even taking a pen and paper in order to write down everything we know about the problem and if we are not completely sure about something, put a question mark right next to the assumption and get 100% trustworthy information.

Extra plus is that we, as teachers are getting a serious insight into the student’s approaching and thinking style.

Having this all put together, we may easily eliminate root causes and the focus is brought to gathering all information first and solving it as the next step. Having this reverted focus we are getting more ideas and more work put upfront in order to have less useless work done later.

If we are focused only on solving the problem from the beginning we will most likely catch the very first probable idea and continue from there.

As my mom used to say “you don’t buy shoes in the very first store you visit”.

Another approach is to use show-explain-show_me_back technique.

The idea is that we first quickly show how to solve a given problem marking key moments. As the next step, we do the same but this time adding explanation why we do this this way and not the other. As a final step, we ask the student to show to us what we have just shown to him.

This technique makes us sure that the person got it all right. The final step is crucial as we have a chance to spot the gaps and fill them in with knowledge.

This scenario is also very typical, it is a very tricky part for Juniors to constantly tell that they still do not understand something so they tend to tell us that they understand everything we say. Using this technique we can be sure that the person understands what we have just explained.

Try to use the above-described two techniques and I am sure you will notice the difference! If you are a Developer try to increase the time spend on preparation and ask often : “Can I be completely sure that…?”

Data Engineer

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store