21.03.2013 Views

Problem - Kevin Tafuro

Problem - Kevin Tafuro

Problem - Kevin Tafuro

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

This is the Title of the Book, eMatter Edition<br />

Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.<br />

Foreword<br />

There is a humorous, computing-related aphorism that goes like this: “There are 10<br />

types of people: those who understand binary, and those who don’t.” Besides being<br />

amusing to people who understand number representation, this saying can be used<br />

to group people into four (or 100) categories:<br />

• Those who will never quite get the meaning of the statement, even if it is<br />

explained to them<br />

• Those who need some explanation, but will eventually get the meaning<br />

• Those who have the background to grasp the meaning when they read it<br />

• Those who have the knowledge and understanding to not only see the statement<br />

as obvious, but be able to come up with it independently on their own<br />

There are parallels for these four categories in many different areas of endeavor. You<br />

can apply it to art, to cooking, to architecture...or to writing software. I have been<br />

teaching aspects of software engineering and security for over 20 years, and I have<br />

seen it up close. When it comes to writing reliable software, there are four kinds of<br />

programmers:<br />

• Those who are constantly writing buggy code, no matter what<br />

• Those who can write reasonable code, given coaching and examples<br />

• Those who write good code most of the time, but who don’t fully realize their<br />

limitations<br />

• Those who really understand the language, the machine architecture, software<br />

engineering, and the application area, and who can write textbook code on a<br />

regular basis<br />

The gap between the third category and the fourth may not seem like much to some<br />

readers, but there are far fewer people in that last category than you might think. It’s<br />

also the case that there are lots of people in the third category who would claim they<br />

are in the fourth, but really aren’t...similar to the 70% of all licensed drivers who say<br />

xiii

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!