You can build the best product in the world, but it won’t be helpful if people don’t know how to use it. Too often, companies don’t invest in quality training, thinking instead that listing product features is enough and that those features will speak for themselves. But a menu of features doesn’t tell users when to use which tool and why. If you don’t give people a comprehensive understanding of how a product works, they’ll only skim the surface of its full capability.
Even when companies do provide training, it’s often not as effective as it could be. If users are only given lists of features, many will scan through until they find what they're looking for and miss other important features that would be helpful to them. Good design helps, but it’s not enough. A product might be intuitive to use, but users need to understand it broadly so they can intelligently decide how to use specific features. Many products include more than one way to do something, such as ingest data into a database. Good training helps users make informed decisions as they figure out how to use various applications.
At InfluxData, we launched InfluxDB University to provide free training on our products. We’ve invested in education because, as a company, we value the people who use our products and want to help them use the tools we’ve created to their greatest effect. So far, we’ve released more than a dozen foundational courses to help learners work with time series data. While building our courses, we identified a few key principles that contributed to their success.
4 Ways to Help Software Developers Build Their Skills
- Show, don’t tell.
- Null values aren’t helpful.
- Get to the point, but share in context.
- Courses must have meaning and value.
1. Show, Don’t Tell
Stylistically, our courses try to avoid walls of text and long videos where someone explains a feature at length with no breaks or changes. We don’t want learners to get distracted, and continuous streams of new information make fully processing everything difficult. In badly designed courses, sometimes learners have to reread paragraphs or replay videos several times before information sinks in, which is frustrating and might lead them to abandon the course altogether. People have all kinds of different learning styles; although dense blocks of information may work for some,courses should feature different kinds of media so everyone can learn from them.
So, we make sure to include lots of hands-on work in our courses. Completing exercises while following along with a video helps people learn and understand skills better than simply passively watching. Further, perhaps counterintuitively, giving people the chance to learn through failure helps them internalize important concepts. When something goes wrong, it creates a strong emotion, as does fixing the error, and this can help people form lasting memories of the correct way to do something.
2. Null Values Aren’t Helpful
Using nonsense values in sample code is common practice to generalize lessons. Ultimately, however, this practice isn’t helpful. Beginners are already working hard to understand new code structures, and including words that don’t mean anything as sample inputs make scripts harder to read. Avoid anything that needlessly makes learning more confusing in training materials.
In our courses, we have a policy to always use real-world terms and examples. This practice helps learners understand the structure of the code, script, or query and to see how examples map to what they’re trying to accomplish in their own applications. We also have example data they can work with to make following along with our code even simpler. Learners can easily compare sample metrics with their own unique data to see what functions fit their purposes.
3. Get to the Point, but Share in Context
Many developers, especially in the open-source community, are resourceful and good at adapting. They like to get their projects up and running as quickly as possible. Sometimes, implementing a new technology most effectively takes an upfront time investment. If developers don’t take the time to learn how a product works before getting started, they often run into roadblocks and return to courses many times looking to solve specific problems.
This isn’t the most effective way to learn something, however. If developers know how to use the product in the first place, that saves them time and lets them make smarter decisions. Education needs to be designed to convey its utility so developers know it’s worth their time to take a course.
Our courses have roadmaps so developers can see what they’ll be learning and why it’s worth it to get through the course instead of looking for scattered solutions to problems they run into. A good training program needs to give learners an understanding of the technology from end-to-end so they can make better architectural decisions from the outset.
4. Courses Must Have Meaning and Value
Tests aren’t fun to take, but people are more motivated to learn if they get something that can show others what they’ve accomplished, such as a digital badge or a professional certification. Certification is an industry worth over $2 billion, so there’s clearly demand. Learners appreciate certification because of the job opportunities it provides.
If courses are too hard, they’re miserable to take, but if they’re too easy it doesn’t mean anything that someone’s taken them. When creating learning material, you have to strike a balance so that completing a course gives learners a sense of satisfaction without being unpleasant. A challenging course can actually be more satisfying for learners than a simple one. People like feeling like they're getting something out of their work, and they're using their time to learn something valuable at a deep level. Putting in some time studying and completing courses or taking certification tests gives learners a sense of accomplishment. As humans, we attach more meaning to things that are harder to achieve. Reaching the right balance in training and certification programs is an important component to incentivize learners to keep advancing.
Putting Our Values Into InfluxDB University
We launched InfluxDB University because we want our users to have the best possible experience using InfluxDB. The courses we’ve launched so far help train developers to work with time series data and understand how to use the language Flux. We value our learners' time and respect their attention. We want to give them clear information efficiently that helps them understand the big picture of our product, so they can build successful applications from the get-go. Since InfluxDB University is a new and ever-evolving initiative, we continue to strive to meet these ideals and learn from our community along the way. The key values outlined in this article are the north stars we’re constantly aiming for.