Você está na página 1de 8

Home Work Portfolio About Article Archives GrokCode

Hire Us

The Top 9 In a Hackers Bookshelf


by Jess Johnson in Books & Tools Every hacker should have a good solid dead tree library to draw ideas from and use as reference material. This list has a bit of everything textbooks you will encounter at top tier computer science universities, books giving insight into the industry, and references you shouldnt be caught without. It is a list of hackers classics.

The Mythical Man Month: Essays on Software Engineering Anniversary Edition by Fredrick P. Brooks This is a classic on the human elements of software engineering first published in 1975. The technology has changed a lot in this time, but the human elements of software engineering have remained the same. It is a wealth of insight, often quoted, and very well known in the industry. The Mythical Man Month describes many commonly occurring problems in large and mid-scale development projects and breaks them down. Here are a two of the books important principles: The Mythical Man-Month: Adding manpower to a late software project makes it later. No silver bullet: There is not a single strategy, technique, or trick that can exponentially raise the productivity of programmers.

I recommend this book not only for programmers, but for anyone managing a software project. Project managers and programmers alike will appreciate Brooks clear, well-thought out points.

The C Programming Language (2nd Edition) by Brian W. Kernighan and Dennis M. Ritchie Commonly referred to as just K&R, this is the canonical C reference book. Its to the point without being too terse; it is detailed enough for a beginner to understand without being bloated. K&R tells you exactly what you need. Nothing more, nothing less. At 274 pages this is one of the most compact languages references you will find. I dare a Java author to come up with something so sweetly concise. This book is recommended for anyone learning C, and for anyone looking for a C reference book. K&R is a must read for anyone who is writing a language reference or technical literature. If you have never programmed before, K&R might not be the best place to start out, but still doable if you are motivated. Beginners might also consider getting a copy of The C Answer Book, which gives detailed explanations of solutions to the K&R exercises.

Structure and Interpretation of Computer Programs (2nd Edition) by Harold Abelson and Gerald Jay Sussman SICP is used in entry level computer science classes at many top tier universities including the University of California Berkeley and the Massachusetts Institute of Technology. It uses the Scheme language to introduce many powerful paradigms like recursion, lambda notation, abstraction, and interpreted languages. I found this book incredibly dense when I first read it for an introductory CS class, and there was still much to learn from a reread several years later after I had a better grasp of the ideas presented here. If you didnt have the opportunity to use this book in the classroom, I would recommend picking it up to see what you missed, especially if you havent used any of the Lisp dialects extensively.

Code Complete 2: A Practical Handbook of Software Construction by Steve McConnell Code Complete 2 is a highly regarded book about software construction, where McConnell defines construction as mainly programming and debugging, along with some elements of construction planning, detailed design, unit testing, integration, and integration testing. The books focus is on writing better code. McConnell touches on a wide variety of topics including managing complexity, refactoring, coding style, and writing good comments. This book is recommended for anyone who wants to write good solid code. It will save beginners time when learning good coding practices, and is a great refresher for programmers with years of experience who may find that over time they have developed habits that are holding them back.

Introduction to Algorithms, Third Edition by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein This is another textbook. Introduction to Algorithms, is probably the most popular university-level text for algorithms classes. It also serves as an excellent reference book. Even though practically speaking most programmers shouldnt be writing their own implementation of, say, quicksort, in a production environment, algorithms knowledge is essential for understanding what kind of asymptotic performance you can expect from libraries and your own code. Introduction to Algorithms, is recommended as a reference for any developer looking to brush up on their algorithm skills. It is also recommended if you are interested in topics like NP-Completeness, randomized algorithms, or Fast Fourier Transformation. Good math skills are essential if you want to grok all parts of this book.

Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson, and John M. Vlissides This is a catalog of different object-oriented design patterns. For each of the 23 patterns that are presented, the authors give an in-depth analysis including a motivating example for the pattern, common pitfalls and trade-offs, related patterns, and sample code in either C++ or Smalltalk. Some of the patterns covered are Singleton, Observer, Template Method, Iterator, and Proxy. This book is a must read for intermediate or advanced developers working on object-oriented code. Coders that are new to object-oriented design would be best served by mastering the basics of an object-oriented language and digging in to non-trivial project before attempting to learn all of the patterns presented here, otherwise the patterns arent likely to stick.

Programming Pearls (2nd Edition) by Jon Bentley This is a great book for learning how to approach problems. Each of the 15 chapters presents a different task, such as sorting phone numbers, creating anagrams, or doing text searches. The problem is defined, and then Bentley walks through different solutions, providing a discussion and clear analysis of each solution, with a breakdown of programming principles at the end. Programming Pearls, contains some very clever ideas, and would be of some use as an algorithm reference for a small class of problems, but the take away of the book is something much bigger and more general: how to approach and solve problems from the perspective of an engineer. I recommend this book to anyone who enjoys working though programming brain teasers.

