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

See how three solutions work together to help your teams have the tools they need to deliver quality software quickly. 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?

If you enjoy reading this article, you might want to subscribe to my newsletter and get a discount for my book as well.

Vlad Mihalcea's Newsletter

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.

If you enjoyed this article, I bet you are going to love my book as well.

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 how TDM Is Essential To Achieving Quality At Speed For Agile, DevOps, And Continuous Delivery. Brought to you in partnership with CA Technologies

architects ,tips and tricks ,teaching

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

Opinions expressed by DZone contributors are their own.

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

{{ parent.tldr }}

{{ parent.urlSource.name }}