Monaco has good distinction between those characters, too.
One thing I find helpful for programming, beyond that, is narrow width. Courier is monospaced, but very wide. Monospaced fonts generally tend to seem wide, because they have to be big enough to legibly display characters with 3 and maybe 4 vertical strokes (M, W, @). If it can be more condensed, to fit more on screen, while still readable that's a plus.