Goodreads helps you keep track of books you want to read.
Start by marking “The Practice of Programming (Addison-Wesley Professional Computing Series)” as Want to Read:
The Practice of Programming (Addison-Wesley Professional Computing Series)
Enlarge cover
Rate this book
Clear rating
Open Preview

The Practice of Programming (Addison-Wesley Professional Computing Series)

4.11  ·  Rating details ·  1,824 ratings  ·  43 reviews
With the same insight and authority that made their book The Unix programming Environment a classic, Brian Kernighan and Rob Pike have written The Practice of Programming to help make individual programmers more effective and productive.
Paperback, 288 pages
Published February 4th 1999 by Addison-Wesley
More Details... Edit Details

Friend Reviews

To see what your friends thought of this book, please sign up.

Reader Q&A

To ask other readers questions about The Practice of Programming, please sign up.

Be the first to ask a question about The Practice of Programming

Community Reviews

Showing 1-30
Average rating 4.11  · 
Rating details
 ·  1,824 ratings  ·  43 reviews

More filters
Sort order
Start your review of The Practice of Programming (Addison-Wesley Professional Computing Series)
Yevgeniy Brikman
Jul 17, 2014 rated it it was ok
The book describes itself as a practical guide to general programming in the real world, but for the most part, doesn't deliver on that promise for a number of reasons.

First, the book should have been called The Practice of Programming in C and C++. The intro chapters say Java, Perl, and others would be discussed, but I'd estimate the C languages make up 90% of the examples and advice. The long discussions of memory management, pointers, and portability do not apply to any of the other language
Steve Losh
Jan 01, 2014 rated it liked it
Overall: a decent introduction to some of the lessons you'll learn after a few years in the trenches of real programming.

If you're fresh out of college and starting your first programming gig, read this book carefully. A lot of what it says may sound like common sense, but often people don't take it to heart. It will save you pain down the road. Kernighan and Pike know what you're talking about and you'd be wise to listen to them.

If you're already an experienced programmer there's probably not a
Will Semin
Nov 05, 2019 rated it it was amazing
If you are a programmer, you must read it! It is full of good EXAMPLES of how to write better code and design things right.
Dmitriy Shilin
Dec 29, 2016 rated it liked it
Shelves: hack
It's really important to have some expectation before reading this book.

Experienced developers may think that this book is useless for them, because of:
- outdated information
- a lot of C code
- obvious ideas

But I highly recommend them to reread the following chapters:
- Chapter 1 is about style
- Chapter 5 is about debugging that is really important as for experienced developers and newbies.
- Chapter 7 describes different approaches related to performance of your apps.

If you are newbie in a softwar
Victor Gaydov
Jun 16, 2020 rated it really liked it
Shelves: computer-science

* Gives some good, mostly well known, advice on programming. From somewhat very low-level, like "break up complex expressions", to higher-level, like "detect errors at a low level, handle them at a high level" and even organizational, like "think before typing when debugging".

* Gives a few bright and not so widely adopted ideas. The chapter on testing taught me something new (e.g. the comparison and probabilistic testing approaches). The chapters on portability and notation have made me ret
Senthil Kumaran
Oct 28, 2012 rated it it was amazing
Shelves: computer-science
Wonderful book and extremely good advice on programming practice. I realized that this book is not be read in one sitting or in a month. This book is to be taken up for half-a-year to a year of dedicated study and requires solving the problems presented like technical book. So this fits in all the characteristic of a technical book with with problem given at the end of section for the student to attempt. But where the book differs from many of the technical books is, one one teaches style, desig ...more
Kyle The Hacker
Apr 16, 2013 rated it it was amazing
Keeping the standard of The C Programming Language, this book is a no-frills guide to writing exceptional software. While aimed at C, C++, and Java developers, the topics are relevant to those working in other languages. ...more
Aug 23, 2014 rated it liked it
Some interesting material, but overall more suited to people at the start of their careers, and very focused on low-level concerns that are relevant for C and C++. Actually, my overriding impression during the book was "look at all this effort to avoid dumb errors in low-level programming languages; I need to never use C again."
Artur Martsinkovskiy
An artifact of its time, the book was written when programming seriously mostly meant programming in C and sometimes some other languages. No wonder this book should have been better named 'The Practice of Programming in C, C++, sometimes Java and occasionally Awk and Perl'. Even though a big part of the text is highly irrelevant to any non-C programmer now(who are in plenty nowadays), there are a lot of great ideas in this book, many of which put start to the tendencies taken as granted in the ...more
Sep 08, 2019 rated it really liked it
Good read for novice programmers. The book introduces the reader to a range of important topics ranging from algorithms and data structures to debugging and performance. It contains numerous code examples and exercises to help students learn. The exercises are particularly useful.

