Kamis, 31 Maret 2011

All Reading Is Not Equal or Fast

Four years ago I posted Reading Tips, where I offered some ideas on how to read technical books.

Recently I've received emails and questions via Twitter on the same subject.

In this post I'd like to offer another perspective. Here I will introduce different "types of reading." In other words, I don't see all reading as equal, and what some people might call "reading," I don't consider to be reading at all!

After reading this post you may find you can adopt one or more (or really all) methods in your own knowledge journey.

The key to this post is to recognize that different types of reading exist, and you have to decide how you are going to approach a book, article, or other printed resource.

My list follows.

  • Proofreading is a very intense activity where the reader scrutinizes every aspect of a book. The reader pays attention to technical accuracy, grammar, production value (quality of screen captures, etc.) and all other customer-facing elements. This is usually a paid activity because it can be very demanding and time-consuming!

    I doubt most people find themselves in this situation, but I have been hired in the past to do this sort of work.

  • Reading for correctness is a subset of proofreading where the reader focuses on the accuracy of the written material.

    For example, is the author correct when he says the TCP three way handshake (TWH) is SYN ACK -> SYN ACK -> ACK? Wrong! (True story.) Here the reader is trying to see if the author knows what he is talking about. I usually enter this mode when I smell blood in the water. In other words, when I encountered the wrong TWH in a book years ago, I continued hunting errors until I was mentally exhausted.

    This is an unpleasant form of reading reserved for error-prone books. Once an author proves he or she knows the material I usually don't enter this mode. I only read for correctness as preparation to write a book review of a technically inaccurate book.

  • Memorization is another intense reading form, usually reserved for academic classes. If you've had to study for a biology test, you've probably read for memorization purposes. If reading for memorization, I will likely heavily mark the text and create independent, supplementary materials like flash cards. Yes, on real index cards! The act of writing the material helps activate other areas of the brain to memorize information.

    Thankfully I haven't had to do this sort of reading in years, or at least not regularly. I have had to memorize information for amateur radio license tests, and I like creating flash cards for that information.

  • Reading for learning is one of my common modes. With this approach I mark up a text (generally underlining or bracketing key terms and sections) and add comments or questions in margins.

    You might think the previous (and possibly the subsequent) reading modes are all about learning too, but simple learning for me is a more relaxed endeavor compared to memorization or correctness.

    The goal of learning is to be able to remember a subject, preferably well enough to at least describe it (but not teach it) to a third party.

    Reading for learning is as fast as you are able to absorb material.

  • Reading for practice is closely related to learning, but it involves material that has an operational aspect. For example, reading a programming book for practice, for me, involves trying the code examples, and even better trying the sample exercises.

    Practice is a more active form compared to learning. With learning I might be able to explain a pointer, but with practice I could write a program using one.

    Due to the hands-on manner, this is a slow form of reading.

  • Reading for familiarization is another one of my more common reading forms. Here I am just trying to understand the author without necessarily planning to implement his or her concepts in real life. For example, I plan to read a book on Windows internals in April, but I do not plan to become a Windows kernel programmer.

    Reading for familiarization is probably the fastest way to read a technical book and still derive value from it. I may or may not mark up a book for familiarization purposes.

  • Reading for reference starts to enter the gray area of possible "fake reading." If you only read a few sections or chapters of a book, have you really "read it?" For example, I've relied on the massive book Unix Power Tools, but because I've only referenced parts of it, I've never formally reviewed it.

    In my opinion, unless you heavily reference a book over time, you're not really reading at the level the warrants a review.

  • Sampling is not reading. Top Amazon book reviewer frauds, this means you. Looking at the front cover, back cover, index, table of contents, and a few sample pages doesn't make you qualified to write a book review. The sorts of people who write more than a few book reviews per day are the fakers who consider "sampling" to be "reading."

  • Reading for entertainment is not generally an approach I take with technical books! Sure, I enjoy them, but it's not like reading a classic fiction book. When reading a nontechnical work, I tend to devour pages. I'm not sure if that's good or bad, but it's exceptionally fast since the emotional component engages additional brain components that would allow me to later describe the content should I wish to do so.


How does reading for reviews fit in? In my view, as long as you're not "sampling" or reading for reference, any of the methods above qualify for writing a review. I suggest adding one component to your reading process to assist with review writing: keep a separate notebook and take notes as you read. Be very specific, e.g., "p 121 had this quote... etc." The more notes you take, the easier your review will be to write.

So what does this mean if you want to know "how does Bejtlich read so many books?" The answer is to decide just how you want to read a book. When I read a book on C or Windows Internals in April, I will likely be reading for familiarization. I don't plan to be a C coder or Windows developer, but I do want to be conversant in certain topics. If I get really motivated I will turn to my PC and try some examples. (In fact, I'll probably do that for a book on coding for Windows, since I've never done that before.)

What this means is that I, reading for familiarization, will probably read faster than someone else reading for practice, or memorization, or another time-consuming purpose. It all depends on your goal! On another day I may be reading for practice because I really want to know more about a topic, and then I'll be slower and more engaged.

