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:
- Eclipse, which is quite nice for Java
development, assuming you have access to a workstation with excessive
memory. For extensive development, this is my tool of choice.
- Emacs is quite
popular in computer science circles. JDEE
is recommended.
- Vim is the natural foil to Emacs, but
doesn't have anything fancy for Java in particular. Despite the arcane
interface, skilled hackers are known to be inordinately productive with this
editor.
- For Win32, there are a multitude of niche programming text editors,
including UltraEdit32, Textpad, et ceteras.
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?
- 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!
- It provides a natural backup mechanism.
rm
can be pretty
unforgiving at times.
Various source control utils:
- Subversion (SVN) is the source
control system of choice du jour.
- Concurrent Versioning System (CVS) is
the next oldest; SVN was essentially created to address shortcomings in CVS
- Revision Control
System (RCS) is even older. Both CVS and SVN are tailored to environments
where multiple people are working on code; RCS doesn't really care about
that. So despite RCS being ancient, this might be worth considering.
Might I note that for SVN and CVS, exist very nice GUI tools called
Tortoise[CVS|SVN].
Back