Buy new:
$49.99
to get FREE delivery Saturday, November 16
Ships from: Amazon.com
Sold by: Amazon.com
$49.99
FREE Returns
to get FREE delivery Saturday, November 16. Order within 7 hrs 30 mins
Or Non members get FREE delivery Tuesday, November 19
In Stock
$$49.99 () Includes selected options. Includes initial monthly payment and selected options. Details
Price
Subtotal
$$49.99
Subtotal
Initial payment breakdown
Shipping cost, delivery date, and order total (including tax) shown at checkout.
Ships from
Amazon.com
Ships from
Amazon.com
Sold by
Amazon.com
Sold by
Amazon.com
Returns
Returnable until Jan 31, 2025
Returnable until Jan 31, 2025
For the 2024 holiday season, eligible items purchased between November 1 and December 31, 2024 can be returned until January 31, 2025.
Returns
Returnable until Jan 31, 2025
For the 2024 holiday season, eligible items purchased between November 1 and December 31, 2024 can be returned until January 31, 2025.
Payment
Secure transaction
Your transaction is secure
We work hard to protect your security and privacy. Our payment security system encrypts your information during transmission. We don’t share your credit card details with third-party sellers, and we don’t sell your information to others. Learn more
Payment
Secure transaction
We work hard to protect your security and privacy. Our payment security system encrypts your information during transmission. We don’t share your credit card details with third-party sellers, and we don’t sell your information to others. Learn more
$18.85
Get Fast, Free Shipping with Amazon Prime FREE Returns
FREE delivery November 21 - 24 on orders shipped by Amazon over $35
Or fastest delivery November 18 - 21
$$49.99 () Includes selected options. Includes initial monthly payment and selected options. Details
Price
Subtotal
$$49.99
Subtotal
Initial payment breakdown
Shipping cost, delivery date, and order total (including tax) shown at checkout.
Access codes and supplements are not guaranteed with used items.
Sold by ATXB and Fulfilled by Amazon.
Kindle app logo image

Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.

Read instantly on your browser with Kindle for Web.

Using your mobile phone camera - scan the code below and download the Kindle app.

QR code to download the Kindle App

Follow the author

Something went wrong. Please try your request again later.

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

4.6 4.6 out of 5 stars 163 ratings

{"desktop_buybox_group_1":[{"displayPrice":"$49.99","priceAmount":49.99,"currencySymbol":"$","integerValue":"49","decimalSeparator":".","fractionalValue":"99","symbolPosition":"left","hasSpace":false,"showFractionalPartIfEmpty":true,"offerListingId":"82gTEXKBmaHnAr6PBvWUpwh5QFPU7yUeQaX4YBghB3UdeUaQSt05xBwlzCGajrtLUw9bfbF5XwLR96ReuUqEMVmmx8KDpPl11ys83MgvkPjo6BuJEZxbSfUWSTvY99L%2FsqxiQb%2Fqm%2FM%3D","locale":"en-US","buyingOptionType":"NEW","aapiBuyingOptionIndex":0}, {"displayPrice":"$18.85","priceAmount":18.85,"currencySymbol":"$","integerValue":"18","decimalSeparator":".","fractionalValue":"85","symbolPosition":"left","hasSpace":false,"showFractionalPartIfEmpty":true,"offerListingId":"82gTEXKBmaHnAr6PBvWUpwh5QFPU7yUe4YBq3y8Lr9jYUXtbdrTrVHAD5nME2DXY98mzo%2BhWSuXmmNiziKbCUw2qdcyu5KrDrNKjAwpgaCLWFYage4S95iCqNUmiezMLphfjmv0IhW1z%2BShPXRqZlAdMrHJ0ZYTxLTGoVceQ6ArFKAJVuXBLsQ%3D%3D","locale":"en-US","buyingOptionType":"USED","aapiBuyingOptionIndex":1}]}

Purchase options and add-ons

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.

The practice of programming is more than just writing code. Programmers must also assess tradeoffs, choose among design alternatives, debug and test, improve performance, and maintain software written by themselves and others. At the same time, they must be concerned with issues like compatibility, robustness, and reliability, while meeting specifications.

