I've been thinking about what some of the most important tools are for me while coding. Here's a few:
- Good IDE - syntax highlighting, integrated builds, source control integration, search facility, debugger and profiler built-in. I use VSTS.
- Source control/bug tracking system. I use TFS (typically a dogfood version of TFS).
- Windows Task Manager.
I use task manager to:
- View CPU usage
- Kill processes
- Start a new explorer.exe if I ever kill explorer.exe. Do this from the Applications tab.
- Process Explorer.
I use Process Explorer like task manager, but it can also:
- Find what process has a handle (e.g. a file) open. This can be handy if you want to delete a file but a process has it locked.
- Find out what DLLs a process has loaded
- List the environment variables for a running process
- Process Monitor
I use Process Monitor to record file, registry and process activity. This is very useful when debugging issues in complex programs like VSTS which have a lot of registry interactions.
Display debugging output from programs without having to attach a debugger. This is very useful if you want to run your program outside a debugger and still want to see all those debug prints.
- Media Player. I like to listen to music while I code.
- Outlook. It is somewhat sad that I spend a fair percentage of my day reading emails, scheduling or checking up on meetings and writing notes in an Outlook journal, but I do and so I have Outlook open all the time.
- Internet Explorer. I need to use MSDN a lot and do web searches. I also read RSS feeds of relevant blogs with IE.
- Remote Desktop. I work on different machines pretty regularly and Remote Desktop makes switching between machines easy.