Advice to budding programmers: Learn shell scripting

Shell scripting to programming is like salt to a meal. By itself it does not count for much. But its contribution is critical. You probably will never have a separate course in a computer science degree on shell scripting. You probably will never have a client who comes to you just for a shell scripting project.

But make no mistake, it is a nifty tool in the hands of developers. You can save hours of frustration with a tiny little script. You can do so many things with shell scripts that you would have to otherwise do manually that it should be one of the first things you learn after you have gained an understanding of your first programming language.

I am not referring to mundane things like 'rename all files that have an extension 'fck' in the folder called Aardvark that resides three levels below your home folder'. These kinds of problems are meant to teach you how to use shell scripts. I am referring to the daily things that a programmer must do.

For example, builds. Daily builds, like Joel so simply puts it are your friend. A lot of pain can be avoided with a process that includes daily builds. I can prove with statistics if someone gives me the money and resources to do so that daily builds in the process can reduce the time taken to deliver a project by as much as 25%.

By having a script that automatically checks out the code at a designated time and compiles the whole body of code, generating an installer (maybe this part in the later stages of the cycle) and emailing out errors to designated persons, a heck of a lot of pain can be reduced.

This is just one example. An entire backup process can be put in place by only using shell scripts. There are just too many uses of shell scripts for a developer not to know them. The mistake which many people make is to think about learning shell scripting when they actually come across a problem which they know can be solved by shell scripts. Too late!

So, dear budding programmers, take my advice - go look for a good shell scripting tutorial in another tab in this same browser window!


That is really nice advise. Also, note that its good to learn JPython, Perl,... like scripting technologies to quickly do something, or showcase something quickly.