Teaching Linux/Unix Basics to Microsoft Junkies?
flupps asks: "I've been asked to hold a two-day crash course in a class of students that currently are studying to become MCSD certified. I'm looking for ideas how to set this up. I was thinking about starting with some general file system descriptions, where to find what files, the man pages, the tab-button, etc.
After that move on to some of the daemons and just explain what they do." He's got at least one idea to start with (below), but what must-have skills or demonstrations would you add?
I also plan to set a database program in VB (one of the certificates in the MCSD suite) against a MySQL or Postresql db and show that there are free alternatives that works as well as SQL server.
What would you think could be a good addition to teach them?
This is in no way meant to be a very advanced course, but I want to show some of the excellence of *nix and why you sometimes can save time and stability and maybe make them interested and read up more by themselves afterwards.
Any suggestions very welcome.
Show them the ease of modprobe, the powerfulness of iptables,[...] mounting of ISO-images(!). [...]Inprint in their heads that the machine does not need to be rebooted after updates and installations, ip-adress-changes and change of configuration.
/etc, /etc/sysconfig, /etc/$SOFTWARE_NAME, /opt / SOFTWARE_NAME, /usr/etc, /usr/local/etc, ~/.$SOFTWARE_NAME, /usr/share/$SOFTWARE_NAME ... but no registry. Woot!
They are developers, for crying out loud. They'll start running after 5 minutes of iptables; why not show them gcc?
Show them the [...] the geniality of config-files, and NO REGISTRY.
Look, config files in
Don't get me wrong, I'm a 100% unix guy; but it seems to me that exactly this kind of arguments makes people stay away from linux. You don't have to crush Windows, you have to give them reasons to make them beleive in linux, and to want to hop in the wagon.
-- No sig today
I'm not saying that the Win NT / 2K / XP command line is as powerful as a UNIX one, of course, but:
1) Windows has tab completion. It's just not turned on by default. (Do help cmd from the shell in Win 2K (at least) to get a description of it. You can also configure the completion char to something other than tab..)
2) cat exists, it's called type
3) grep exists, it's called find. If find isn't sufficiently powerful for you, you can always get grep for Windows.
4) piping and redirection works more or less exactly like in UNIX with the same syntax even
Of course all of this stuff isn't as commonly used on Windows as it is in UNIX, but it doesn't mean that it's not there.
Start with the familiar: ;-) or LBreakout)
1) Install a distro (preferably one that will have the easiest time with the hardware)
2) Configure a windowing environment (prefereably one that looks the most like Windows)
3) Show them an Office suite (preferably one that's comperable to MS-Office)
4) Fire up some awesome games (preferably XPilot
5) Start up a variety of browsers (preferable w/ Quicktime, Flash, RealPlayer, XMMS)
6) Configure and use an e-mail client, Jabber/Yahoo/AIM client (Gaim's good)
7) Spend some time on XMMS with various skinns -- and point to http://www.jazzradio.net/ and say, "This is coming from Germany"
8) Show them Palm Pilot support (Jpilot's the best)
9) Show them Quanta's HTML, PHP, SQL, Java and C/C++ syntax coloring
10) Show them a GUI file manager (e.g. Konqueror, et al)
Last, but not least, show them SWAT, Webmin and other easy-to-use administrative tools. You want to leave them with the sense that the Linux environment will be friendly, not ominous.
Let them at least start with some motivation to want to learn more!
Most of the comments I've been reading have been going off about administration and configuration. These are people going for a developer certification. That means they probably already know a lot about programming, and they probably already know a fair bit about programming under Windows.
Going in there and giving them a Linux sales-pitch would be a waste of their time.
Database connectivity sounds like a cool thing to demonstrate, you might want to demonstrate the basic development tools and documentation available at their disposal. Show them an easy editor to use.. something consistent with the editors used in the Windows world, show them gcc and some neat stuff like xxgdb. The ones who are clueful enough to care will pick it up when they leave.
IMHO the most important thing to explain to them is software licensing. It is quick, but when they realize that if they like to develop software, they'll clue in that developing their apps for Linux is easier.
A few tiny things like that would probably take up all the time you have. Cygwin might help them know how to develop apps from Windows to target Linux boxes.
My experience with MCSDs and other Windows developers is that they don't really care about the OS, they just care about writing apps and using OSes to make money by solving problems.