Brian Kernighan

Brian Kernighan
Brian Wilson Kernighan is a Canadian computer scientist who worked at Bell Labs alongside Unix creators Ken Thompson and Dennis Ritchie and contributed to the development of Unix. He is also coauthor of the AWK and AMPL programming languages. The "K" of K&R C and the "K" in AWK both stand for "Kernighan". Since 2000 Brian Kernighan has been a Professor at the Computer Science Department of Princeton University, where he is also the Undergraduate Department Representative...
NationalityCanadian
ProfessionScientist
Date of Birth1 January 1942
CountryCanada
If you don't understand viruses, phishing, and similar threats, you become more susceptible to them. If you don't know how social networks leak information that you thought was private, you're likely to reveal much more than you realize.
Even though most people won't be directly involved with programming, everyone is affected by computers, so an educated person should have a good understanding of how computer hardware, software, and networks operate.
An effective way to test code is to exercise it at its natural boundaries
Trivia rarely affect efficiency. Are all the machinations worth it, when their primary effect is to make the code less readable?
Don't document bad code - rewrite it.
Get the weirdnesses into the data where you can manipulate them easily, and the regularity into the code because regular code is a lot easier to work with
Trying to outsmart a compiler defeats much of the purpose of using one.
As we said in the preface to the first edition, C "wears well as one's experience with it grows." With a decade more experience, we still feel that way.
If you had done something twice, you are likely to do it again.
Some compilers allow a check during execution that subscripts do not exceed array dimensions. This is a help, but not sufficient. First, many programmers do not use such compilers because They're not efficient. (Presumably, this means that it is vital to get the wrong answers quickly.)
If you're as clever as you can be when you write it, how will you ever debug it?
Mechanical rules are never a substitute for clarity of thought.
Believe the terrain, not the map
Each new user of a new system uncovers a new class of bugs.