Programming Tools

By Alex Allain
Every 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.


A compiler is a program that lets you turn your source code file (the file in which you write your program in C or C++) into an executable file that you can run on your computer. To program, you must have a compiler.

For my information on compilers, check out the compilers page.

You may also want instructions on using a compiler.

Build tools

Using a tool like make can help reduce compile time and simplify the build process.

Text editors

A text editor is a program that allows you to create a text file that contains your source code. A text editor can be as simple as Notepad or as complex as 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 debugger is a tool for tracking down problems with your code -- bugs -- that result in unexpected behavior of a running program ("at runtime"). A debugger will let you get inside your code -- you can run a program in a debugger and temporarily pause execution to see what line of code is being executed, the values of variables, and other information that will help you tell what your program is doing and why it isn't doing what you expect.

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.


Check out our recommended book series 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.