The Practice of Programming covers all these topics, and more. This book is full of practical advice and real-world examples in C, C++, Java, and a variety of special-purpose languages. It includes chapters on:

  • debugging: finding bugs quickly and methodically
  • testing: guaranteeing that software works correctly and reliably
  • performance: making programs faster and more compact
  • portability: ensuring that programs run everywhere without change
  • design: balancing goals and constraints to decide which algorithms and data structures are best
  • interfaces: using abstraction and information hiding to control the interactions between components
  • style: writing code that works well and is a pleasure to read
  • notation: choosing languages and tools that let the machine do more of the work

Kernighan and Pike have distilled years of experience writing programs, teaching, and working with other programmers to create this book. Anyone who writes software will profit from the principles and guidance in The Practice of Programming.


Amazon First Reads | Editors' picks at exclusive prices

Frequently bought together

This item: The Practice of Programming (Addison-Wesley Professional Computing Series)
$49.99
Get it as soon as Tuesday, Nov 19
In Stock
Ships from and sold by Amazon.com.
+
$95.99
Get it as soon as Tuesday, Nov 19
In Stock
Ships from and sold by Amazon.com.
+
$51.49
Get it as soon as Tuesday, Nov 19
In Stock
Ships from and sold by Amazon.com.
Total price: $00
To see our price, add these items to your cart.
Details
Added to Cart
spCSRF_Treatment
Choose items to buy together.

Editorial Reviews

Amazon.com Review

Coauthored by Brian Kernighan, one of the pioneers of the C programming language, The Practice of Programming is a manual of good programming style that will help any C/C++ or Java developer create faster, more maintainable code.

Early sections look at some of the pitfalls of C/C++, with numerous real-world excerpts of confusing or incorrect code. The authors offer many tips and solutions, including a guide for variable names and commenting styles. Next, they cover algorithms, such as binary and quick sorting. Here, the authors show how to take advantage of the built-in functions in standard C/C++. When it comes to data structures, such as arrays, linked lists, and trees, the authors compare the options available to C, C++, Java, and even Perl developers with a random-text-generation program (using a sophisticated Markov chain algorithm) written for each language.

Subsequent sections cover debugging tips (including how to isolate errors with debugging statements) and testing strategies (both white-box and black-box testing) for verifying the correctness of code. Final sections offer tips on creating more portable C/C++ code, with the last chapter suggesting that programmers can take advantage of interpreters (and regular expressions) to gain better control over their code. A handy appendix summarizes the dozens of tips offered throughout the book.

With its commonsense expertise and range of examples drawn from C, C++, and Java, The Practice of Programming is an excellent resource for improving the style and performance of your code base. --Richard Dragan

Review

"The book fills a critical need by providing insight into pragmatic designand coding issues so that programmers become better at their craft...Programmers just out of school should be given this book on their first day of work. It will save employers thousands of dollars due to lost productivity and "mindless" debugging." -- Paul McNamee, Computer Scientist, Johns Hopkins University Applied Physics Laboratory

"The examples are just about right. Chapter 3's example (markov) is stellar; it is simple, thought-provoking, elegant, and most importantly, provides an opportunity to analyze good design... It is the most concise book of its kind and offers the most useful, no-nonsense treatment of how to program from authors who know a great deal about the topic." --
Peter Memishian, Member of Technical Staff, Sun Microsystems

"There is a tendency for many books to be in the high hundreds of pages long these days with very little justification. This text is well-written, and is not overly interdependent, thus allowing the reader to "skip around" as interests motivate.... I found [the examples] to be interesting. I like it when I don't have to spend time figuring out an example and I can concentrate on the lesson the example is trying to teach. Too many books have overly-complex examples, and this one doesn't." --
Chris Cleeland, Technical Lead, IONA Technologies, Inc.

"A great candidate to fill this widely perceived lack in the literature... Very solid and very educational, this manual is one I highly recommend to all programmers." --
Dr. Dobb's Electronic Review of Computer Books

"An outstanding book... a readable and well-written style combined with their experience and valuable expertise." --
Sys Admin

"This book is full of good common sense. In addition it is written in highly readable English. Pick up a copy, choose any chapter and start reading. I think you will then feel motivated to buy yourself a copy... Whatever language you program in, I think you will benefit from reading this book." --
Association of C & C++ Users

