Almost every programming tool has a command line version; many of which also have a gui version. It takes a lot of time and memorization effort to learn the different commands and various options/switches of the command line version. So  I have a couple of questions (which are not necessarily mutually exclusive): 1) When would you bother learning/memorizing the commands in the command line version of a tool which also comes in a gui version ?  2) What tools should I learn the command line version of ? .... compilers ?  version control system ? etc, etc
When to learn the command line version of a programming tool?
learning;command line
I can see two reasons why you should learn the command line options of a program:When you need to automate the program in some way - build scripts, batch processing etc.When you need to optimise the behaviour of the program - reduce memory footprint etc.As to which tools you should learn - well that totally depends on what you want to do next.