Lessons from Training Software Developers (A Year in Review)

Lessons from Training Software Developers (A Year in Review)

What a year this has been. If you would have told me five years ago, “Hey Hemory, in five years you are going to be a Senior Software Developer Trainer for the biggest mortgage company in the world and cofound a start-up centered around training diverse populations in the C# and Java language”, I would have asked you what’s a C# and a Java because I barely know Spanish.

This last year has allowed me to prosper as a developer of software and people, in ways I could have never imagined. My dream has always been to take my talents for coaching individuals and my passion for technology and apply them in a way that brings purpose in my career and value to the lives of others.I have learned many things over this last year, and I wanted to share my thoughts and I hope that you find some value in my experience.

Put Yourself in the Shoes of the Learner

As a trainer, the goal is to take an individual from lacking skill and progress them into having the skill. This means more than just explaining and showing how to do something, hoping the learner can somehow absorb your knowledge. It means more than just spewing off a vast amount of information and hope that something sticks. What it means is that you, the trainer, must facilitate an experience that will give these individuals the platform to cultivate these skills. One of the most difficult barriers as a trainer is to break down complex concepts in bite-size chunks so that the learner can consume the bits of information. What I found to be the best way to overcome this barrier was to reflect on how it feels to be a learner. What were the concepts my teacher/trainer failed to communicate with me effectively? What opportunities did they miss in the facilitation of my learning experience? Questions like these brought a different perspective to my content and my style of training.

The other opportunity this mindset enabled was the ability for me to revisit these concepts with a different purpose. When we are first learning a concept, our mindset is usually “let me get the most out of this to be the most effective”. It is one thing to be able to put things in action. It is something totally different to be said when you are trying to communicate with another how they can put the thing into action. You must alleviate all your assumptions and effectively communicate each step of the process. Putting your self in the “shoes of the learner” gives you a front seat in the learning experience. Now you have the opportunity to anticipate specific questions, develop strategies to better communicate a complex concept, and cultivate analogies to make the material more relatable. In addition, you now have the opportunity to relearn the material with a different set of eyes.

Be Humble and Open

When you are the trainer, you are often revered as the subject matter expert. After all, you are the one who is facilitating the training. But the opportunity that many of us fail to take advantage of is the fact that each training is the potential for us to grow as a trainer. Your learners will come from all walks of life with experiences ad perspectives outside the realm of the life you have lived. Each new person provides the opportunity to see a concept from a new perspective or to learn a different approach to solving the same problem based on the experience of someone else. Often, I have found myself learning new concepts about the C# language or ways to code specific algorithms that I never would have thought. The learning environment you are creating should be one of humility and openness. An environment where everyone can learn, even the trainer.

Trust the Process

This is something I preach all the time to new learners of software development. Often, when you are thrown into a new challenge, you want to know the bigger picture and all the details in between. As a new learner of a programming language, it is often better to get pieces of that bigger picture in chunks. Just enough of the picture to get you to the next stage of the training. I, as the facilitator, understand this process and because I have seen it work with the hundreds of learners I have trained, it’s not always easy for the learner.

I found myself also battling my own words of “trusting the process”. Often I get feedback from the learners, early on, regarding wanting more complex examples, or wanting to dive deeper into a concept that is several steps ahead in the training. This feedback has caused me to forget the process that I have developed and I question the framework of my training. But I too have learned that I must trust my own process, at least until it fails me. As a trainer, you must have confidence in your content, the organization of that content, and the training you are facilitating. As the subject matter expert, you should have the bigger picture in constant focus and your learners should have faith that you are leading them down the right path. So take the feedback, consider it, but be confident in your process.

Vulnerability Leads to Teachable Moments

This leads me to the most valuable lesson I have learned this last year. A trainer should find a balance between confidence and vulnerability. You want your learners to see that you are confident in the subject you are teaching but you also want them to realize that you are human, just as they are. As a fellow human, you will make mistakes, and you should embrace this as apart of your training culture. This level of vulnerability gives the learners permission to make mistakes and you the opportunity to show how you rebound from those mistakes. Often I have found that those mistakes I have made in training have been valuable teachable moments and impromptu lessons that have had more of an effect on the learner’s understanding of the content.