1. FTP access
2. Linux/Unix/BSD command line access
3. SSH/Telnet/Remote access
4. Samba file access
7. At least 2 monitors
8. MySQL Query Browser (that can access database)
Listed above is a list of what I believe to be essentials for any decent programming environment.
After I reconfigured my home environment to pretty much contain everything listed above, coding has become a lot easier.