The examples are unfortunately outdated. When the book was written, Java was brand new, as were the C++ STL and '//'-comments (wait, these have not always existed?). People that start learning programming today are more
Federico Saravia
Jul 16, 2017 rated it it was amazing
This is a book that every programmer should read many times during their career. I wish I would have read this book many years before as many of the teachings here I learned them with the experience but nevertheless I found it super instructive and will definitely read it again a couple more times.
Dec 26, 2019 rated it it was amazing
While some of the material is a bit dated most of the concepts are still applicable and helpful as a reference, the supplementary readings point you down the rabbit hole for most of the topics that they cover or talk about.
Kyla Squires
One to keep around for periodic reminders of key principles that affect day to day programming.
Frank Naitan
Sep 09, 2019 rated it it was amazing
One of the most interesting software books I read.
Feb 19, 2020 rated it liked it
Shelves: real-book
Still applies, twenty years later. Good advice here, though some examples sound dated.
Mar 21, 2017 rated it really liked it
I enjoyed this book very much. From time to time it could be a bit too detailed and technical, but overall it's full of sound and useful advises.
Dec 29, 2008 rated it really liked it
Shelves: development
Concise and well-written, this book lays out several guidelines and methods that will improve how one writes programs. C, C++, and Java are the dominant languages throughout, but the authors don't play favorites. For them, computer languages are but different notations for solving problems, hence the problem at hand should recommend the notation. In the 'Design and Implementation' chapter the same program (a Markov chain algorithm) is resolved into C, C++, Java, Awk, and Perl code, using typical ...more
Max Galkin
Jul 09, 2012 rated it really liked it
I had a mixed impression, the book seems to be a set of loosely related chapters, more like a collection of various experiences of authors ranging from some very narrow hardware-specific topics to very broad high-level abstract advices. Can't really recommend the book to beginners, as many of them will probably never face the specific problems mentioned in some chapters and the composition of the book makes it hard to learn any aspect of programming as a whole, but neither is this book tailored ...more
Nick Black
Nov 23, 2008 rated it liked it
I've still got this book from TA'ing CS 2430 back when I was's alright, but this kind of book has been done better numerous times. See Code Complete, The Pragmatic Programmer: From Journeyman to Master and The Art of UNIX Programming for everything in this book plus much more. ...more
Mar 24, 2008 rated it it was amazing
I really like this book, which bears some semblance in style to Bentley's Programming Pearls. Or maybe it would be more accurate to say that Kernighan and Pike has the same straightforward readability that Kernighan and Ritchie has. Covers aspects of style, debugging and testing, design "in the small", portability, and the pleasure of a good notation. The last chapter (on notation) is my favorite: in the course of about 25 pages, they give a description of, and illustrative code for: a formattin ...more
Sep 14, 2008 rated it really liked it
Shelves: books-for-me
If you already know how to program well, this book will round out all your rough edges. It is kinda like a finishing school for programmers. The Regex program in the final chapter is a real gem too. Also, it effectively compares several of the compiled and scripted languages in well thought out examples.
Max Lybbert
Jun 16, 2009 rated it it was amazing
This is a very quick read, and something of a classic. There is some dated information -- discussion about immature C++ compilers or early Java compilers, for instance -- but much of the book is timeless. I would love to live in a world where most professional programmers were familiar with this book and, by extension, the AT&T view of programming. ...more
Mar 05, 2011 rated it liked it
I had high hopes for this book, but I was disappointed. It's a good read for a student, but it doesn't go in any depth in the interesting areas (error handling, for example). Half of the book is dedicated to C/C++ specific issues, and how Java solved that. I enjoyed a bit more the chapter about testing and debugging.
Jun 28, 2011 rated it really liked it
Shelves: swe
One of those books that you start appreciating a few weeks after reading when they surprisingly turn out useful in your daily work. Some parts were pretty boring though: I think I've read five or six other books while struggling through the C code in chapters 3 and 4. But the second part turned out to be fun and insightful.
Jul 14, 2014 rated it it was amazing
I am generally skeptical when it comes to programming books, and particularly those from different decades, but I trusted the name "Brian Kernighan" so I checked the book out. ... All in all, I approve of this book and may even someday require it as a textbook for students.

