97 Things Every Programmer Should Know: Collective Wisdom from the Experts

Overview

Tap into the wisdom of experts to learn what every programmer should know, no matter what language you use. With the 97 short and extremely useful tips for programmers in this book, you'll expand your skills by adopting new approaches to old problems, learning appropriate best practices, and honing your craft through sound advice.

With contributions from some of the most experienced and respected practitioners in the industry—including Michael Feathers, Pete Goodliffe, Diomidis ...

See more details below
Paperback
$17.13
BN.com price
(Save 42%)$29.99 List Price

Pick Up In Store

Reserve and pick up in 60 minutes at your local store

Other sellers (Paperback)
  • All (16) from $7.17   
  • New (9) from $16.36   
  • Used (7) from $7.17   
97 Things Every Programmer Should Know: Collective Wisdom from the Experts

Available on NOOK devices and apps  
  • NOOK Devices
  • NOOK HD/HD+ Tablet
  • NOOK
  • NOOK Color
  • NOOK Tablet
  • Tablet/Phone
  • NOOK for Windows 8 Tablet
  • NOOK for iOS
  • NOOK for Android
  • NOOK Kids for iPad
  • PC/Mac
  • NOOK for Windows 8
  • NOOK for PC
  • NOOK for Mac
  • NOOK Study
  • NOOK for Web

Want a NOOK? Explore Now

NOOK Book (eBook)
$13.49
BN.com price
(Save 43%)$23.99 List Price

Overview

Tap into the wisdom of experts to learn what every programmer should know, no matter what language you use. With the 97 short and extremely useful tips for programmers in this book, you'll expand your skills by adopting new approaches to old problems, learning appropriate best practices, and honing your craft through sound advice.

With contributions from some of the most experienced and respected practitioners in the industry—including Michael Feathers, Pete Goodliffe, Diomidis Spinellis, Cay Horstmann, Verity Stob, and many more—this book contains practical knowledge and principles that you can apply to all kinds of projects.

A few of the 97 things you should know:

  • "Code in the Language of the Domain" by Dan North
  • "Write Tests for People" by Gerard Meszaros
  • "Convenience Is Not an -ility" by Gregor Hohpe
  • "Know Your IDE" by Heinz Kabutz
  • "A Message to the Future" by Linda Rising
  • "The Boy Scout Rule" by Robert C. Martin (Uncle Bob)
  • "Beware the Share" by Udi Dahan
Read More Show Less

Product Details

  • ISBN-13: 9780596809485
  • Publisher: O'Reilly Media, Incorporated
  • Publication date: 2/15/2010
  • Edition number: 1
  • Pages: 229
  • Sales rank: 790,868
  • Product dimensions: 5.90 (w) x 8.90 (h) x 0.70 (d)

Meet the Author

Kevlin Henney is an independent consultant and trainer. His work focuses on patterns and architecture, programming techniques and languages, and development process and practice. He has been a columnist for various magazines and online publications, including The Register, Better Software, Java Report, CUJ, and C++ Report. Kevlin is co-author of two volumes in the Pattern-Oriented Software Architecture series: A Pattern Language for Distributed Computing and On Patterns and Pattern Languages. He also contributed to 97 Things Every Software Architect Should Know

Read More Show Less

Table of Contents

