I have been developing an application for EMS* Squads and volunteer fire departments. This project has a CGI frontend, using the MLDBM abstraction layer over DB_File for the database backend.
I have learned many, many, many things as I developed this project in a rather
ad hoc fashion, implementing things on the fly as I learned them. One of the things I have learned is to *not* do that. While I learned alot by experimentation, the code base was riddled with kludgy mechanisms and practices that were anathema to maintainability and readability. The project grew, and grew and got more and more out of control, until I had to rewrite it using the ideas and concepts that I had learned throughout my trials and tribulations, which I will present the lessons of now:
- Get a solid idea of exactly what you want to do with your program *before* you start writing it.
- Use a physical pen and paper to map out what you are going to do and why.
- Use your gut! Your intuition will tell you whether what you are doing is right or wrong (that and The Camel).
- Pay attention to implementation. You may have the best ideas, and have them come out really crappy because of the way you implemented them.
- Don't be afraid to go back and revise or rewrite as you learn new skills or hone the skills you already have.
I have learned that programming is a multi-faceted discipline that requires many different types of abilities combined in different ways for different situations. Some of these talents can only be gained over time and through experience.
* EMS = Emergency Medical Services
redmist
redmist.dyndns.org
email::redmist