These are paid, and not exactly a course but the Destroy All Software screencasts are great, and cover a lot of topics like shell scripting, VIM / EMACS, testing, refactoring etc.
Those are soo good. He has a talent for talking while typing and his style of presentation keeps you intrigued and content so densely packed it'll keep you rewinding saying, 'wait, wat was that?'