If you're not using the best tools for the job, you're wasting time and effort. We'll use this space to recommend tools that you might benefit from using. This section will be growing significantly in the near future.
Editors
You can write programs in notepad, but we wouldn't recommend it.
- vim
Vim is a modal editor that improves on the defacto Unix editor vi. It has a
steep learning curve, but is extremely powerful and some variant is
available on almost any architecture and OS.
- emacs
Emacs is an extensible editor written in lisp, which can do nearly
anything.
IDEs
When you are too lazy to create your own Makefile, Ant file or Rake file.
- Eclipse
One of the best, albeit resource hungry, IDEs out there. Eclipse has excellent built-in support for Java: refactoring, intuitive package management, debugging, etc all housed under a nice GUI. Via plug-ins, you could also use it for C++. Cobol, or even Fortran!
Code Beautifiers
Source Control Systems
Why use source control? Look no further than Eric Sink's
web blog. Eric Sink is an alumnus and currently works for SourceGear, located at Champaign itself!
- Subversion
A compelling replacement for CVS. If you have never used any source control system before, consider trying Subversion.
- CVS
Venerable source control system that most open source projects are based on.
Automatic Documentation Generators
Why create duplication by maintaining a separate documentation from your code? Generate documentation from the code itself!
- Doxygen
Doygen lets you generate documents from the comments in your code. It supports some tags that let you format your documentation. Documentation can be generated as HTML, Latex, PDF, etc. Also, it generates graphical call graphs for you. If you have a server, you can even put the documentation online and search through it.
- Javadoc
Already using Java? Then adhire to the javadoc comment convention and let javadoc generate the documentation for you. The official Java documentation was generated using javadoc. Here is what it looks like.