The Missing Curriculum for Programmers and High Tech Workers
I’ve been thinking about what I learned in University and more importantly what I’ve learned since University. These are the essential subjects and skills that were completely ignored at the University level, but would have been very useful to have. They might not have worked as full courses, but a lecture or seminar on the subjects would have helped.
Estimation, Procrastination and Motivation
- Personal Estimation: Why it is Going to Take More Than Two Weeks to Hit Your Deadline
- Why Cramming for a Deadline is Effective at School but Not in the Workplace
- The Internet: Do You Really Need It For Your Job?
- The Passion of the Code: Loving What You Do
- Metrics: What Isn’t Measured, Isn’t Done
- Focus on the Important, Not the Immediate
Programming and Testing
- Why We Don’t Teach Scripting Languages Even Though You’ll Use Them More Often Than Fortran, Pascal, C or Java
- All Programming is Maintenance Programming
- Why Re-writing from Scratch is Always the Worst Choice
- Verification: If It Wasn’t Tested It Doesn’t Work
- Automation vs Doing It By Hand: What Is More Efficient?
- Hardening: The Only Bug-Free Code is Old Code
- The Turtle and the Rabbit: Fast and Lazy vs Slow and Diligent
- Don’t Blame the Tools (Even Though the Tools Suck)
- Don’t Reinvent the Wheel: Leveraging Open Source
- How Version Control Will Save Your Life
- Text Editors: Why Notepad Isn’t Enough
- Bug Tracking: More Than Post-It Notes!
- Back-up Strategy: Painful but Necessary
- Diagrams, Diagrams, Diagrams: A Picture is Worth a Thousand Words
- English: Not Just for Managers!
- Automatic Documentation Generation: Why Documentation Should Be Tied to Code
- Abbreviation: Why Abbreviating Four Letters to Five Helps No One
Users and User Interface
- Keep It Simple, Stupid
- Cognitive Overload
- Users are People, Not Problems
- Support Isn’t a Four Letter Word (It’s Seven)
- Servicing Interrupts: Getting Work Done While Supporting Co-Workers
Delegation and Interpersonal Skills
- Passing the Buck and Shifting the Blame
- Making Small Talk When You Have Nothing in Common
- Why Co-Workers Are Companions, Not Competition
- Trust Issues: Don’t Assume That What Your Co-Worker Gave You Works
- Bribing IT: Getting Your Computer Problems Fixed In a Reasonable Time
- How to Avoid Meetings
- Who to Invite to Meetings
- How to Stay Awake in Meetings When They’re Unavoidable
- Shutting Up: Keeping Meetings Productive When You Have Nothing Useful to Say
- Why Design By Committee Doesn’t Work
Health and Appearance
- Staying in Shape Even Though You’re Sedimentary
- Eating Healthy When You Have Fast Food Every Day
- Hygiene: Friend or Foe?
- World Wide Wassup: Meeting Your Mate on the Internet
- I am Pretty: Why Go Into Consulting or Marketing
Finance and Future
- Planning for Retirement
- Public Companies vs Start-ups: Pros and Cons
- *HOW* Much of the Company Do the VCs Own?!
- Stock Options Dos and Don’ts
- How to Evaluate Benefits Compared to Salary
I think each of these subjects could be a post in itself (and probably has been). If you have any relevant links then please drop them in the comments.