Raising the Bar for Linux Trainers
Key #4: Keep Your Knowledge Current
I stepped away from Linux system administration and training for a while to pursue a different business and investment opportunity. When I came back, a few things had changed. Due to package management utilities like apt and yum, dependency hell was a thing of the past for the average user. All the previous courses I taught before my hiatus focused on rpm or dpkg, and I got quite good at showing students how to resolve dependencies. Now, my experience was outdated and not as useful.
This taught me a valuable lesson. Don't let the only time you touch Linux be when you're in the classroom. Don't wait until you're preparing to teach a course. Stay current. The single best way to stay current is to have real work to do. So look for some clients, large or small, that need system administration help. Build a sandbox out of an old PC or a VPS. Try to learn a new programming language on a Linux server. Do whatever it takes to keep your experience fresh.
The result is that you'll understand what students are going through in the real world. For instance, I discovered the change to resolve.conf management in Ubuntu 12.04 the hard way. (Sure, I could have read release notes, but who has time for that?) After editing the resolv.conf file several times with no success, I finally spent some time reading how to use the resolvconf utility. Now, instead of looking at students with a blank stare when they mention this change in the most recent LTS version of Ubuntu, I can speak intelligently about the topic.
Am I up to date on every distribution and every change? Obviously not, but I'm not in the dark either. According to students, training managers and several of my consulting clients, that is what makes a good trainer great. They stay active the field. Sure, you could spend all of your time in the classroom, make good money and keep students relatively happy. But, you'll feel more knowledgeable and be better able to accomplish the previous three keys if you spend time practicing your craft and staying current.
Never Forget Where You Started
Think back to the first time you sat down at a Linux or UNIX console. Mine was around 1996 in a summer class at a local college—IRIX on an SGI Onyx. I found the unfamiliar interface intimidating. I've now come to love the terminal.
If you felt any measure of trepidation your first time in a Linux or UNIX classroom, remember that when you step in the room to teach others. Be sympathetic. Make the environment relaxed. People don't learn well when they're fearful. Crack a few jokes (not too many, you're not a clown). Bring in some donuts mid-week. Tell one or (an absolute maximum of) two personal stories. Become a real person to the students. Let them see you as a new friend who sincerely wants them to be comfortable in the new operating environment. It helps tremendously if that's how you really feel.
Think back to the worst training experience you ever had in Linux or UNIX. Mine was in 2002 at my first job out of college—IBM Systems Group storage development labs. An engineer I worked with had me type long commands with multiple options, redirectors and pipes...with no explanation of what each fancy symbol did. I did my best to write each one down. I spent hours frustrated, not understanding why I was typing these long commands and experiencing unnecessary failure.
If you've ever asked the question, "What does that command do?" or "Why must that option come last?", and you didn't get a clear answer, remember that when your students ask you questions. Better yet, be clear enough in helping them understand concepts so they don't need to ask. If teaching a complicated topic, walk them through each step and help them understand what is being done and why. Don't move on until you're satisfied that a majority of the students understand. If the majority are still confused, you didn't explain the concepts well enough and you're not done.
Think back to the most tedious, irritating, monotonous task you ever did only to find out later that it could have been made much easier if you had been properly trained. Mine was working with another engineer who wrote down 60–100 worldwide port names (similar to a MAC address) for several external storage devices then typed each in manually when configuring LVM on HP-UX. He typed a command to get the code from the system, wrote each 16-digit hexadecimal code down on a piece of paper, and then typed back in manually as an argument to another command. If any mistake was made, the command took 1–2 minutes to alert the user to the error.
If you ever realized that the right training could have made you love scripting and learning new Linux utilities after it was too late, and you wasted eight hours of your life doing something the hard way, make that experience different for your students. Many of them already work hard. Help them work smart too.
Instead of manually typing in each 16-digit hexadecimal code for each of the
LVM configurations I mentioned earlier, a Marine taught me better. He was
former special forces and a disability caused him to return to a lab job.
His military training had taught him to work efficiently and not waste
effort. When he showed me the right way to accomplish the task with less
effort and less human error, I was amazed. It was the first time I saw
grep and a for loop used in a practical way. He made me love *NIX.
Instantly, I realized how to teach other people. Work on real problems.
Show real solutions. Teach concepts.
By engaging the students, teaching concepts and keeping our real-world knowledge fresh, we can be better professionals and better trainers. So if you've been thinking about becoming a trainer or you already have some training responsibilities at your job, follow the keys above. You'll provide quality experiences to those you train and save the next generation of Linux disciples the pain many of us have experienced.
Teacher image via Shutterstock.com.
Darren Douglas has been a Linux admin, advocate and trainer for ten years. He is Principal Consultant at Synse Solutions.
- Readers' Choice Awards--Nominate Your Apps & Gadgets Now!
- Memory Ordering in Modern Microprocessors, Part I
- Tech Tip: Really Simple HTTP Server with Python
- Source Code Scanners for Better Code
- diff -u: What's New in Kernel Development
- RSS Feeds
- Returning Values from Bash Functions
- Non-Linux FOSS: AutoHotkey
- Security Hardening with Ansible