Part of being able to code is to work with the capabilities and limitations of the tools you use. Notepad's always been popular because it forces you to learn the syntax of the language you use and it has no "helpful" stuff to get you confused.
Personally, I like anything with intellisense and color coding for microsoft development. I'm used to it and code pretty fast with it. But I screwed up a lot while learning the stuff that supports it.
I like ultraedit for unix development, and have replaced notepad with it on my client pc. It's as easy or as hard as you want it to be. I have configs for a bunch of different languages with variations in color coding and code formatting for each language. Combined with built in ftp and a couple of secure shell mods, it lets me fly around sites making changes that are automatically backed up. Still haven't cracked all the features of it though.
And then there's emacs - God's Gift or Spawn of Satan.
Edited by dpyers