Programming ToolsEvery programmer should have the proper tools. A good compiler, text editor, and debugger go a long way toward simplifying the mundane chores of programming and can help save time hunting down a strange memory error.
For my information on compilers, check out the compilers page.
You may also want instructions on using a compiler.
Build toolsUsing a tool like make can help reduce compile time and simplify the build process. Emacs or Vim.
A good text editor goes a long way toward simplifying the task of programming. You cannot write C++ code in Microsoft Word (without great difficulty). For more information on why, and on what features to look for in a text editor, check out the text editor overview.
Some good text editors for programmers include Vim and Emacs.
A good debugger will help you pinpoint where your bug is located within your code and give you extra clues, such as what values each variable contains, that can help you figure out what mistake you have made. Many compilers come with built in debuggers, and GDB is also available as a stand alone program; you can also read our GDB tutorial that takes you through the basics of using GDB.
Memory profilers such as valgrind or Purify can help you debug memory leaks. Valgrind is free, but Purify will cost you real money. From C++ Beginner To C++ Expert. In addition, good references and interesting problems to challenge the mind should sit on every programmer's bookshelf. Although Google answers a lot of questions, the depth of books on specific topics or on computer science as a whole, such as the well-known work by Donald Knuth, The Art of Computer Programming, can often help when you're stuck looking for the right algorithm, or just need some inspiration.