The C Programming Language, 2nd Edition by Brian W. Kernighan

The C Programming Language, 2nd Edition by Brian W. Kernighan

The authors present the complete guide to ANSI standard C language programming. Written by the developers of C, this new version helps readers keep up with the finalized ANSI standard for C while showing how to take advantage of C’s rich set of operators, economy of expression, improved control flow, and data structures. The 2/E has been completely rewritten with additional examples and problem sets to clarify the implementation of difficult language constructs. For years, C programmers have let K&R guide them to building well-structured and efficient programs. Now this same help is available to those working with ANSI compilers. Includes detailed coverage of the C language plus the official C language reference manual for at-a-glance help with syntax notation, declarations, ANSI changes, scope rules, and the list goes on and on.


The first edition of the book, published in 1978, was the first widely available book on the C programming language. C was created by Dennis Ritchie. Brian Kernighan wrote the first C tutorial. The authors came together to write the book in conjunction with the language’s early development at AT&T Bell Labs. The version of C described in this book is sometimes referred to as K&R C (after the book’s authors), often to distinguish this early version from the later version of C standardized as ANSI C.
In 1988, the second edition of the book was published, updated to cover the changes to the C programming language resulting from the new ANSI C standard, particularly with the inclusion of reference material on standard libraries. The second edition (and as of 2014, the most recent edition) of the book has since been translated into over 20 languages. In 2012 an eBook version of the second edition was published in ePub, Mobi, and PDF formats.
ANSI C, first standardized in 1988, has since undergone several revisions, the most recent of which is ISO/IEC 9899:2011 (also known as “C11”), adopted as an ANSI standard in October 2011. However, no new edition of The C Programming Language has yet been issued to cover the more recent standards.

About the Authors

  • Brian W. Kernighan is head of the Computing Structures Research Department, Bell Laboratories, Murray Hill, New Jersey.  He received a B.A.Sc in engineering physics from the University of Toronto in 1964, and a Ph.D. in electrical engineering from Princeton University in 1969.  Since joining Bell Labs in 1969, he has worked in combinatorial optimization, document preparation systems, programming languages, and software tools.  His current research interests are in application-oriented programming languages, programming methodology, and user interfaces. Dr. Kernighan is the co-author of several books, including “The C Programming Language” and “The UNIX Programming Environment”.
  • Dennis M. Ritchie, co-creator of UNIX and father of the C programming language. Dennis M. Ritchie was born in Bronxville, NY in 1941. He studied at Harvard University.

Table of Contents

  1. A Tutorial Introduction.
  2. Types, Operators, and Expressions.
  3. Control Flow.
  4. Functions and Program Structure.
  5. Pointers and Arrays.
  6. Structures.
  7. Input and Output.
  8. The UNIX System Interface.

Buy from (Paperback)

Eloquent JavaScript A Modern Introduction to Programming by Marijn Haverbeke

Eloquent JavaScript A Modern Introduction to Programming by Marijn Haverbeke

Eloquent JavaScript is a book providing an introduction to the JavaScript programming language and programming in general.

You May Also Like:

Eloquent JavaScript, 2nd Edition – A Modern Introduction to Programming by Marijn Haverbeke

JavaScript is the language of the Web, and it’s at the heart of every modern website from the lowliest personal blog to the mighty Google Apps. Though it’s simple for beginners to pick up and play with, JavaScript is not a toy—it’s a flexible and complex language, capable of much more than the showy tricks most programmers use it for.

Eloquent JavaScript goes beyond the cut-and-paste scripts of the recipe books and teaches you to write code that’s elegant and effective. You’ll start with the basics of programming, and learn to use variables, control structures, functions, and data structures. Then you’ll dive into the real JavaScript artistry: higher-order functions, closures, and object-oriented programming.

Along the way you’ll learn to:

  •     Master basic programming techniques and best practices
  •     Harness the power of functional and object-oriented programming
  •     Use regular expressions to quickly parse and manipulate strings
  •     Gracefully deal with errors and browser incompatibilities
  •     Handle browser events and alter the DOM structure

Most importantly, Eloquent JavaScript will teach you to express yourself in code with precision and beauty. After all, great programming is an art, not a science—so why settle for a killer app when you can create a masterpiece?


About the Author

Marijn Haverbeke is a programming language enthusiast and polyglot. He’s worked his way from trivial BASIC games on the Commodore, through a C++ phase, to the present where he mostly hacks on database systems and web APIs in dynamic languages. He created and maintains several popular open source projects.


Table of Contents

  1.     Introduction
  2.     Basic JavaScript: values, variables, and control flow
  3.     Functions
  4.     Data structures: Objects and Arrays
  5.     Error Handling
  6.     Functional Programming
  7.     Searching
  8.     Object-oriented Programming
  9.     Modularity
  10.     Regular Expressions
  11.     Web programming: A crash course
  12.     The Document-Object Model
  13.     Browser Events
  14.     HTTP requests

The digital version is available in the following formats:

The Paper Version is also available and You can order from Amazon here.

Eloquent JavaScript, 2nd Edition – A Modern Introduction to Programming by Marijn Haverbeke

Eloquent JavaScript, 2nd Edition - A Modern Introduction to Programming by Marijn Haverbeke

JavaScript is at the heart of almost every modern Web application, whether it’s Google Apps, Twitter, or the newest browser-based game. Though it’s simple for beginners to pick up and play with, JavaScript is not a toy—it’s a flexible, complex language that you can use to build full-scale applications.

Eloquent JavaScript, 2nd Edition dives into the language and teaches you to write beautiful, effective code. By immersing you in example code and encouraging experimentation right from the start, the author quickly provides the tools you need to build your own programs. As you follow along with examples like an artificial life simulation, a simple programming language, and a platform game, you’ll learn to:

  •     Understand the essential elements of programming: syntax, control, and data
  •     Organize and clarify your code with object-oriented and functional programming techniques
  •     Script the browser and make basic Web applications
  •     Harness node.js to build servers and utilities
  •     Use the DOM effectively to interact with browsers

This new edition is thoroughly revised and modernized, and it’s full of brand-new material, including expanded content on recursion, closures, and more. All source code is available online in an interactive sandbox and has been updated to follow current JavaScript idioms. With Eloquent JavaScript, 2nd Edition as your guide, you’ll be fluent in the language of the Web before you know it.


About the Author

Marijn Haverbeke is an independent developer and author, focusing mostly on programming languages and tools for programmers. He spends most of his time working on open-source software, such as the CodeMirror editor and the Tern type inference engine for JavaScript.

Table of Contents

1: Values, Types, and Operators
2: Program Structure
3: Functions
4: Data Structures: Objects and Arrays
5: Higher-order Functions
6: The Secret Life of Objects
7: Project: Electronic Life
8: Bugs and Error Handling
9: Regular Expressions
10: Modules
11: Project: A Programming Language
12: JavaScript and the Browser
13: The Document Object Model
14: Handling Events
15: Project: A Platform Game
16: Drawing on Canvas
17: HTTP
18: Forms and Form Fields
19: Project: A Paint Program

Read It Online | Paper Version