[1]https://github.com/dwringer/emacs/blob/master/.emacs#L120-L1...
[2]https://github.com/dwringer/emacs/blob/master/.emacs#L210-L2...
[1] What I mean by this is that characters (and especially symbols) are easily identifiable, which usually means they should not have much unnecessary detail. They also should not bee too thick or thin. I mostly use Fira Code currently, which is like Fira Mono but with ligatures.
Probably not as much anymore, most IDE's in the past 5-10 years have default font and color schemes that are pretty good for most people. It used to be that the first 30 minutes after installing any IDE would be spent customizing the color scheme. And since no IDE's had export/import functionality, and most programmers having almost no background in graphic design, they all looked hideous. Today, the only thing I feel compelled to change is selecting whether I want a light or dark colored theme, and they're all way better than anything I could come up with myself.
FWIW, after trying out many fonts (some are mentioned here) I settled on Cousine and PragmataPro depending on the terminal application. One uses Bash, other one Fish. One's for serious work, one's for quick work or backup. Etc etc. Both have the same color palette though (Solarized Dark).
A good font is clearly readable, even when bold and small.
A bad font can be headache inducing, and requires extra brainpower from the reader, especially when spelling is important.