Preface;
Permissions;
How to Contact Us;
Safari® Books Online;
Acknowledgments;
Chapter 1: Act with Prudence;
Chapter 2: Apply Functional Programming Principles;
Chapter 3: Ask, "What Would the User Do?" (You Are Not the User);
Chapter 4: Automate Your Coding Standard;
Chapter 5: Beauty Is in Simplicity;
Chapter 6: Before You Refactor;
Chapter 7: Beware the Share;
Chapter 8: The Boy Scout Rule;
Chapter 9: Check Your Code First Before Looking to Blame Others;
Chapter 10: Choose Your Tools with Care;
Chapter 11: Code in the Language of the Domain;
Chapter 12: Code Is Design;
Chapter 13: Code Layout Matters;
Chapter 14: Code Reviews;
Chapter 15: Coding with Reason;
Chapter 16: A Comment on Comments;
Chapter 17: Comment Only What the Code Cannot Say;
Chapter 18: Continuous Learning;
Chapter 19: Convenience Is Not an -ility;
Chapter 20: Deploy Early and Often;
Chapter 21: Distinguish Business Exceptions from Technical;
Chapter 22: Do Lots of Deliberate Practice;
Chapter 23: Domain-Specific Languages;
Chapter 24: Don't Be Afraid to Break Things;
Chapter 25: Don't Be Cute with Your Test Data;
Chapter 26: Don't Ignore That Error!;
Chapter 27: Don't Just Learn the Language, Understand Its Culture;
Chapter 28: Don't Nail Your Program into the Upright Position;
Chapter 29: Don't Rely on "Magic Happens Here";
Chapter 30: Don't Repeat Yourself;
Chapter 31: Don't Touch That Code!;
Chapter 32: Encapsulate Behavior, Not Just State;
Chapter 33: Floating-Point Numbers Aren't Real;
Chapter 34: Fulfill Your Ambitions with Open Source;
Chapter 35: The Golden Rule of API Design;
Chapter 36: The Guru Myth;
Chapter 37: Hard Work Does Not Pay Off;
Chapter 38: How to Use a Bug Tracker;
Chapter 39: Improve Code by Removing It;
Chapter 40: Install Me;
Chapter 41: Interprocess Communication Affects Application Response Time;
Chapter 42: Keep the Build Clean;
Chapter 43: Know How to Use Command-Line Tools;
Chapter 44: Know Well More Than Two Programming Languages;
Chapter 45: Know Your IDE;
Chapter 46: Know Your Limits;
Chapter 47: Know Your Next Commit;
Chapter 48: Large, Interconnected Data Belongs to a Database;
Chapter 49: Learn Foreign Languages;
Chapter 50: Learn to Estimate;
Chapter 51: Learn to Say, "Hello, World";
Chapter 52: Let Your Project Speak for Itself;
Chapter 53: The Linker Is Not a Magical Program;
Chapter 54: The Longevity of Interim Solutions;
Chapter 55: Make Interfaces Easy to Use Correctly and Hard to Use Incorrectly;
Chapter 56: Make the Invisible More Visible;
Chapter 57: Message Passing Leads to Better Scalability in Parallel Systems;
Chapter 58: A Message to the Future;
Chapter 59: Missing Opportunities for Polymorphism;
Chapter 60: News of the Weird: Testers Are Your Friends;
Chapter 61: One Binary;
Chapter 62: Only the Code Tells the Truth;
Chapter 63: Own (and Refactor) the Build;
Chapter 64: Pair Program and Feel the Flow;
Chapter 65: Prefer Domain-Specific Types to Primitive Types;
Chapter 66: Prevent Errors;
Chapter 67: The Professional Programmer;
Chapter 68: Put Everything Under Version Control;
Chapter 69: Put the Mouse Down and Step Away from the Keyboard;
Chapter 70: Read Code;
Chapter 71: Read the Humanities;
Chapter 72: Reinvent the Wheel Often;
Chapter 73: Resist the Temptation of the Singleton Pattern;
Chapter 74: The Road to Performance Is Littered with Dirty Code Bombs;
Chapter 75: Simplicity Comes from Reduction;
Chapter 76: The Single Responsibility Principle;
Chapter 77: Start from Yes;
Chapter 78: Step Back and Automate, Automate, Automate;
Chapter 79: Take Advantage of Code Analysis Tools;
Chapter 80: Test for Required Behavior, Not Incidental Behavior;
Chapter 81: Test Precisely and Concretely;
Chapter 82: Test While You Sleep (and over Weekends);
Chapter 83: Testing Is the Engineering Rigor of Software Development;
Chapter 84: Thinking in States;
Chapter 85: Two Heads Are Often Better Than One;
Chapter 86: Two Wrongs Can Make a Right (and Are Difficult to Fix);
Chapter 87: Ubuntu Coding for Your Friends;
Chapter 88: The Unix Tools Are Your Friends;
Chapter 89: Use the Right Algorithm and Data Structure;
Chapter 90: Verbose Logging Will Disturb Your Sleep;
Chapter 91: WET Dilutes Performance Bottlenecks;
Chapter 92: When Programmers and Testers Collaborate;
Chapter 93: Write Code As If You Had to Support It for the Rest of Your Life;
Chapter 94: Write Small Functions Using Examples;
Chapter 95: Write Tests for People;
Chapter 96: You Gotta Care About the Code;
Chapter 97: Your Customers Do Not Mean What They Say;
Contributors;
Colophon;

Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star

(0)

4 Star

(0)

3 Star

(0)

2 Star

(0)

1 Star

(0)

Your Rating:

Your Name: Create a Pen Name or

Barnes & Noble.com Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & Noble.com that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & Noble.com does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at BN.com or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation

Reminder:

  • - By submitting a review, you grant to Barnes & Noble.com and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Noble.com Terms of Use.
  • - Barnes & Noble.com reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & Noble.com also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on BN.com. It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

 
Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously
Sort by: Showing all of 3 Customer Reviews
  • Posted February 9, 2012

    Experts don¿t always agree

    The essays are short (2 pages), easy and quick to read. If you’re new to programming, the essays might give some insight into the thoughts of some well-known and experienced programmers. Most experience programmers have heard or read these concepts before.

    The interesting thing is, you’ll find the experts proposing diametrically opposed concepts. Such as DRY (Don’t Repeat Yourself) and WET (Write Every Time). It could be argued that they are not entirely different sides of a concept, but DRY tries to create code that can be used over and over, while WET wants to write everything new and that’s pretty far apart.

    I did find some, what I thought were gems, like Giovanni Asproni’s “Learn to Estimate” and classics like Robert C. Martin (Uncle Bob) “The Single Responsibility Principle”. Overall I thought it was a good read, but it won’t stay on my bookshelf, I’ll pass it on to others.

    Was this review helpful? Yes  No   Report this review
  • Anonymous

    Posted May 31, 2011

    Highly Recommend for any software developer out there.

    This book covers good topics about things like knowing your IDE and how to make your code more effective and make your life as a developer efficient and effective as well. It's hard to describe, but reading only sections of 2 pages each for each of the 97 things, you don't get all the bloated data that is meaningless and boring. Instead because it is only 2 pages, you get very concise, straight to the point information that you can easily review at anytime for yourself and others that you might be helping or teaching how to manage their code and work life as a programmer. It is mostly geared to programmers, but some sections like "Learn Foreign Languages" and "Learn to Estimate" among others, can be beneficial to anyone in any field to read. Granted, you may have to adapt it some, but it is a pretty good book to read and get a professional's view on things you might not know about doing yet yourself.

    Was this review helpful? Yes  No   Report this review
  • Anonymous

    Posted January 27, 2012

    No text was provided for this review.

Sort by: Showing all of 3 Customer Reviews

If you find inappropriate content, please report it to Barnes & Noble
Why is this product inappropriate?
Comments (optional)