Rating 9/10: "Practical and enjoyable, this book captures its authors' considerable wisdom and experience." --
Slashdot.org

Read the full review for this book.

To be honest, there are quite a few books around that teach algorithms and the fundamentals of computer programming. The problem is that those books are commonly designed to support academic classes in computer science, and consequently shine on the theoretical side but leave something to be desired on the pragmatic front.

The Practice of Programming is a great candidate to fill this widely perceived lack in the literature that I commonly refer to as "for the industry." Authored by two experienced researchers of the Computing Science Research Center at the well-known Bell Labs (the name Brian Kernighan will ring a bell to the millions of C programmers), this manageable text conveys a fantastic quantity of suggestions and guidelines that will come in useful to all the neophytes of programming, and at the same time provides some sound tips and principles to the more seasoned among us. The first chapter approaches the delicate topic of good coding style; while the opinions on this are always subjective, those expressed by the authors seem generally acceptable and worth following. --Davide Marcato, Dr. Dobb's Electronic Review of Computer Books -- Dr. Dobb's Electronic Review of Computer Books

Product details

  • Publisher ‏ : ‎ Addison-Wesley; 1st edition (February 4, 1999)
  • Language ‏ : ‎ English
  • Paperback ‏ : ‎ 288 pages
  • ISBN-10 ‏ : ‎ 020161586X
  • ISBN-13 ‏ : ‎ 978-0201615869
  • Item Weight ‏ : ‎ 1 pounds
  • Dimensions ‏ : ‎ 8.98 x 7.64 x 0.52 inches
  • Customer Reviews:
    4.6 4.6 out of 5 stars 163 ratings

About the author

Follow authors to get new release updates, plus improved recommendations.
Brian W. Kernighan
Brief content visible, double tap to read full content.
Full content visible, double tap to read brief content.

Discover more of the author’s books, see similar authors, read book recommendations and more.

Customer reviews

4.6 out of 5 stars
163 global ratings

Customers say

Customers find the content quality good, rich, and easy to follow. They also appreciate the simple prose and clarity. Readers mention the book helps explain many of the design choices and good interface design rules.

AI-generated from the text of customer reviews

14 customers mention "Content quality"10 positive4 negative

Customers find the content quality of the book good. They say it helps readers learn programming common sense, useful thoughts, and distilled wisdom. Readers also mention the examples are brief but rich in content. Additionally, they say the book covers a huge variety of topics.

"...It authoritatively covers a huge variety of topics, bringing to mind another important text, Steve McConnell's "Code Complete", which is easier to..." Read more

"There are a lot of ideas that are timeless and can be used by people who are involved in software development today...." Read more

"...It is a sublime distillation, decades of high-level programming (the authors Kernighan and Pike are part of the history of computer science)..." Read more

"...conveyed in it surpasses many text books and helps the reader learn programming common sense. If you are a CS student read this book!" Read more

11 customers mention "Readability"11 positive0 negative

Customers find the book very easy to follow, simple, and concise. They say the writing and content are exceptional. Readers also mention it shows how to write good programs and is useful for modern C programmers.

"...conciseness might put off some readers, this is a volume that is worth reading and re-reading...." Read more

"...and application of knowledge, not a lot of extraneous verbiage, just simple, solid content...." Read more

"...in C. The more experienced you are, the more you'll appreciate it: Simplicity, Clarity, Generality" Read more

"This book gets to the heart of a number of important, readily understood and (sadly) often dismissed factors affecting software development quality...." Read more

3 customers mention "Design"3 positive0 negative

Customers find the design of the book simple, clear, and general. They also appreciate the good interface design rules.

"...tables, trees, algorithmic design and implementation, and good interface design rules...." Read more

"...you are, the more you'll appreciate it: Simplicity, Clarity, Generality" Read more

"...Rob Pike is a co-creator of Go, and this book helps explain many of the design choices that were made in Go...." Read more

Top reviews from the United States

