in reply to
Random thoughts on programming
The following are based on personal experience. Those marked with a super-scripted asterisk (*) are common mantras I repeat on #perl.
- If someone's already done it, respect it, investigate it, use it, and build on it.
- Competition is healthy. Fierce competition is not. Two people working on the same project is not two people working on conflicting projects. Don't Fear the Collaborator.
- Programming is about finding patterns. *
- Not understanding something is not always a reason not to use it. Not understanding an algorithm can be a sign of laziness or ignorance. Not understanding why you're using something is a bad thing. (Case in point, people that do use CGI qw(:standard) and have no idea why.) *
- Code that reads like "There was an old lady who swallowed a fly" needs serious rethinking. (That is, code that is highly redundant, in the form of A; A B; A B C;.)
- Code should be fluent. Don't program in a stuttering manner. If this means you need to read all your code before you add more, by all means, do so.
- Users are evil. All users are evil. Do not trust them. Perl specifically offers the -T switch because it knows users are evil. *
- It helps a bit to know that program XYZ received invalid data. It helps a lot to know that program ABC sent XYZ invalid data. Learn to use stack-tracing tools (for Perl, that'd be Carp.pm).
Perl and Regex Hacker