(excerpted from My Blog)
Bob Hancock
Jul 05, 2010 rated it it was amazing
Concise and well written. After K&R, this is the book I would tell programmers to read first. It gives you insight in to Rob Pike's thinking and you understand many of the decisions made in the design of Go. ...more
Aug 27, 2011 rated it liked it
Shelves: computer-science
It is 3.5 stars, anyway. Indeed a great book but a little bit outdated. It has very good references and recommended stuff to learn/investigate more at the end of each chapter. A must for a programming books library.
Karl Geiger
Dec 30, 2013 rated it it was amazing
Along with The Mythical Man-Month and Programming Pearls a must-read for practitioner serious about computer programming. ...more
Masatoshi Nishimura
May 05, 2016 rated it liked it
Shelves: programming
I think there's a time bias that there's many linting tools now that many of his principles already apply. Probably at the time of publishing which is more than 2 decades ago, it was worth a lot more.
Fernando Soteras
Jan 07, 2017 rated it really liked it
In the age of digital books , this is a great book to own in good old paper. With time probably your copy might be populated with written comments and annotations. A real classic from one of Unix's creators.
« previous 1 next »
There are no discussion topics on this book yet. Be the first to start one »

Readers also enjoyed

  • Programming Pearls
  • Hackers & Painters: Big Ideas from the Computer Age
  • Code Complete
  • Advanced Programming in the UNIX Environment
  • The Pragmatic Programmer: From Journeyman to Master
  • Structure and Interpretation of Computer Programs (MIT Electrical Engineering and Computer Science)
  • Dreaming in Code: Two Dozen Programmers, Three Years, 4,732 Bugs, and One Quest for Transcendent Software
  • Design Patterns: Elements of Reusable Object-Oriented Software
  • Coders at Work: Reflections on the Craft of Programming
  • Introduction to Algorithms
  • Concrete Mathematics: A Foundation for Computer Science
  • The Clean Coder: A Code of Conduct for Professional Programmers
  • The Little Schemer
  • Extreme Programming Explained: Embrace Change (The XP Series)
  • Artificial Intelligence: A Modern Approach
  • The C++ Programming Language
  • The Art of Computer Programming, Volume 1: Fundamental Algorithms
  • Expert C Programming: Deep C Secrets
See similar books…

Goodreads is hiring!

If you like books and love to build cool products, we may be looking for you.
Learn more »
Brian Wilson Kernighan is a computer scientist who worked at Bell Labs alongside Unix creators Ken Thompson and Dennis Ritchie and contributed greatly to Unix and its school of thought.

News & Interviews

Are you having a difficult time reading these days? If so, you're not alone. Since the pandemic began, I've found it harder to concentrate on...
30 likes · 6 comments