Picture of author.

Brian W. Kernighan

Author of The C Programming Language (2nd Edition)

28 Works 7,355 Members 69 Reviews 8 Favorited

About the Author

Brian W. Kernighan is a professor in the Department of Computer Science at Princeton University. His many books include Millions, Billions, Zillions (Princeton) and the computing classic The C Programming Language (Prentice Hall).
Disambiguation Notice:

"The C Programming Language" and "The C Programming Language, Second Edition" should not be combined as one work. The languages described are significantly different: K&R C in one case, ANSI C in the other. Any variant of the title with "second", "2nd", "ANSI" or "ISO" in the title almost certainly refers to the second edition. K&R C is these days of only historical interest, while ANSI C is a very important language. If you have any book about C , Objective C, C# etc, please do not combine it with either edition of "The C Programming Language". Also Brian Kernighan should not be combined with the "author" Brian Kernighan and Dennis Ritchie.

Image credit: By permission of Brian Kernighan

Works by Brian W. Kernighan

The C Programming Language (2nd Edition) (1988) — Author — 3,411 copies, 31 reviews
The Practice of Programming (1999) — Author — 920 copies, 7 reviews
The C Programming Language (1978) — Author — 743 copies, 7 reviews
The UNIX Programming Environment (1984) — Author — 715 copies, 11 reviews
The Elements of Programming Style (1974) 306 copies, 1 review
The AWK Programming Language (1988) — Author — 302 copies, 4 reviews
Software Tools (1976) 231 copies
UNIX: A History and a Memoir (2019) — Author — 190 copies, 4 reviews
Software Tools in Pascal (1981) 87 copies, 1 review

Tagged

Common Knowledge

Legal name
Kernighan, Brian Wilson
Birthdate
1942-01-30
Gender
male
Education
Princeton Unversity (Ph.D|Electrical Engineering)
University of Toronto (BSc|Engineering Physics)
Occupations
computer scientist
Awards and honors
American Academy of Arts and Sciences (2019)
Nationality
Canada
Places of residence
Toronto, Ontario, Canada
Map Location
Ontario, Canada
Disambiguation notice
"The C Programming Language" and "The C Programming Language, Second Edition" should not be combined as one work. The languages described are significantly different: K&R C in one case, ANSI C in the other. Any variant of the title with "second", "2nd", "ANSI" or "ISO" in the title almost certainly refers to the second edition. K&R C is these days of only historical interest, while ANSI C is a very important language. If you have any book about C , Objective C, C# etc, please do not combine it with either edition of "The C Programming Language".
Also Brian Kernighan should not be combined with the "author" Brian Kernighan and Dennis Ritchie.

Members

Reviews

74 reviews
Brian Kernighan is most known for writing the definitive work on the C computer language. He worked for most of his career at famous Bell Labs from AT&T and worked among those who developed the UNIX operating system. UNIX powers much of the Internet and served as the basis for computer operating systems like Linux and MacOS. These all have influenced technological history, and he enlightens us as to how.

He writes in a light, unpretentious manner and relates the history that he witnessed as show more excellent software poured out of Bell Labs. He writes this history from a personal perspective, which is why this book’s genre accurately fits as both a history and a memoir. This personal perspective enlightens readers about how highly productive innovation occurred in this sphere. He exposits with an obvious respect for his colleagues and for the impact that they had on the history of computing science. Though some fame is certainly deserved for his accomplishments, he approaches them with a degree of humility as befits one looking back on a satisfactory life.

This work certainly contains relevance to the programmer and also to those who study innovation in science and technology. Besides these niche audiences, interest should be extended to the general reader, for whom complex technical topics are explained in an elegant simplicity. (Let me be clear: This is written for a general audience, not a technical audience.) Any reader can learn how exactly the computer and its cousin, the Internet, came to the fore of human culture in a generation. In that sense, Kernighan tells a broad story of our civilization’s progress.

As a computer programmer and as one with interest in the history of science and technology, I found this history interesting and relevant. It’s nice to get a feeling for the personalities behind some of the software that I use each day. As befits computer programming, there is not a whole lot of drama or tension. Instead, one gets a close feel for the personal warmth and common ingenuity shared by Kernighan and his colleagues. That ostensible enjoyment, that evident respect, and that passionate love come out strongly in this memoir and are perhaps the greatest testimony that produced a work as transformative as UNIX.
show less
I have long since given up programming in C when it was by my side every day, but I keep it for three reasons, keep your best memories, keep you worst memories and the fact I could basically do my entire job using the contents of a single book is a bit mind blowing, in the days on StackOverflow, where we reach for an answer from the hive mind, rather than working it out from first principles
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 show more languages, or most modern languages in general.

Second, the preface says the book will teach things not covered in school, but the second chapter is a quick, incomplete, and not very rigorous intro to data structures and algorithms straight out of cs 101.

Third, the discussion on coding style is handled much better in other books, such as Code Complete and Clean Code. In fact, I'm not a fan of some of the recommended coding conventions. For example, the book advocates the use of short, abbreviated, and/or single letter variable names in many cases, which made even their short example code hard to read. Also, many of the functions in the code examples were quite long and in need of refactoring.

Fourth, as is often the case with tech content, the book has not aged well. The interface, performance, and portability chapters feel out of date. The fact that functional programming principles (and languages) are missing means this is, at best, a practical guide to purely imperative programming.

Overall: only worth a read for C coders, though a more up to date book would be better.
show less
This is one of the best technical books I've ever read. In a strange way it's still the best introduction to Linux, even though there are many outdated details. After all, _all_ technical are full of outdated details -- but it's the rare book indeed that can rise above implementation and express an entire philosophy of development concisely and readably.

Lists

You May Also Like

Associated Authors

Rob Pike Author
P. J. Plauger Author, Joint Author.
Lorraine Doneker Cover designer
Ernst Janich Translator

Statistics

Works
28
Members
7,355
Popularity
#3,324
Rating
½ 4.3
Reviews
69
ISBNs
120
Languages
18
Favorited
8

Charts & Graphs