Tips for teaching Linux to beginners? [closed]

Solution 1:

The most important thing to do in the early stages is to avoid being technical at all. If you start with anything even slightly complex you will put them off from the get-go.

These people probably already use Windows or MacOS with absolutely no idea how it works or how to install it if it isn't already provided, so first show them that Linux can be that comfortable too. For example have Ubuntu (or your preferred choice of desktop oriented distribution, Ubuntu certainly isn't the only one) pre-installed on the machines that they are going to be using and hand out a bunch of Ubuntu USB sticks for them to plug in and run for if they are going to be using their own machines.

Show them that starting the OS and accessing the web browser, mail client and office applications can be just as easy as with any other OS. This will reduce the "fear of alien territory" and give them a good place to start from which they can progress to installing new applications and changing the configuration of existing ones. Again, try not to ramp up the complexity to quickly or you will put off those who are not generally technically inclined - if you go too far too fast it will seem far too abstract for them, so take small but concrete steps so they learn a little at each step and can build on that in the next step rather than trying to get there head around several new things at once.

On slowing yourself down, you could try the public speaker's "tell them what you are about to say, say it, then tell them what you have said" rule with slight variation "tell them what you are about to do, do it to show them talking through the processes as you do, then explain what you have just done". Try not to be too repetitious, of course, and this only works in small blocks of information, but the explain-do-reenforce method can work well.

Also, talking through a process while you do it as an example will artificially slow you down - avoid the temptation to throw in several commands and clicks in one go and explain them afterwards, do each step at a time and talk in between. This works particularly well if you are about to ask them to perform the same task on their stations, as this becomes part of the explain-do-reenforce process (you do+explain, they do step-by-step with you repeating what was said in the example before, then repeat key points and ask them to talk about it (i.e. "any questions?" or "how does that compare to what you do with ?" or "do you think you could use this for XYZ?").

Solution 2:

My tips are:

  1. Capture their interest by showing Linux do something (three or four more commands in a series of pipelines tac| awk| sed | grep |sort |uniq. Then show them how each one works.
  2. Get each person to tell you something they want to achieve on the course and help them work towards that objective.
  3. Get a good grasp of your training materials and stick to just enough for you to get the course completed.
  4. Encourage questions and try things out with the students individually (sometimes it's best to put a certain amount of time on the course aside for this stuff).
  5. Look at 'classic' book like "The Unix Programming Environment", "Programming Pearls", "Unix Power Tools" and see how they teach different concepts.