Presented, in no particular order, for your reading pleasure: my top 6 list of programming top 10 lists. To keep this entry concise, I've only quoted a brief summary of each item. If any of these sound interesting to you, I encourage you to click through and read the original author's thoughts in more detail.
Jerry Weinberg: The 10 Commandments of Egoless Programming
- Understand and accept that you will make mistakes.
- You are not your code.
- No matter how much "karate" you know, someone else will always know more.
- Don't rewrite code without consultation.
- Treat people who know less than you with respect, deference, and patience.
- The only constant in the world is change.
- The only true authority stems from knowledge, not from position.
- Fight for what you believe, but gracefully accept defeat.
- Don't be "the guy in the room."
- Critique code instead of people?be kind to the coder, not to the code.
Dare Obasanjo: Top 10 Signs Your Software Project is Doomed
- Trying to do too much in the first version.
- Taking a major dependency on unproven technology.
- Competing with an existing internal project that is either a cash cow or has powerful backers.
- The team is understaffed.
- "Complex problems require complex solutions".
- Schedule Chicken
- Scope Creep
- Second System Syndrome
- No Entrance Strategy.
- Tackling a problem you don't know how to solve.
Omar Shahine: Top 10 Tips for Working at Microsoft (or Anywhere Else)
- Process is no substitute for thinking.
- Get out of your office.
- Use your product (the one your customers will).
- Fix things that are broken rather than complain about them being broken. Actions speak better than your complaining.
- Make hard problem look easy. Don't make easy problems look hard.
- Use the right communication tool for the job.
- Learn to make mistakes.
- Keep things simple.
- Add value all the time.
- Use their product.
Michael McDonough: The Top 10 Things They Never Taught Me in Design School
- Talent is one-third of the success equation.
- 95 percent of any creative profession is shit work.
- If everything is equally important, then nothing is very important.
- Don over-think a problem.
- Start with what you know; then remove the unknowns.
- Don forget your goal.
- When you throw your weight around, you usually fall off balance.
- The road to hell is paved with good intentions; or, no good deed goes unpunished.
- It all comes down to output.
- The rest of the world counts.
Andres Taylor: Top 10 Things Ten Years of Professional Software Development Has Taught Me
- Object orientation is much harder than you think.
- The difficult part of software development is communication.
- Learn to say no.
- If everything is equally important, then nothing is important.
- Don over-think a problem.
- Dive really deep into something, but don get hung up.
- Learn about the other parts of the software development machine.
- Your colleagues are your best teachers.
- It all comes down to working software.
- Some people are assholes.
Steve Yegge: 10 Great Books
- The Pragmatic Programmer: From Journeyman to Master
- Refactoring: Improving the Design of Existing Code
- Design Patterns
- Concurrent Programming in Java(TM): Design Principles and Pattern (2nd Edition)
- Mastering Regular ex
pressions, 2nd Edition
- The Algorithm Design Manual
- The C Programming Language, Second Edition
- The Little Schemer
- Compilers
- WikiWikiWeb