if you're coding, I wouldn't even consider nano or pico.
I used to be /the/ most anti-vi person you could imagine, and I really did hate that editor.
Until I got a unix box that only had vi

.
As for the interface, vi doesn't realy have much of an interface to get in the way.
vim is a nice option as well, and in some ways I do prefer it to vi (vim = vi improved).
google for 'vi cheat list' or similar for a good 10 basic commands.
Personaly, I even got a book on vi once I realized it was the way to go, and now I don't use anything else.
Lots of programmers like emacs - but I'm not that far gone yet!
Bottom line though, vi will always do what you tell it. You can have it number lines, you can jump to line, indent, word wrap, etc. It defaults to not word wrapping, which I like.
What I noticed about the whole idea behind vi, is very cool. Take a somewhat normal text editor like simple text, or microsoft word. Using the mouse, you position your cursor within the document. You can select, drag, edit, delete, etc, all with the mouse. For the actual creation of text, you use the keyboard.
vi is the same way, only without the mouse. There is an edit mode, where you are typing the contents of the file, and there is a command mode, where you are commanding the text editor to do things like 'jump to line 453' or 'write file'.
To me, this is much more logical than trying to tie two very different functions into one by using control-x keystrokes. I mean, what if you want to easily insert a control code into a file?
Give vi a shot for a week, or even two days, use it exclusively, and I bet you'll switch.