Writing Effective Technical Training Material


With Before /After Real World Examples


Too often students are presented with difficult concepts upfront and they are discouraged and drop out. However, if concepts are presented from simply to complex, students are encouraged to continue and get the motivation to continue once they are well along the path of completion. I often tell my students that when you first learn a new technology it can be very frustrating. However, once you become proficient, it will become very rewarding. I call the concept moving from the frustration zone to the fun zone. This is where I love to live.
To put together effective training material requires a lot of time. What I see too often it a lot of good material but not well organized or not much thought given to how to make it effective to the end users. I often REWRITE training material 4 and 5 times before I consider it ready for prime time. I do this in a systematic way. For example, I spent quite of bit of time creating my first pass on training material. Then, I teach it to my students which in turn provide valuable feedback on how to make it even better. This approach goes on for several iteration of the training material. I call this “define and then refine”. In the end I have a well-crafted set of material that can be published.
You don’t want to “dumb down” technical writing for everyone. You will “insult the intelligent” of advanced users or bore them. However, if you make the technical material to complicated, you will frustrate a beginner user and may scare them from really pursuing that field. Too often, I see that if material was presented correctly, it may have resulted in a person continuing in a particular discipline like programming. However, because it was hard at the start, they abandon the study altogether.


What I see too often is there are a lot of good instructors that can explain theory very well but where many of them miss it is not explaining how to apply concepts to real world examples and making it easy to learn and retain and perform which is what meaningful learning is all about.  A test of meaningful learning it that if you have to constantly refer back to a book, video or  online training to do something you are not learning you are simply following steps on how to do something. This is akin to a chef. If you see a chef reading a recipe on how to make something at a restaurant in the back while you are ordering your food, it is a good indication that he does not know his skill well enough.
We use several progressive techniques for BOTH beginner and advanced users.

The reason for this approach is that you don’t want to frustrate or waste the time of an advanced user on simple concepts or  things they already know while at the same time you don’t want to scarce off a beginner user about advanced concepts that he or she may not be ready for or familiar with.
While it is better to teach theory first and then application of that theory, there are times when BOTH can be coupled together and taught at the SAME time and can be more effective.

Code here….
Code here….
CODE EXPLANATION:
Code Explained here

Code here….
Code here….
CODE EXPLANATION:
Code Explained here


It is best to place needed content upfront and then progressive add optional content at the end of the instructional material. That way, the user will have the important stuff completed without getting frustrated in the process and he or she will have a working material at any point in the process.
Too often, I see that a user cannot see that “fruit of his labor” until they have completed five pages of programming. Not a good technique.
For example, while building a mobile app, you could start with what is need (e.g., navigation, layout, etc.). They enhance the app with dialog boxes, better graphics, faster processes, menus, different views, etc. using a technique similar to what is called in the industry progressive enhancement. 
Another example: While the concept of Lifecycle is important to Android development, it is something that should not be discussed with a beginner developer.

Don’t Repeat Yourself (DRY)

There is an acronym that is used in the teaching world called DRY—Don’t Repeat Yourself. This is an effective way to create technical content. For example:
Concepts that has already been explained should degrade progressively. For example, when a concept is first presented, it is explained fully.  However, when the same concept is explained later is it assumed that a user already knows the detail on how to do it.
Before:
Write a long explanation of something
After:
Write a short explanation of the same thing.

Writing Effective Technical Training:

While many writers will tell you that you should avoid using bold or capital letter to highlight words in a sentence, this is true for normal reading. However, when it comes to technical reading or better stated technical instruction where a user have to “read and do” what they are reading then having these format can be very helpful to focus the reader to the key words in a sentence while having to perform a series of task as well as read.
Make it plain
When there is a possibility for ambiguity, make it plain:
Before:
Type the following “.getText()” to the end of the expression.
After:
If you typed “.getText” to the end of the expression the code would not work. That because it was not clear to the user that the quotes should not be included.

Type the following “.getText()” with the quotes to the end of the expression.
Before:
Double click on the button.

After:
If you are talking  beginner users, you may want to be more specific  because if they may attempt to double-click using the right button.

Double-click on the left mouse button.

Don’t go long
Too often an instructor or training material will go a long time before checking their progress and then when a user check the result and it’s not correct he/she will get frustrated having to scroll through a lot of material to determine where the mistake was made.
Before:
Write long passage of instruction
After:
Write the same passage by inject CHECK POINT in several places.
Don’t add a period (.) at the end of a command that you want the user to copy into an editor.
For example: Copy x=5;. Even though this is a complete sentence with a period, it will yield an error because of the period if copied and pasted into a code editor and executed.
Create a drill down method for advanced user so they don’t get bored with what they already know.
For example:
Information here (more info if needed)
Consolidate if you can.
BEFORE:

AFTER:
On the Mac, replace ALT key with OPT key and CTRL key with CMD key unless stated otherwise.

Do NOT use one version for both the beginner and advanced user. If you do so you will confuse the beginner user and bore the advanced user.
Do a basic version first for beginner without using advanced features and then do an advanced version so that he or she can choose to skip the basic technique that he or she is already familiar with.

If a concept is REALLY important to remember regarding the subject matter you are teaching, you may want to emphasis that fact in a different format, etc.
Before:

After:

Don’t Repeat Yourself (DRY)
Before
XML (Extensible Markup Language) – is a markup language that is used to define a set of rules for encoding a document that is both human and machine readable.
After
XML (Extensible Markup Language) – defines a set of rules for encoding a document that is both human and machine readable.

 

Teaching and Training Techniques (T3)

Overriding Principle: We value your time, so we will use the following techniques to streamline the learning process with:

Add: The minor exception to the rule is if you purposely hide the selection if it is in the way. To do this, you can press the CTRL+H key or select View > Hide from the menu. However, the selection is still active. Add notes from “Learning from the Joes”.

Object, Object, Object Everywhere

These tutorial are bite-size training that remove all of the “fluff” to give you the real “stuff” that you need to learn quickly and effective.