You are previewing MORE JOEL ON SOFTWARE: Further Thoughts on Diverse and Occasionally Related Matters That Will Prove of Interest to Software Developers, Designers, and Managers, and to Those Who, Whether by Good Fortune or Ill Luck, Work with Them in Some Capacity.

MORE JOEL ON SOFTWARE: Further Thoughts on Diverse and Occasionally Related Matters That Will Prove of Interest to Software Developers, Designers, and Managers, and to Those Who, Whether by Good Fortune or Ill Luck, Work with Them in Some Capacity

  1. Title Page
  2. Dedication
  3. CONTENTS
  4. JOEL, APRESS, BLOGS, AND BLOOKS
  5. ABOUT THE AUTHOR
  6. part one: Managing People
    1. one: MY FIRST BILLG REVIEW
    2. two: FINDING GREAT DEVELOPERS
      1. Where are all those great developers?
      2. Can I get them anyway?
      3. To the mountain, Jeeves!
      4. Internships
      5. Build the community (*hard)
      6. Employee referrals: may be slippery when wet
      7. A field guide to developers
    3. three: A FIELD GUIDE TO DEVELOPERS
      1. Private offices
      2. The physical workspace
      3. Toys
      4. The social life of developers
      5. What am I working on?
      6. Can I identify with the company?
      7. One thing that programmers don't care about
    4. four: THREE MANAGEMENT METHODS (INTRODUCTION)
    5. five: THE COMMAND AND CONTROL MANAGEMENT METHOD
    6. six: THE ECON 101 MANAGEMENT METHOD
    7. seven: THE IDENTITY MANAGEMENT METHOD
      1. Conclusion
  7. part two: Advice to Potential Programmers
    1. eight: THE PERILS OF JAVASCHOOLS
    2. nine: TALK AT YALE
    3. ten: ADVICE FOR COMPUTER SCIENCE COLLEGE STUDENTS
      1. Learn how to write before graduating
      2. Learn C before graduating
      3. Learn microeconomics before graduating
      4. Don't blow off non-CS classes just because they're boring
      5. Take programming-intensive courses
      6. Stop worrying about all the jobs going to India
      7. No matter what you do, get a good summer internship
  8. part three: The Impact of Design
    1. eleven: FONT SMOOTHING, ANTI-ALIASING, AND SUBPIXEL RENDERING
    2. twelve: A GAME OF INCHES
    3. thirteen: THE BIG PICTURE
    4. fourteen: CHOICES = HEADACHES
    5. fifteen: IT'S NOT JUST USABILITY
      1. Some examples
      2. Designing social software
      3. Marketing social interfaces
      4. A new field
    6. sixteen: BUILDING COMMUNITIES WITH SOFTWARE
  9. part four: MANAGING LARGE PROJECTS
    1. seventeen: MARTIAN HEADSETS
    2. eighteen: WHY ARE THE MICROSOFT OFFICE FILE FORMATS SO COMPLICATED? (AND SOME WORKAROUNDS)
    3. nineteen: WHERE THERE'S MUCK, THERE'S BRASS
  10. part five: Programming Advice
    1. twenty: EVIDENCE-BASED SCHEDULING
      1. 1. Break 'er down
      2. 2. Track elapsed time
      3. 3. Simulate the future
      4. Obsessive-compulsive disorder not required
      5. 4. Manage your projects actively
      6. Scope creep
      7. While we're at it
      8. Summary
      9. P.S.
    2. twenty-one: STRATEGY LETTER VI
      1. Limited-memory, limited-CPU environments
      2. A portable programming language
      3. High interactivity and UI standards
    3. twenty-two: CAN YOUR PROGRAMMING LANGUAGE DO THIS?
    4. twenty-three: MAKING WRONG CODE LOOK WRONG
      1. An example
      2. A general rule
      3. I'm Hungary
      4. More reading
  11. part six: Starting a Software Business
    1. twenty-four: FOREWORD TO ERIC SINK ON THE BUSINESS OF SOFTWARE
    2. twenty-five: FOREWORD TO MICRO-ISV: FROM VISION TO REALITY
    3. twenty-six: HITTING THE HIGH NOTES
      1. But wait, there's more!
      2. But wait, there's even more!
  12. part seven: Running a Software Business
    1. twenty-seven: BIONIC OFFICE
      1. Bottom line it for me
    2. twenty-eight: UP THE TATA WITHOUT A TUTU
    3. twenty-nine: SIMPLICITY
    4. thirty: RUB A DUB DUB
    5. thirty-one: TOP TWELVE TIPS FOR RUNNING A BETA TEST
    6. thirty-two: SEVEN STEPS TO REMARKABLE CUSTOMER SERVICE
      1. 1. Fix everything two ways
      2. 2. Suggest blowing out the dust
      3. 3. Make customers into fans
      4. 4. Take the blame
      5. 5. Memorize awkward phrases
      6. 6. Practice puppetry
      7. 7. Greed will get you nowhere
      8. 8. (Bonus!) Give customer service people a career path
  13. part eight: Releasing Software
    1. thirty-three: PICKING A SHIP DATE
    2. thirty-four: CAMELS AND RUBBER DUCKIES
      1. Some economic theory
  14. part nine: Revising Software
    1. thirty-five: FIVE WHYS
    2. thirty-six: SET YOUR PRIORITIES
  15. INDEX
O'Reilly logo

nineTALK AT YALE

MONDAY, DECEMBER 3, 2007

This is part one of the text of a talk delivered to the Yale Computer Science department on November 28, 2007.

I graduated with a BS in computer science in 1991. Sixteen years ago. What I'm going to try to do today is relate my undergraduate years in the CS department to my career, which consists of developing software, writing about software, and starting a software company. And, of course, that's a little bit absurd; there's a famous part at the beginning of MIT's Introduction to Computer Science where Hal Abelson gets up and explains that computer science isn't about computers and it isn't a science, so it's a little bit presumptuous of me to imply that CS is supposed to be training for a career ...

The best content for your career. Discover unlimited learning on demand for around $1/day.