Dear Rookie Web Developer,
I had the task recently of taking over a project from a group of developers (who shall remain nameless) who were unable to finish it. When I saw what they had written, I could see why. The project had clearly been assigned to inexperienced, junior-level developers who did not have the guidance of an experienced mentor. For the benefit of other rookies, I offer this advice, based on problems I found in that project:
- Your professional reputation among your peers will be based on the quality of the code you write.
- Don't litter code with comments telling me what you changed. That's what diff is for.
- Don't comment out sections of code and tell me you deleted them. If you want to delete something, please delete it.
- Poor spelling and grammar are signs of a programmer who doesn't care about details. Care.
- Never make a change to something just because it looks wrong---especially to mature code that has been in production for years. It looks wrong for a very good reason and you will break something if you change it.
- I really don't care how you indent or use braces but please be consistent.
- Don't leave comments explaining the obvious. I can read code.
- Please learn how to use an image editor. You don't need to take a Photoshop class. Just learn how to slice, choose the right image format and compression, and how to get anti-aliasing right for graphics that will appear on a given background.
- If you are duplicating a snippet of code throughout your project, you are doing it wrong.
- Doing something the "easy" way today will cost you 10x what it would have cost to do it right in the first place. And I'm being optimistic. Be lazy for the long-term.
- Learn CSS and the correct way to name your classes and IDs. And I don't mean learn just enough to get by. It's as important as any other code in your project whether it's Ruby or PHP or C.
- Learn SQL. Inefficient SQL queries will kill your project.
- More hardware may not be the best solution. Your app is slow because of inefficient code.
- Cross-browser compatibility is no longer a holy grail. It is a minimum requirement and it is not difficult.