📖 Overview
Brian Wilson Kernighan is a Canadian computer scientist and professor at Princeton University who played a significant role in the early development of Unix at Bell Labs. He is most widely recognized for co-authoring the definitive book on C programming with Dennis Ritchie, "The C Programming Language," though he did not participate in the language's design.
Kernighan made substantial contributions to computer science through his development of Unix programs and programming languages. He created the ditroff text formatting program and co-created both the AWK and AMPL programming languages, with the 'K' in AWK standing for his surname.
As a computer scientist, Kernighan also conducted important research in algorithm optimization. Working with Shen Lin, he developed influential heuristics for solving complex computational problems, particularly in graph partitioning and the travelling salesman problem.
Kernighan's career spans decades of teaching and research at Princeton University, where he continues to influence new generations of computer scientists. His work on documentation and programming style has helped establish industry standards, and his books remain fundamental texts in computer science education.
👀 Reviews
Readers consistently highlight Kernighan's clear, precise writing style in technical subjects. The C Programming Language (co-authored with Ritchie) receives particular attention for its concise explanations and practical examples.
What readers liked:
- Direct, no-fluff writing approach
- Well-chosen examples that build gradually
- Clean code samples that teach good programming practices
- Thorough coverage without being overwhelming
What readers disliked:
- Some books assume prior programming knowledge
- Older examples can feel dated
- Practice exercises sometimes lack solutions
- Limited coverage of modern programming concepts
Ratings across platforms:
- The C Programming Language: 4.4/5 on Goodreads (19,000+ ratings)
- Unix Programming Environment: 4.3/5 on Amazon (200+ ratings)
- Understanding the Digital World: 4.2/5 on Goodreads (150+ ratings)
Notable reader comment: "Kernighan explains complex concepts with remarkable clarity - every word serves a purpose." (Goodreads review)
📚 Books by Brian Kernighan
The C Programming Language (1978, 2nd ed. 1988)
A comprehensive guide to the C programming language that serves as the de facto language specification, co-authored with Dennis Ritchie.
Software Tools (1976) A practical examination of program design using software tools in Pascal and Ratfor, co-authored with P.J. Plauger.
The Unix Programming Environment (1984) A detailed introduction to Unix programming and philosophy, co-authored with Rob Pike.
The AWK Programming Language (1988) A technical manual and tutorial for the AWK pattern-matching language, co-authored with Al Aho and Peter Weinberger.
The Practice of Programming (1999) An exploration of practical programming principles and techniques, co-authored with Rob Pike.
AMPL: A Modeling Language for Mathematical Programming (2003) A reference manual for the AMPL programming language used in mathematical optimization.
D is for Digital (2011) An explanation of how digital technology works for non-technical readers.
Understanding the Digital World (2017) An examination of computers, the internet, and digital technology for general readers.
Millions, Billions, Zillions (2018) A guide to handling numbers and numerical reasoning in everyday contexts.
Unix: A History and a Memoir (2019) A first-hand account of the development of Unix at Bell Labs.
Software Tools (1976) A practical examination of program design using software tools in Pascal and Ratfor, co-authored with P.J. Plauger.
The Unix Programming Environment (1984) A detailed introduction to Unix programming and philosophy, co-authored with Rob Pike.
The AWK Programming Language (1988) A technical manual and tutorial for the AWK pattern-matching language, co-authored with Al Aho and Peter Weinberger.
The Practice of Programming (1999) An exploration of practical programming principles and techniques, co-authored with Rob Pike.
AMPL: A Modeling Language for Mathematical Programming (2003) A reference manual for the AMPL programming language used in mathematical optimization.
D is for Digital (2011) An explanation of how digital technology works for non-technical readers.
Understanding the Digital World (2017) An examination of computers, the internet, and digital technology for general readers.
Millions, Billions, Zillions (2018) A guide to handling numbers and numerical reasoning in everyday contexts.
Unix: A History and a Memoir (2019) A first-hand account of the development of Unix at Bell Labs.
👥 Similar authors
Dennis Ritchie
Co-authored "The C Programming Language" with Kernighan and created the C programming language while at Bell Labs. His work on C and Unix established foundations that persist in modern computing systems.
Donald Knuth Created "The Art of Computer Programming" series which provides deep analysis of algorithms and programming concepts. His work on TeX and focus on the intersection of mathematics and computer science mirrors Kernighan's systematic approach to computing.
Alfred Aho Collaborated with Kernighan on AWK and wrote seminal works on compiler design and algorithms. His research at Bell Labs and Columbia University focuses on programming languages and software tools.
Rob Pike Worked with Kernighan at Bell Labs and contributed significantly to Unix and Plan 9 operating systems. His work on Go programming language and text editors reflects similar interests in system design and programming tools.
Jon Bentley Wrote "Programming Pearls" which shares Kernighan's focus on clear writing and efficient programming techniques. His work at Bell Labs and contributions to algorithm design parallel Kernighan's interests in optimization and practical programming.
Donald Knuth Created "The Art of Computer Programming" series which provides deep analysis of algorithms and programming concepts. His work on TeX and focus on the intersection of mathematics and computer science mirrors Kernighan's systematic approach to computing.
Alfred Aho Collaborated with Kernighan on AWK and wrote seminal works on compiler design and algorithms. His research at Bell Labs and Columbia University focuses on programming languages and software tools.
Rob Pike Worked with Kernighan at Bell Labs and contributed significantly to Unix and Plan 9 operating systems. His work on Go programming language and text editors reflects similar interests in system design and programming tools.
Jon Bentley Wrote "Programming Pearls" which shares Kernighan's focus on clear writing and efficient programming techniques. His work at Bell Labs and contributions to algorithm design parallel Kernighan's interests in optimization and practical programming.