Compilers: Principles, Techniques, and Tools, 2nd Edition by Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman Compilers: Principles, Techniques, and Tools, is commonly known simply as the dragon book. This is the standard textbook in a theoretical compilers class. It covers everything you would expect to find in a compilers text: language syntax, parsers, lexical analysis, grammars, intermediate code generation, runtime environments, optimization, etc. If

you havent done a lot of work with these topics, be prepared to learn a whole slew of new terminology and concepts: deterministic finite automata, finite state automata, LR parsing, and more. I particularly enjoyed parts of the dragon book that get down and dirty into the mathematical notation and theory and this is large theme throughout the book. If you find regular expressions and state machines fascinating you will really enjoy the book. On the other hand, if you are looking for a text that will introduce modern, practical compiler implementation details you may find the dragon book a bit lacking. In those respects the dragon book is starting to show its age (this version was copyrighted in 1986).the 2nd edition of this book includes new sections covering modern techniques.

Unix Power Tools, Third Edition by Shelley Powers, Jerry Peek, Tim OReilly, and Mike Loukides This is one of the many great books from the OReilly collection. Unix Power Tools, weighs in at a hefty 1200 pages, and is full of descriptions of Unix command line tools, usage cases, and shell script syntax examples for all of the major shells. Unix Power Tools, is a great reference book and is fairly well organized into self-contained chapters. If you find yourself reading this book from cover to cover you are an amazing specimen of geekdom. Much of the information contained within this book can be found more quickly with a Google search, but sometimes its nice to have a dead tree reference as well. This is one of the few books that is valuable for beginners and experts alike. Everyone from a complete Unix newbie to a seasoned Systems Administrator has something to gain from Unix Power Tools.

The Ultimate Hitchhikers Guide: Five Complete Novels and One Story by Douglas Adams Well this book isnt technically about hacking, but your geek card is hereby revoked if you havent at least read this increasingly inaccurately named, Hitchhikers Trilogy. It contains all 5 books in the Trilogy: The Hitchhikers Guide to the Galaxy, The Restaurant at the End of the Universe, Life, The Universe and Everything, So Long, and Thanks for All the Fish, and Mostly Harmless, plus the short Young Zaphod Plays it Safe.

Be entertained. Discover the answer to life, the universe, and everything. Learn how to make a Pan Galactic Gargle Blaster. And most of all dont panic! This edition is bound in beautiful black leather and has a silk ribbon bookmark sewn into it. Its like reading a very nice Bible, only more believable. (Mandatory disclaimer before any trolls find me: That was a joke.) Thats it for my top 9. What would you put in yours? [Update: Have a look at the follow-up list, 5 more books in a hacker's bookshelf.]
[Disclaimer: The links above are affiliate links, which means if you buy something from Amazon after following a link from GrokCode, you pay the same amount and I will get a percentage of the sale to help support this site (which would make me smile).]
Tweet 48 4

Related Articles
5 More Books In a Hackers Bookshelf Knuths TAOCP Vol. 4A Now Available For Pre-order Programming Syntax Brain Teasers Learning Clojure with Project Euler

GrokCode's Most Popular Articles


The Top 9 In a Hackers Bookshelf Famous Programmers From Adleman to Zimmermann Scientifically Proven Tips For a More Productive Office E2: The (NP-Complete) Kids Game with the $2 Million Prize

43 comments so far - Join the discussion Leave a Reply


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title="">
<b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

Name: Required Email: Required URL:

Notify me of followup comments via e-mail

Subscribe
Article updates via Twitter Get email updates Twice per month. No spam. Subscribe via RSS

A Hackers Bookshelf

Buy classic books for hackers Read GrokCodes book reviews

Article Categories
Books & Tools Career Extras Fun Projects Programming Languages Sweet Hacks Tips & Tutorials

Recent Articles
Be a Paranoid Pessimistic Programmer What Is This Cloud Thing Anyway? How To Use Source Control Effectively Ruby on Rails Cloud Hosting Reviews The Ergonomic Keyboard Productivity Myth GrokCode is a small software development shop run by Jess Johnson. You can learn more about GrokCode, view the portfolio, find out how we can work together, or just send an email to hello@grokcode.com and say hi. Also take a look at the complete GrokCode archives for programming articles.

Connect with GrokCode


LinkedIn Twitter GitHub StumbleUpon

Get new programming articles straight to your inbox


Email:

Emails twice per month. No spam. Comments owned by the poster. Everything else 2007-2011 GrokCode unless otherwise noted. // output twitter js on post pages // output google +1 on post pages

Você também pode gostar