Monday, November 15, 2010

Working from the Command Line

I’ve been involved in some recent curriculum discussions about an ICT end-device technician’s (think typical telecommunications and cable company technicians that come into your home) ability to work from the command-line on end-devices - things like computers, tablets, hand-helds, etc. Not routers not switches, and not servers!

There are two basic arguments - one side saying end-device technicians must be able to understand and work at the command prompt level while others believe modern operating systems do not require command prompt access the vast majority of time.

A couple of years ago I would have argued end-device technicians need to be able to work at the command prompt level. I’ve changed my mind though. I’m now sided with the group supporting the second argument - I personally don’t see the need to go deep into the command-line for end-device technicians.

I’ll use my own experience as an example of why I don’t think it is necessary. I’ve been using a Mac as my primary machine for the past 4 or so years, converting over in 2006. I lug a Mac everywhere I go, running lots of different apps and connecting to different networks in different ways. I’ve never once been required to go to a command prompt (using Terminal which is built in to the Mac OS) to fix something, make an installation tweak, connect, etc. I’ve been able to connect and get stuff working quickly and correctly (basically what most end-device ICT technicians do) without going to a command-line interface to get it done. All the applications I've needed to determine, test and troubleshoot connectivity are built into the operating system using Network Utilities. Modern end-device operating system user interfaces are so well designed now it’s just not something you need to do much any more. And then there’s the iPad and iPhone - if you jailbreak them you can get to UNIX command shell and run command-line utilities. I don’t know too many people that have done this though.

I do still find myself going to the command prompt on Windows machines but this may just be a force of habit, having moved from DOS to the Windows world over the years. It’s what I’m used to doing and I feel pretty comfortable with it. Almost everything I do though could be done within Windows, not using the command prompt.

It’s important to understand the command prompt is available and curriculum should cover basic usage. I can’t see spending a lot of time on it though.

Update on 11/15/10
Mike Q passed along a link to a nice post titled
The Designer’s Guide to the OSX Command Prompt. Check it out if you use Terminal or are interested in learning how to use it.

1 comment:

Sage said...

I have to agree. As user interfaces continue to improve, the need for rudimentary shell access becomes less essential, especially when the application or hardware you're working with was built from a GUI perspective to begin with.

That said, I do find myself pulling up terminal on my MacBook a lot, but this is mainly because I also use it as a development server on which I stage web applications for later delivery on linux boxes. (This, unfortunately, requires a lot of command line fussing.) One of the great benefits of OS X is that it seamlessly supports this capability when you need it. But, if you don't, you never have to touch it.

That said, I've also seen quite a few "tricks" on Macworld.com that often involve the use of the command line to toggle a hidden configuration variable. (Changing the bizarre realignment of the 3 window buttons in the new iTunes is a recent example.) Often times someone has written an app to do this for you, but that can be overkill.

So I would argue that knowledge of the shell environment is a vital skill for hardware and software developers. But I also agree with you... if developers do their job properly, this is one skill technicians might not need anymore.