Project Recommendations

Here are a few recommendations with respect to the projects. Feel free to develop the projects in any way you want, using whatever development tools you're comfortable with. But some of this advice might be helpful.

Development Environments

Use some sort of development environment. Syntax highlighting, project navigation, and debugging utilities are the relevant features here. There are a multitude of options available, including:

Source Control

Source control is a way of maintaining various versions of your code. Think about the way you program. Do you sit down and write an entire program in a single night? Unless the project is trivial, the answer is probably no. Using source control, after implementing certain features, you can create a "check point" in the code. Continue doing this as development progresses. Why is this useful?

  1. It helps in debugging. If you find a bug in your code, it might not be immediately clear when the bug was introduced -- especially if features tend to overlap. If you encounter a bug, you can revert to previous versions of the code & check to see whether it persists. Much easier than pouring through thousands of lines with no direction!
  2. It provides a natural backup mechanism. rm can be pretty unforgiving at times.
Various source control utils: Might I note that for SVN and CVS, exist very nice GUI tools called Tortoise[CVS|SVN]. Back