Brian Kernighan
![Brian Kernighan](/assets/img/authors/brian-kernighan.jpg)
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
Brian Kernighan quotes about
If you had done something twice, you are likely to do it again.
Trying to outsmart a compiler defeats much of the purpose of using one.
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
An effective way to test code is to exercise it at its natural boundaries
Don't document bad code - rewrite it.
Trivia rarely affect efficiency. Are all the machinations worth it, when their primary effect is to make the code less readable?
Every language teaches you something, so learning a language is never wasted, especially if it's different in more than just syntactic trivia.
I really enjoyed Princeton as a graduate student.
It's important to be informed about issues like usability, reliability, security, privacy, and some of the inherent limitations of computers.
Anytime you want to hear about graph partitioning, I will be glad to tell you what I know about graph partitioning. It remains a standard problem. I think it's an interesting problem, because it shows up in a variety of guises in real life.
I want students to understand specific technologies, but the real goal is that they should be able to reason about how systems work and be intelligently skeptical about technology so that, when they're running the world in a few years, they'll do a good job.
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.
No matter what, the way to learn to program is to write code and rewrite it and see it used and rewrite again. Reading other people's code is invaluable as well.
Programming language is very specific to instructing a computer to do a particular structure of a sequence. It's the very way you tell the machine what you want it to do.