Here is a list of software that I use frequently, and encourage students to learn them or some equivalent:

http://cs.nyu.edu/~yap/prog/

Of all these productivity tools, there is one that I think every student should take to heart: learn to use a keyboard-based editor! Do not be fooled by the appeal of WYSIWYG editors (like "MS Word"). The appeal of WYSIWYG is its small learning curve. But editing in WYSIWYG mode requires you need hand-eye coordination -- this slows you down considerably! Plus you cannot invoke macros -- except pre-canned ones by slow drop-down menus, etc, etc. Which keyboard-based editor to choose? I highly recommend "gvim" (one of the many free variants of "vi").