Raising the Bar for Linux Trainers
You can write shell scripts in mere seconds, hack the kernel in your sleep and perform other feats of Linux wizardry—but can you teach?
I love teaching Linux. Whether teaching introductory-level courses to people new to Linux or teaching advanced best-practices courses to experienced administrators, I hear common feedback. Most Linux instructors are good, but we can be better. There are common problems with Linux training that most of us have experienced or will experience at some point. I'm convinced that there also are common solutions. After hundreds of hours spent in the classroom, there are a few key concepts I'm convinced will make committed Linux instructors as awesome as the operating system we teach.
If you're interested in taking your practical experience to the classroom or if you already have a role as a mentor or teacher, here are some keys that will help you improve your students' experience.
Key #1: Treat the Student Like a Professional Client
Linux is no longer a technology for counterculture geeks and hackers working in their parents' basements. Linux professionals, including trainers, must present themselves as real pros. That means taking an interest in all students' successes and engaging them as clients. I do consulting as well as training. No good consultant would think about walking into a client's site, opening a terminal and typing away at random. First, the consultant asks questions about the client's objectives, understands the environment and only then starts working. A good trainer approaches the classroom the same way. We don't just open the book, fire up the slides and go through the motions. Instead, we focus on the students.
Focusing on students means understanding what they need from the course. Why are the students in the course? What are their learning objectives? How can they leave feeling that the course was a valuable expenditure of their time and money? A good instructor finds the answers to those questions and then tailors the course to fulfill the students' expectations.
A trainer also has to look inward. A real professional trainer never appears condescending or detached. The pro trainer fosters an inviting classroom environment that makes all students relaxed and comfortable to ask questions. We've all experienced bad training. The instructor was perhaps more concerned with showing how much he or she knew rather than with transferring the knowledge. Or, the trainer might have just read slides (in monotone..."Bueller, Bueller, Bueller") for hours.
I've been the student in those situations. In either case, the instructor has forgotten a key element of the classroom experience. What he or she has forgotten is that a classroom environment is designed to be interactive. A good instructor expects to have a conversation about the topic with the students.
Key #2: Teach Concepts, Not Commands
An increasing number of enterprises are adopting Linux-based technologies for mission-critical business functions. As they do so, more existing system administrators are transitioning from other operating systems like Windows to Linux. With a growing number of students coming from Windows system administration, we have existing knowledge on which to build. We should use that to our advantage to help students understand the Linux-specific applications of standard system administration practices. If we focus on the common ground we already have with the students who have professional IT experience, we automatically become better instructors.
One of the biggest mistakes made in Linux training is just teaching lists of common commands and options. Teaching that way is boring and ineffective. Teach concepts. An experienced Windows admin knows how to manage users, modify file permissions and schedule automated jobs. So, instead of jumping directly to describing useradd, chmod and cron, speak first about the common concepts involved in accomplishing these tasks in either operating system. Help the students understand the philosophy behind the way things are done in Linux. Only after those discussions, introduce the commands.
The command line is very intimidating for Linux newbies. What makes any subject less intimidating to learn is understanding the patterns involved. By "patterns", I mean the common concepts that carry throughout any application of a particular topic. For instance, most good Linux courseware starts with an early module discussing the command-option-argument pattern of the Linux command line. A good instructor helps the students apply that to the lab environment. Let's take that idea a step further.
For instance, several potentially destructive file management commands
mv) have an option to make them less destructive. The commands have a
common option to make them prompt the user before completing a destructive
action. The option is
-i. Of course, many of us who have used Linux for
many years take this simple fact for granted without ever wondering why
is the option used. Take a look at the man page. It states that
the command in "interactive" mode—thus the prompt.
You might ask, "Why does it matter?" In this example, it
matters, because if
we're teaching a class of people who are used to being prompted before a
file deletion takes place, they will be wondering, "How can I make this
command prompt me in case I make a mistake?" By knowing what the
stands for, the instructor can explain the reason or pattern for the
option's behavior. When you know why
-i was chosen for an option, it
becomes much easier to remember.
The same can be true of using
-v to make commands
-h to make file
sizes human-readable and so on. Explain what the option means and how to use
it, and provide examples as patterns for students to imitate. Demonstrating
and explaining the pattern to common command syntax is the first step in
transforming the command line. A good instructor transforms an
intimidating black terminal with a blinking cursor into a powerful ally of
the Linux newbie.
Key #3: Bring Real-World Experience to the Classroom
There is a disturbing practice in mainstream IT training. For many technology fields, certification equals experience or know-how—not so in our world. Certification is not how we measure experience in the Linux world. Linux experience is measured more by how many distributions a person can fluently administer, whether or not they are intimidated when they have to compile a binary from source, or if they are able to script repetitive tasks easily.
My point is, it is not uncommon to see trainers for many of the large training companies have a very long list of industry certifications ranging from basic desktop troubleshooting to "security" certifications. Adding a Linux certification to a long list of certifications does not make people experts, nor does it make them qualified to teach. It simply means they were able to pass another test. Even worse, if the exam does not have any practical portion where examinees are challenged to accomplish various administration tasks, it proves only that they are good test-takers.
Real work experience matters more than passing any exam. Although I carry a number of Linux certifications and teach many certification classes, my ability to answer the real-world questions my students have comes from my experience in production environments. Being able to turn slides about scripting into an interesting dialogue about working efficiently in Linux comes from long nights in the data center. Explaining how to use Linux in real development projects comes from working in development labs using Linux.
If you intend to begin teaching Linux, please don't try to know everything required to pass some certification. Instead, become more of whatever you already are. By that, I mean if you are the person who can write complicated iptables chains on the fly, think about how you can teach that to others. Perhaps you're the "go-to" geek for resizing logical volumes or attaching SAN storage. Figure out how to take the experience that has made you valuable in production environments and transfer it to the training center. Sure, there is a necessity for an instructor to be familiar with all the topics of a course; however, the value of the instructor comes from his or her depth in a few topics upon which he or she can expand and make a real impact for the student.
Darren Douglas has been a Linux admin, advocate and trainer for ten years. He is Principal Consultant at Synse Solutions.
|Non-Linux FOSS: libnotify, OS X Style||Jun 18, 2013|
|Containers—Not Virtual Machines—Are the Future Cloud||Jun 17, 2013|
|Lock-Free Multi-Producer Multi-Consumer Queue on Ring Buffer||Jun 12, 2013|
|Weechat, Irssi's Little Brother||Jun 11, 2013|
|One Tail Just Isn't Enough||Jun 07, 2013|
|Introduction to MapReduce with Hadoop on Linux||Jun 05, 2013|
- Containers—Not Virtual Machines—Are the Future Cloud
- Non-Linux FOSS: libnotify, OS X Style
- Linux Systems Administrator
- Validate an E-Mail Address with PHP, the Right Way
- Lock-Free Multi-Producer Multi-Consumer Queue on Ring Buffer
- Senior Perl Developer
- Technical Support Rep
- UX Designer
- Introduction to MapReduce with Hadoop on Linux
- RSS Feeds
Free Webinar: Hadoop
How to Build an Optimal Hadoop Cluster to Store and Maintain Unlimited Amounts of Data Using Microservers
Realizing the promise of Apache® Hadoop® requires the effective deployment of compute, memory, storage and networking to achieve optimal results. With its flexibility and multitude of options, it is easy to over or under provision the server infrastructure, resulting in poor performance and high TCO. Join us for an in depth, technical discussion with industry experts from leading Hadoop and server companies who will provide insights into the key considerations for designing and deploying an optimal Hadoop cluster.
Some of key questions to be discussed are:
- What is the “typical” Hadoop cluster and what should be installed on the different machine types?
- Why should you consider the typical workload patterns when making your hardware decisions?
- Are all microservers created equal for Hadoop deployments?
- How do I plan for expansion if I require more compute, memory, storage or networking?