forget Lisp, SICP, et cetera. /prague/ will tell you that functional programming will help you be a better programmer. this is not true at all. it will just help you use Emacs better [sage]disgusting i know[/spoiler]. SICP should be renamed ``101 ways to write bad code.'' learning assembly taught me more about software than anything else. so i'd start there.