Incidentally, the more you read, the faster you will likely become. I don't think improving your reading is limited to children, either (although my daughters are pretty scary in terms of speed).

Don't overdo it though. I would not be surprised to learn that chemical reactions are involved with reading, especially the more intense learning modes. In some cases I can feel my ability to absorb material shutting down, and at that point there is really no reason to continue. Take a break.

I also advise against reading in bed, although this is a truly personal opinion. For some people, it works great. I don't make it past five minutes!

If you have questions on this post, please comment here. I have to moderate everything so it may take me a while to notice them. Thank you.

Review of Hacking Exposed: Web Applications, 3rd Ed

Amazon.com just published my four star review of Hacking Exposed: Web Applications, 3rd Ed by Joel Scambray, Vincient Liu, and Caleb Sima. From the review:

This is the third Hacking Exposed: Web Applications (HE:WA) book I've reviewed, having reviewed the second edition in 2006 and the first edition in 2002. While I gave the earlier editions each five stars, I don't think HE:WA3E quite meets my expectations of a five star web application security book -- at least not one bearing the Hacking Exposed (HE) series name.

In my opinion, the winning formula for a good HE book was set by the first in the series, back in 1999: 1) explain a technology of interest; 2) show exactly how to exploit it; 3) recommend countermeasures. For me, these three steps MUST be followed, and any book with HE in the title that fails to follow this recipe is likely to fall flat. The reason I like this approach is simple; in many cases, defenders first encounter a new technology only after a researcher or intruder has broken it! In other words, the offensive side is usually far ahead of the defensive side, because offenders often specialize in a promising new area and pursue it relentlessly until they break it. Good HE books help redress this imbalance by getting the defender up to speed on a new technology, showing how to break it, and then suggesting defensive measures.


Review of iOS Forensic Analysis Posted

Amazon.com just posted my three star review of iOS Forensic Analysis by Sean Morrissey. From the review:

I've read many forensics books over the last decade and written one as well. I believe that iOS Forensic Analysis (IFA) offers some useful information, but the manner in which the author presents it is not as effective as it could be. If the author were to write a second edition that structures the material in the way I recommend, I believe it would merit a four or five star review.

Review of Computer Incident Response and Product Security Posted

Amazon.com just published my three star review of Computer Incident Response and Product Security by Damir Rajnovic. From the review:

When I first learned that Cisco Press was publishing a book about product security (Computer Incident Response and Product Security, or CIRAPS), I was excited to see what they might create. Cisco's Product Security Incident Response Team (PSIRT) is one of the best in the industry, with a long history and mature processes. Furthermore, no published book currently provides extensive coverage for companies trying to design, build, and run their own PSIRT. Rather than focusing on this topic and thoroughly examining it, however, CIRAPS spends only 100 pages out of a 215 page book talking about PSIRT issues. While there are parts of CIRAPS that I found interesting, I don't think they justify reading the whole book.

Review of pfSense: The Definitive Guide Posted

Amazon.com just posted my five star review of pfSense: The Definitive Guide by Christopher M. Buechler and Jim Pingle and published by Reed Media. From the review:

I have to admit that pfSense: The Definitive Guide (pTDG) caught me off guard. I expected the book to mainly discuss installing and using the pfSense firewall appliance, which would have been enough for me to enjoy the book. However, I was pleased to see coverage of many issues related to network security and firewall design and operation. For me, these features elevated the entire book to five star status. If you're interested in learning how pfSense can help your organization, and what it means to deploy firewalls, pTDG is the right book.

Mini-Review of The Book of Pf Posted

Because I wrote a three star review of the first edition of The Book of Pf by Peter N.M. Hansteen, Amazon.com won't allow me to write a review of the second edition. So, I added the following comment to my old review indicating that I think the second edition deserves four out of five stars:

Amazon won't allow me to write a review of the second edition of this book, so I'm adding this comment. I'm pleased to say that I believe the author accepted much of the feedback in my first review as well as feedback from other reviewers. He's improved the book so much that I think it warrants 4 out of 5 stars. He spends more time explaining key concepts rather than simply including them in the text. For example, the author introduces features like macros (p 18) whereas in the first edition he just started using them. The book is also fairly up-to-date, with coverage of OpenBSD 4.8, FreeBSD 8.1, and NetBSD 5.0. Reading how to use Pf on all three platforms was very helpful. One request for a future edition is to include more "tips and tricks" that an experienced firewall administrator is sure to have. For example, when working remotely on a firewall ruleset, what methods does the author use to test configurations and ensure that if he makes a mistake he isn't locked out of the system? Finally, I think this book is a fine companion to PfSense: The Definitive Guide by Buechler and Pingle.

Selasa, 29 Maret 2011

Best Collection of Gimp Brushes



This is ongoing collection I am creating to make it easier to download brushes for the Gimp. I have included the link to the source as well as the direct download. Please note that most of these brushes have different restrictions. Please visit the site link to know the proper usage.

Read article »