Reviewed in the United States on December 31, 2011
Kernighan & Pike's "The Practice of Programming" (TPOP) is a short book in the general-advice-on-everything-related-to-programming genre. Both authors have impressive pedigrees, predisposing one to expect much from them. This book delivers: though the focus on C and the text's conciseness might put off some readers, this is a volume that is worth reading and re-reading.

The Good: it is a sad fact that even though a work like E. H. Gombrich's "Story of Art" attracts favorable reviews from young readers and accomplished artists alike, there are many programmers who feel the need to point out that they already know everything covered in Kernighan & Pike's TPOP. Let there be no doubt about this: "The Practice of Programming" is a masterful work, containing distilled wisdom. TPOP belongs to a very short list of programming books that deserve careful reading of even the minutest detail and amply reward such effort (Jon Bentley's "Programming Pearls" is another text on this list). Kernighan & Pike's text covers every aspect of practical programming, from style, through data structures, design, debugging, testing, performance, portability, up to special-purpose languages. It authoritatively covers a huge variety of topics, bringing to mind another important text, Steve McConnell's "Code Complete", which is easier to read, more detailed, and therefore 3.5 times longer. Even so, it's interesting to note that, unlike TPOP, "Code Complete" does not include exercises and does not discuss topics like tail recursion or endianness. On a different note, any book addressing the totality of programming is bound to disappoint a fraction of its potential readers by not using the language du jour. Kernighan & Pike have tried to preempt such complaints by including some mention of C++, Java, awk, and Perl, but in its core this book is C-oriented. C is still the lingua franca of programming, so this seems appropriate; as the authors put it, C "gives the programmer complete control over implementation, and programs written in it tend to be fast." Despite the conciseness and technical nature of TPOP, the authors manage to keep things flowing without mincing their words, e.g. "a lot of quick and dirty code ends up in widely-used software, where it remains dirty and often not as quick as it should have been anyway". Intriguingly, they are equally direct when discussing C-related issues, e.g. "rather than having memcpy for speed and memmove for safety, it would be better to have one function that was always safe, and fast when it could be." They also sneak in a joke or two, e.g. an enumerator in Plan 9's errors.h is called Egreg, which would have been funny even if it wasn't followed by the inimitable comment "It's all Greg's fault".

The Bad: parts of this book are non-trivial, e.g. the interplay of split() and advquoted() in the second C version of the CSV library. I'm bringing this up in the section on "The Bad" only because it's customary to expect a lot of filler in books on programming. In reality, this is one of the good aspects of TPOP: even when things get intricate it's worth putting in the effort to figure out what's going on. To quote Faulkner's (alleged) admonition in response to the complaint that some of his works are difficult to understand even after two or three readings: "read it a fourth time!" Of course, even though Kernighan & Pike are much more competent than the average programming author, they're still human, so they do sometimes produce phrases like this one: "Well-written programs are better than badly-written ones". At a more detailed level, I did notice a few minor issues. For example, in chapter 1 the authors rewrite a Java class and then say that the new version is better because "it leads to statements like queue.capacity++". However, directly accessing and changing a member variable violates encapsulation. Still at a fine-grained level, I spotted only one issue regarding the C code (other than the need to keep a reference handy at all times). In chapter 3 the authors say that the programs they show are production code and they also state that "the C programmer must do more of the work, allocating and reclaiming memory, creating hash tables and linked lists, and the like". Given both these points, one would expect that best practices imply that malloc'ed memory should be explicitly free'd, out of respect for the maintenance programmers to follow. However, the Markov chain C program does not do this. Finally, some of what this text has to say on C++ is non-idiomatic (though almost always still correct). Kernighan & Pike matter-of-factly mention or use int main(void), strcpy, strstr, and realloc in C++. A C++ aficionado might even go so far as to note that when they do use std::string (instead of C-style strings, as in the rest of the text) they get the number of characters from [the strlen() descendant] length() instead of [the STL mainstay] size().

In a nutshell, this book is a classic and is destined to remain one. This should come as no surprise to those who've read Kernighan & Pike's earlier "The Unix Programming Environment". Highly recommended.

Alex Gezerlis
24 people found this helpful
Report
Reviewed in the United States on December 7, 2005
An excellent book covering all of the essential areas of knowledge necessary to become a professional programmer and should be required reading for those without a formal computer science background. The examples are brief but rich in content. Major topics covered include: style, algorithms, design, implementation, optimization, interfaces, debugging, testing, performance, portability, and notation (languages). Each topic is discussed with emphasis on content and application of knowledge, not a lot of extraneous verbiage, just simple, solid content. This text is also great as a quick refresher for information on lists, hash tables, trees, algorithmic design and implementation, and good interface design rules. Provided are good "rules of thumb" for debugging and thoughts on portability along with ideas for writing code generators.

Some of the examples can be somewhat terse and break the authors rules for clarity and following standard language idioms. However, it is highly recommended to take the time to fully understand the examples in order to extract the most benefit. One final note, while working on a large re-engineering project we have proven that the "bear" technique really works, you'll have to read the text for the answer, it deals with auditory versus visual triggers and thinking.
6 people found this helpful
Report
Reviewed in the United States on September 14, 2021
Brian Kernighan demonstrates conciseness in communication and clarity in his writing. The same has been true of software he's designed as well as examples in his books. In a world of 1,200 page forest killers, this 265p book contains as much with higher value. Broadly applicable, but most examples are in C. The more experienced you are, the more you'll appreciate it: Simplicity, Clarity, Generality
3 people found this helpful
Report
Reviewed in the United States on November 24, 2015
This book gets to the heart of a number of important, readily understood and (sadly) often dismissed factors affecting software development quality. Although the concepts are agnostic, the presentation is C centric and probably less valuable to those who don't know C. I've started using this book (again) with less experienced C developers or those that have never had the opportunity to consider code as an organizational asset where quality of construction has a tangible organizational value in the long term.
6 people found this helpful
Report
Reviewed in the United States on January 4, 2021
I wish this book came out 50 years ago when I started coding. It would have made my lifer easier. I noticed right off if the principles, set out in this book, were put to use in ones life one would have a simpler and easier walk through this world. The main principles are:
1.keep the solution simple
2. write the code so others can understand it
3. annotate your code.
4. do not use fancy tricks just to show off

Good book buy it and live by it.
4 people found this helpful
Report
Reviewed in the United States on August 31, 2014
I don't understand why this book isn't more popular. If you look at the preface, you'll notice that some of the legends of our field contributed to its contents, including Ken Thompson, Dennis Ritchie, Doug McIlroy, W. Richard Stevens... the list goes on. Not to mention the fact that it was written by Brian Kernighan, who is widely considered to be the best technical writer in computing. If you appreciated K&R, this slim volume has the same exact writing style. Buy it, breathe it, until your code and your thought process become like a bell labs greybeard's.
4 people found this helpful
Report
Reviewed in the United States on September 1, 2019
Published in 1999, but it gives the approach of the authors. Rob Pike is a co-creator of Go, and this book helps explain many of the design choices that were made in Go. For example, Rob Pike will let a ternary operator into Go over his dead body. That is, NEVER!
4 people found this helpful
Report

Top reviews from other countries

Translate all reviews to English
Amazon Kunde
5.0 out of 5 stars A classic
Reviewed in Germany on January 3, 2021
For me a classic. Although I could use the direct C oriented examples direktly, the topics are general enough to standnthe test od time. I could recognise quite a lot of the principles in the Go programming language design decisions.
Laurent Rosenfeld
5.0 out of 5 stars A very good book
Reviewed in France on March 6, 2017
A very good book that I had read on-line, but thought it was good to have in a paper version.
Sergio
5.0 out of 5 stars Five Stars
Reviewed in Canada on January 16, 2016
The best book
Marcello Antonini
5.0 out of 5 stars L'alba della civilta'
Reviewed in Italy on May 25, 2016
Testo antesignano di ingegneria del software che introduce alla programmazione strutturata e a cio' che poi diverra' la programmazione a oggetti. Peccato non averlo trovato in italiano: evidentemente chi ce l'ha se lo tiene ben stretto.
Buona lettura e buona programmazione.
Paula
5.0 out of 5 stars Pratice of programmng
Reviewed in Spain on June 1, 2015
Ha cumplido mis espectativas con creces, muy contenta con el resultado del envio y de la compra
muy amables, paula