The big switch : A different view at teaching Linux.
The first time I saw Linux was about five years ago, I believe it was a version 6.1 of Suse Linux. I remember being curious about the computer that was running it, and chatting up a colleague of mine (known as one of the company's uber-geeks) about what Linux was and how it worked and stuff. The story he told me dazzled me and for a while i really thought he was pulling my leg. He told me about a safe, secure and speedy operating system, that could run on machines varying from a “386” to a bigg-ass server. When I asked him what it could do , I knew he was kidding me, because he basically answered one word : EVERYTHING. My disbelief in an operating system that could be used for that enormous kind of diversity in purpose, gave him reason to explain to me just exactly how Linux was built, what the concept behind it was and how it was used. I sat down with him every lunch break for the next few days listening to his experiences with Linux and the things one could to with a “tux under the hood”. When the GNU license was explained to me, pointing out that the whole damn thing was free, I was ready to call the loony bin and have my friend planted in the funny farm. To those of you who come from a Win-world where Gates ( now Balmer ) is king and the only blue you see are the BSOD's on your computer, Linux DOES sound like an impossible utopia. And quite frankly , IT IS. There is one big big catch ! In order to protect its nest from predators, some birds make their nests high up in the trees. Natural predators do not have the ability to climb up so high without having to 1) Evolve some serious climbing skills 2) Overcome their fear of heights. And to those who are ready to make the switch to Linux , or are so fed up with the alternative there are some bounds to be broken. The big ass catch in switching from a “house of windows”' to “Torvalds Utopia” is having to drop the mouse. This trusty sidekick I have been using in my Windows based life for over ten years now (and that should be considered part of the human anatomy as an extension of the right hand) has been my palm-rest for almost half my life (i had an Amiga once, that one had a mouse too) To control an entire operating system via keyboard alone is too much to bare for some. They soon become 'ghosts in the shell'. And that shell is the other biggest scare of windows users. I started out with windows 95 where Dos was becoming a rapidly fading black-and-white-character-based memory. When i needed something i would just point and click. So when my Linux-geek-friend told me that i would have to unlearn everything i learned in a GUI enviroment, that i would have to drop my mouse and step into the dark void of bash.. I thought : I can do this ! Two weeks later, after hopelessly trying to understand the complex unix commands, getting trapped in VI once an hour and having to call for help to get me out, and basically getting NOWHERE.. I gave up. All the promises my friend had made, about what you could do with Linux , how fast it was , the great software you had etc etc seemed to reside on another planet. No way I could ever learn THAT. So I gave up and walked down the path of shame to my Windows workstation. Since then I have repeatedly tried to pick up Linux again. From downloading various versions to see which one i liked best, to actually BUYING three versions of Suse Linux, a lot of Linux books and taking classes about Linux in my local educational center.
And no matter where you go, or what you do : There are some things that are the same everywhere. Things you encounter when trying to work with Linux, and ways Linux is taught to students. I will some them up for they are the underlying fundamentals for this 'different approach' to Linux.
1)Linux is taught by Linux geeks.
1.Whenever you take a Linux course, you get an amazingly competent teacher who has been around Linux several years and knows the system through and through.
Granda mestake numero uno : Although its very good to have an experienced teacher for a class, the difference in competence between the teacher and the apprentice is phenomenal. The teach has mostly been around the bash for years, the student knows Linux as that “cute little penguin” Even when the class starts out pretty basic, explaining the GNU, looking at the filesystem etc etc .. the learning curve soon becomes astronomical and windows-based students get the feeling they are looking at the 'matrix code' while the teacher sees the real picture. (as explained in graphic below)
No one is to blame. Think about being a Windows system administrator who has been doing his job for years and years, and suddenly you have to teach “Basic Windows for the elderly” The biggest problem you are about to have is that you 'know' the system so well, you suppose that things like pointing, clicking, selecting, dragging, etc etc are second nature to all of us (like breathing) You subconsciously understand the Windows system for years and assume that your students do to. When teaching Windows classes I have seen this pitfall happen over and over. I guess you could compare it to letting a nuclear science engineer teach physics to four year olds.
2)The students have different expectations of Linux then the teacher.
1.Linux people are ALLWAYS saying : make the switch, dump windows, come join us. So windows users throw down their keyboards, erase their hard disks, curse Bill Gates and go to a Linux class. For what purpose ? To make the switch. To find an ALTERNATIVE operating system for their daily computer use. The teachers however come from a different perspective. They have been using Linux for several years now and are very accustomed to it. They mostly use it for professional use : Running Linux on servers, maintaining those server systems remotely, letting Linux do a lot of tasks automatically by scripting and so forth. Now I've been a Windows sys-admin for years and the one thing i like to do is : Letting my servers run as smoothly as possible, Try to manage servers remotely, Let server systems take care of themselves by automating and scripting several tasks so I can save time. Linux administrators are just the same. You script and automate things to make life easier. You don't create 4000 home folders by right clicking your desktop and choosing 'new folder' no, you make a script. Now the linx teachers are used to this scripting, its second nature, bash is their home and their Linux distro's run on servers. The STUDENTS come into the class not with the expectation 'I want to learn Linux to control a super cluster, to do that I need to know how scripting works, give me bash!' No , they are looking for an alternative to WINDOWS. An alternative operating system for their daily environment : A workstation alternative.
Ok some want to use Linux as a server too .. but thats not something you learn from the first day ( Your first computer doesn't feature a Windows 2003 datacenter server, now does it) So you have to learn to walk before you can run. But the first steps you learn to take are boring as hell : Making folders and shortcuts using the command line is incredibly dull : you end up thinking : I could have done this with a mouse 2000 times by now. And its true. Some things ARE done faster with a GUI. So the combination of 'boredom' (Where in hells bells am I ever gonna need THIS) combined with the steep learning curve (What the HELL is he talking about) and the lack of purpose (I am pressed for time as it is , I would like to learn something that I can USE ) makes students head for the door prematurely.
They teach you the basics before you learn productive ways to implement them. I would teach a Linux class di
fferently. 1St : State the purpose : We are gonna build a big ass file sharing computer for you home, on a 486. 2nd : Teach you how its setup 3rd : Teach the commands along the make (samba etc). Tell them about CHMOD when they NEED it (and are interested enough to learn it because they can USE it).
3.There are different ways to do things in Linux.
1.You are a tourist lost in traffic Rome. You end up in busy traffic, everybody honking their horns and swearing at you and you are really stressed. You don't undestand the language, its all so complicated etc. So you stop and ask for directions. The friendly police officer tells you how to drive to your hotel. Its a complex set of directions, but you think you can remember it. Before you leave , het stops you and gives you ANOTHER possible route (equaly complex) and then ANOTHER one and ANOTHER one… And afer 10 minutes you heard 15 ways to reach your destination, but are lost just the same. Its the same thing in a Linux class. When you see VI for the first time , its hard enough to understand. THEN they give you about 15 ways to open it , close it , save it etc and you get lost. There are several ways to do things in Linux. The problem is they always try to teach them to you at once. Result : Frustration/ Dispair / Give up / back to windows.
4.You gotta use it to love it.
1.Linux is powerfull, interesting, and possibly the only operating system that may one day compile the ultimate girlfriend. Its complex, its challenging and its cool. But when you DONT KNOW ANYTING ABOUT IT, and you are staring at a blinking command line cursor, all those things are lightyears away. In order to keep new users interested in using Linux is giving them something to WORK with. When i bought my first PC I was happy I could put my picture on the desktop. It was interesting, it made me want to learn more. Soon after that I found out that i could actually do useful stuff on my pc that would save me TIME. Then I learned ways to do things faster and more efficient and now I'm a Network administrator and let servers preform complex tasks. Just imagine that i got this VBS compiler for making server scripts THE FIRST DAY I bought my computer. I would have been lost and would have sold my pc a few months later cause I could not do anything with it. Its the same with Linux. I KNOW the power of Linux lies in the command line. But the big mistake that is always made is that the command line has to the BEGINNING of the Linux experience. I disagree. Let users USE their Linux system and when they have need for the shell to broaden their possibilities , THEN introduce it.
1.Linux is a very powerful efficient operating system. But we have to take a look at the audience out there. 95% of windows users are Workstation users. Do we tempt them to make the switch by promising them the ability to build a cluster server out of 16 PII300's and running Linux on them ? They will smile, be briefly interested and turn back to powerpoint. The 5% sys-admins out there might come and take a peek, but they already KNOW about Linux. So in order to bring Linux to the masses we are going to have to give them a workable alternative. To present Linux as an operating system they can use in there every day needs. Then we will get them interested , Then people will be tempted to make the switch and THEN they will in time learn bash and the truly powerful possibilities of Linux. It is my opinion that we, as Linux users have an obligation to everybody who has contributed to Linux : To make Linux mainstream. We keep on bitching about Windows and laugh at Windows-related misery. But when a Windows user wants to make the switch he has the hardest time finding out HOW. It is time we make Linux accessible to the Windows users out there. And to do that we have to come down from the ivory tower where “command line code” is the only true language. We have to let go of the arrogance that the command line is the only portal to the Linux world and that the GUI is for pussies. If we REALY want to make Linux accessible its time to present a workstation environment that will let people “make the switch”.