Over a million developers have joined DZone.

Teaching is the Best Way to Learn

DZone's Guide to

Teaching is the Best Way to Learn

· Agile Zone
Free Resource

Learn more about how DevOps teams must adopt a more agile development process, working in parallel instead of waiting on other teams to finish their components or for resources to become available, brought to you in partnership with CA Technologies.

Software development is all about knowledge, and nowadays the amount of things a programmer needs to know skyrocketed. Most of the time developers are hired by matching their current skills with some project requirements. The project eventually ends, and the developer is assigned to a new project, sometimes using different technologies than what he was previously hired for. What’s the policy for training this guy to deliver his best the soonest possible?

Usually training and coaching are left-out, so each programmer is on his own. Every time we leave things to chance a huge risk is implicitly undertaken. I believe we should give more to training and coaching and see them more of an investment rather than a spending.

There are multiple ways of training a team:

1. Hiring an external consultant

If you have a budget for hiring external trainers then you may as well consider this option. Unfortunately not all small companies are willing to dispense their money on external trainers, especially since you can’t easily quantify the Return on Investment.

I’ve been a attending such trainings, and while during the training sessions, I get the feeling I understand everything, I later find out there are many questions to be answered. But the training’s already over, and the true value of a training comes after you digested the given information.

2. Using a skilled employee as a trainer

If you have an employee with a strong background on a particular field you may ask him to prepare and present a training material to the rest of the team. This is way cheaper than an external trainer, but there are other subtle advantages as well. Training is beneficial for both the trainees and the trainer. I remember I was told during my high-school psychology classes that teaching is the best way to memorize information (you retain up to 90% of what you teach). So the trainer gets well-trained himself (by simply preparing the didactic material) throughout this process.

I’ve seen an interesting outcome after giving presentations. People come afterwards for counseling and this puts you into a coaching role too. This has a snow-ball effect, since trainees become more interested in what you’ve been taught them, and you also get to deepen your knowledge on that subject and to improve your training skills too.

3. Distributed training

I’ve been having this idea for quite some time, and after browsing the internet I found out it’s been already applied for teaching foreign languages, so why not Learn by teaching?

My idea is to encourage all employees to teach others. It may be on their best skills or even on new concepts. If you can afford, you can even think of giving a bonus to each trainer, or simply allow him to spend some of his daily working time for preparing his lessons. This may be fun, especially if your daily routine got boring lately.

This works even if your team requires adopting a new technology which is not easy to grasp (e.g. Scala). All team members should be involved in learning the basics, but each one dedicates himself to studying thoroughly on a particular subject (e.g. Mixins). This way we distribute the learning effort among team members, hence parallelizing and speeding it up,  while obtaining better knowledge acquisition.

Discover the warning signs of DevOps Dysfunction and learn how to get back on the right track, brought to you in partnership with CA Technologies.


Published at DZone with permission of Vlad Mihalcea, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}