Tools of the Trade

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.
    image
  • Source control/bug tracking system. I use TFS (typically a dogfood version of TFS).
    image
  • Windows Task Manager.
    image
    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.
    image 
    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
    image
    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.
  • DebugView
    image
    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.
    image
  • 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.
  • Regedit.
  • Remote Desktop. I work on different machines pretty regularly and Remote Desktop makes switching between machines easy.