39 Best Books on Programming

We have compiled a list of the Best Reference Books on Programming, which are used by students of top universities, and colleges. This will help you choose the right book depending on if you are a beginner or an expert. Here is the complete list of Programming Books with their authors, publishers, and an unbiased review of them as well as links to the Amazon website to directly purchase them. If permissible, you can also download the free PDF books on Programming below.

1. Computer Programming

1."Computer Basics and C Programming" by Rajaraman V
“Computer Basics and C Programming” Book Review: The book basically consists of two parts. The first part comprises computer basics and the second part is about C Programming language. It is an introductory course that will be helpful for Engineering and science students in building their fundamental principles of computer and Information Technology, and also provide key concepts of computing through the development of skills in programming and solving problems using C language. The book covers three aspects of computers. The first chapters deal with the binary representation of numeric and character data in computers. The second chapter is about the introduction of computer software.A chapter on array data structure, chapter on logical operation and concept of function in C and its application follow this. The rest book is about the use of C in solving non-numerical problems. The book consists of more than 100 solved examples for grasping concepts in a better way. Laboratory exercises on applications like MS office are also included.

2."C Programming Language: A Step by Step Guide to Learn C Programming in 7 Days" by Darrel L Graham
“C Programming Language: A Step by Step Guide to Learn C Programming in 7 Days” Book Review: This book is for beginner programmers, and also for the computer user who wants to know what happens behind the scenes of a computer program. In this book readers will get to learn about what is C language and how to set up the local environment. A chapter on C structure and its data type, C constant and literals, storage classes, loops, functions structure and union follow this. In addition, it worked out in detail on the benefits of using C language how to organize relevant expressions so that after compilation and execution, the computer returns useful results and not error messages.

3."Programming: Computer Programming For Beginners: Learn The Basics Of HTML5, JavaScript & CSS (Coding, C Programming, Java Programming, Web Design, JavaScript, Python, HTML and CSS)" by Joseph Connor
“Programming: Computer Programming For Beginners: Learn The Basics Of HTML5, JavaScript & CSS (Coding, C Programming, Java Programming, Web Design, JavaScript, Python, HTML and CSS)” Book Review: In this book, you will learn about the three of the most famous programming languages JavaScript, Html and CSS that are widely used. In this you will learn about the basics of these three languages and you will get to learn the various fundamentals of each language such as the structure of the language and programming concepts. This book covers topics like Introduction To Web Development, Learning HTML5: The Language Of The Web, Understanding CSS: Stylizing The Internet, Learning JavaScript: Making The Web More InteractiveYou will learn the syntax of each of the three languages with different kinds of functions. The book has some tips and tricks about this programming language and also contains frequently asked questions from these topics.

4."Computer Science: A Structured Programming Approach Using C" by Behrouz A Forouzan and Richard F Gilberg
“Computer Science: A Structured Programming Approach Using C” Book Review:
This book presents computer science theory and C-language syntax with a principle-before-implementation approach. The book emphasised structured programming and software engineering. This book covers Introduction to Computers, Introduction to the C Language, Structure of a C Program, Functions, Selection-Making Decisions, Arrays, Pointers and its Applications, Strings, Enumerated, Structure, and Union Types. Furthermore, it discusses topics like Binary Input/Output, Bitwise Operators, Lists.
At last, it includes appendices of libraries and commands. Each chapter includes worked examples and projects to understand everything in a better and practical way.

5."Objective Computer Awareness" by Arihant Experts
“Objective Computer Awareness” Book Review: This book has been [prepared for aspirants of Bank PO and Clerk examinations like IBPS PO & Clerk, SBI PO & Clerk, LIC AAO, Railway Recruitment Exams, and other banking & recruitment entrances. Each chapter starts with an introduction about the topic. The book has been divided into 13 Chapters namely Introduction to Computer, Computer Architecture, Input & Output Devices, Computer Memory, Data Representation, Computer Software, Operating System (OS), Microsoft Windows, Microsoft Office, Database Concepts, Data Communication & Networking, Internet & Its Services and Computer Security. Each chapter contains practise questions and previous years’ solved questions. Abbreviations and Glossary are also given at the end. The book also contains 10 Practice Sets with solutions for self-analysis.

6."Computer Programming in Fortran 77 (With an Introduction to Fortran 90)" by Rajaraman V
“Computer Programming in Fortran 77 (With an Introduction to Fortran 90)” Book Review: This book provides a lucid and in-depth introduction to the programming language Fortran 77 which is widely used by scientists and engineers. The book has been divided into 18 chapters. The first two chapters are about computer-oriented procedures, flow charts. A chapter on Fortran programming preliminaries, constant and variables, arithmetic expression,input-output, simple computer programs, control statement, do statement, subscripted variable follow Elementary format specification, logical expression and decision tables, Fortran program examples, function and subroutines, processing files in Fortran, character manipulation follow this. A chapter on the features of Fortran 77 is given. The book also introduces readers to Fortran 90. Each chapter has to do an exercise at the end of it.

7."Computer Fundamentals and Programming in C" by Reema Thareja
“Computer Fundamentals and Programming in C” Book Review: This book is designed for undergraduate students of engineering, computer science, computer applications, and information technology. It is designed to serve as a textbook for engineering students that will clear fundamental concepts of computer programming. The book is divided into three parts, the first part is about an introduction to computers illustrating the evolution, characteristics, basic organisation, and classification of computers along with their applications. Topics like computer’s memory, computer software, the Internet, and introduction to algorithms and programming languages has been covered next. Part two is about the fundamentals of C programming, decision control and loop statements, functions, arrays, strings, pointers, structure and union, file management, and preprocessor directives. Part three gives a thorough overview of the concept of data structures including linked lists, stacks,queues, trees, and graphs book contains numerous appendices on topics such as ASCII chart, ANSI C library functions. The book includes plenty of example codes along with their outputs and several exercises, including objective type questions, review exercises, and programming problems at the end of each chapter.

8."Beginning R: The Statistical Programming Language" by Mark Gardener
“Beginning R: The Statistical Programming Language” Book Review: This book is helpful for both students and professionals as it provides beginning programming instruction for those who want to write their own scripts. This book shows how R operates for simple summary statistics, hypothesis testing, creating graphs, regression and similar operations and also provide the ability to define complex analytical situations. The book consists of 12 chapters. The book teaches how to implement basic statistical methods like the t-test, correlation, and tests of association discuss ways to turn satisfactory graphs into simply stunning ones, ways to make and rearrange your data for easier analysis. The book covers methods to carry out basic regression as well as complex model building and curvilinear regression. This book is full of simple statistical examples, that teaches the necessary elements in the context in which R is actually used.A summary is included at the end of each chapter gives a quick reference about the chapter and to remember the main points of the book anytime you need it. The book contains plenty of questions and their solution at the end of the book.

9."Parallel Computers: Architecture and Programming" by V Rajaraman and C Siva Ram Murthy
“Parallel Computers: Architecture and Programming” Book Review: This book retains the lucidity of the first edition and has added new material to reflect the advances in parallel computers. It is useful for the final year undergraduate students of computer science and engineering and information technology. The book discusses the principles of designing parallel computers and steps to program them. The book starts with an introduction to how to solve problems in parallel and describes how parallelism can be used in improving the performance of computers. The topics discussed include instruction-level parallel processing, the architecture of parallel computers, multicore processors, grid and cloud computing, parallel algorithms, parallel programming, compiler transformations, operating systems for parallel computers, and performance evaluation of parallel computers. The book contains plenty of worked-out examples and problem sets.

10."Data Structures and Algorithms Made Easy: Data Structures and Algorithmic Puzzles" by Narasimha Karumanchi
“Data Structures and Algorithms Made Easy: Data Structures and Algorithmic Puzzles” Book Review: The book offers solutions to complex Data Structure and algorithm problems. Solutions are given in C & C++ language. This book helps in preparing for interviews, exams, and campus work. The book is helpful for a computer scientist or readers belonging to a computer-related background. The book provides an introduction to algorithms and covers whole data structure topic including Recursion and Backtracking, Linked Lists, Stacks, Queues, Trees, Priority Queue and Heaps, Disjoint Sets ADT, Graph Algorithms, Sorting, Searching, Selection Algorithms, Symbol Tables, Hashing, String Algorithms, Algorithms Design Techniques, Greedy Algorithms, Divide and Conquer Algorithms, Dynamic Programming, Complexity Classes.

11."The Art of Computer Programming: Volume 1: Fundamental Algorithms" by Donald E Knuth
“The Art of Computer Programming: Volume 1: Fundamental Algorithms” Book Review: This book is designed for Computer programming enthusiasts. The contents of the book are: Basic concepts: algorithms, mathematical preliminaries, MTX, some fundamental programming techniques, Information structures: introduction, linear lists, trees, multilinked structures, dynamic storage allocation, history and bibliography. Exercise and their answers and appendices are also provided in the end as a guide to the readers.

12."Programming in Haskell" by Graham Hutton
“Programming in Haskell” Book Review: The new edition of the book has been extensively updated and expanded to include new and more advanced features of Haskell, new examples and exercises, selected solutions, and freely downloadable lecture slides and example code. While Part I of the book focuses on basic concepts, Part II introduces the reader to more advanced topics. The presentation is clean and simple. All concepts are explained from first principles and no programming experience is required, making this book convenient to a wide spectrum of readers.

2. Principles of Programming Languages

1."A Formal Semantics of Programming Languages: An Introduction" by Glynn Winskel
“Formal Semantics of Programming Languages” Book Review: This book provides basic mathematical techniques for a detailed study of the semantics and logics of programming languages. Starting with basic set theory, structural operational semantics, denotational semantics, and axiomatic semantics are introduced to define the meaning of programming languages along with associated proof techniques. Following a presentation of domain theory, the semantics and methods of proof for several functional languages are treated. The book concludes with separate chapters on treatment of recursive types and parallel programming languages and also contains many exercises and mini-projects. Students and professionals having prerequisite knowledge about the subject can refer to this book.

2."Foundations for Programming Languages" by John C Mitchell
“Foundations for Programming Languages” Book Review: This book focuses on the core concepts used in modern programming languages and these core concepts include functions, type, memory management and control. The book also provides comprehensive presentation and comparison of the object oriented programming languages. This book studies the axiomatic, operational, and denotational semantics of sequential programming languages using a series of typed lambda calculi. The book contains separate chapters on history of objects, simula, smalltalk and languages like C++ and Java. The latter chapters deal with progressively more sophisticated type systems. This book is unique for its inclusion of material on universal algebra and algebraic data types, imperative languages and Floyd-Hoare logic, and advanced chapters on polymorphism and modules, subtyping and object-oriented concepts. With its numerous illustrations, examples, and exercises, it is the perfect book for undergraduate or graduate students as well as professionals who are familiar with programming languages, software validation, and programming. The book also introduces fundamental concepts like lambda calculus, denotational semantics thereby concentrating on the main points provided by these theories. Others topics in the book include concurrency, program components, object oriented programming and inter-language interoperability. The book also contains a special chapter on logic programming that demonstrates the importance of programming methods for different kinds of problems.
3."Types and Programming Languages" by Benjamin C Pierce
“Types and Programming Languages” Book Review: This book provides a comprehensive introduction to the type systems in computer science and the basic theory of programming languages. Core concepts like untyped lambda-calculus, simple type systems, type reconstruction, universal and existential polymorphism, subtyping, bounded quantification, recursive types, kinds, and type operators are explained with programming examples as well as numerous exercises and solutions. Extended case studies are also mentioned to help develop different approaches to modeling the features of object-oriented languages. This is a must-read book for graduate and undergraduate students studying computer science and engineering or computer applications.

4."Essentials of Programming Languages" by Daniel P Friedman and Mitchell Wand and Christopher T Haynes
“Essentials of Programming Languages” Book Review: This book offers a deeper understanding of the essential concepts of programming languages in an analytical and hands-on approach. The text uses interpreters, written in Scheme, to express the semantics of many essential language elements in a way that is both clear and directly executable. It also examines some important program analyses. Additionally, extensive exercises are also provided to explore various design and implementation alternatives. The book also provides various views of programming languages using theories of abstraction thereby maintaining a clear connection between high level and low level views. The book contains new chapters on modules and continuation passing style. This book is very useful for both graduate and undergraduate courses and other education courses for programmers. This book is suitable for students or professionals, from computer science and engineering backgrounds, having prerequisite knowledge in this field.

5."Programming Languages: Concepts and Constructs" by Ravi Sethi
“Programming Languages: Concepts and Constructs” Book Review: This book focuses on the concepts of programming languages and how they work together. The book provides readable coverage of the major programming paradigms. The book focuses on the core concepts of imperative programming in Pascal and C languages and later to object oriented programming in C++ and Smalltalk. This book covers procedural (C and Pascal), object-oriented (C++ and Smalltalk), functional (ML and Scheme), and logic (Prolog) programming. The author details the ideas involved with writing programs in these languages while simultaneously dealing with some aspects of implementing compilers, i.e. attribute grammars & typing, and interpreters. The functional languages are illustrated by standard ML programs and Lisp scheme dialect. The book presents logic programming through prolog. The book provides in detail how the related concepts of a programming language work together and thereby the designers will be exposed to major programming concepts. The book concludes with a chapter on lambda calculus, giving a quick preview of the advanced material to be dealt on type checking. Novice as well as graduate students and professionals will find this to be an interesting read.

6."The Lambda Calculus: Its Syntax and Semantics" by H P Barendregt
“The Lambda Calculus: Its Syntax and Semantics” Book Review: This book serves as an encyclopedia for type-free lambda calculus. The book provides a very nice description of the semantics of programming languages. Different cases of lambda calculus models are described in a uniform manner in this book. Throughout the book, examples of various simple models are given and later general theory of the same is developed. The author has successfully compiled almost all results on type-free lambda calculus up to the time of its publication while remaining comprehensive and self-contained. Proofs of all theorems/ lemmas are given in detail with the exception of those left up to the readers for exercise. Numerous examples and exercises are provided for practice, arranged from easy to difficult levels. This is the go-to book for students, functional programmers, and researchers who wish to delve into lambda calculus, combinatory logic, type theory, constructive math, etc. in greater detail. Readers should have an understanding of very basic mathematical logic to grasp the book’s full potential. The book also has a very nice graphical layout with regard to the symbols which makes it much easier to read and learn from. This book is a must for all the computer science students. Exercises at the end of each chapter are very helpful and also are very interesting. This book is purely theoretical and principally aimed for researchers/students of its field.
“Principles of Programming Languages” Book Review: This book provides a step-by-step approach to programming for beginners as well as budding programmers who wish to understand the basic principles of programming languages. Computer preliminaries, introduction to DOS, FORTRAN fundamentals, Numerical I/O, transfer of control, looping, arrays, function & subroutines, and files & file handling are the various concepts dealt with in separate chapters. This book is intended for B.E. and B. Tech students for their initial semesters.

8."Principles of Programming Languages" by Dowek
“Programming Languages: Principles and Paradigms” Book Review: This book provides a self-contained approach to the main principles behind the design and implementation of modern programming languages. The author uses activation stacks and other machine-level abstractions to explain different complex ideas, like scopes and evaluation mechanisms, in concrete terms. Many aspects of C++, Java, and C# are also covered and compared thoroughly in great detail. This makes it a well-suited read for undergraduate or graduate students studying computer science and engineering.

9."An Introduction to Principles of Programming Languages" by Prashant Richhariya
“An Introduction to Principles of Programming Languages” Book Review: This book offers a comprehensive introduction to the fundamentals of programming languages and their procedures. Functional programming, Logic programming, Concurrent programming, and Object-oriented programming are some of the language procedures that have been discussed at length. Reading this text will prove to be instrumental for undergraduate and graduate students, professionals, and programmers from computer science and engineering backgrounds.

10."Programming Languages: Principles & Practices 3rd Edition" by Kenneth C Louden
“Programming Languages: Principles and Practices” Book Review: This book provides a comprehensive overview of programming languages through general principles combined with details about various modern languages. C, C++, Smalltalk, Java, Ada, ML, Haskell, Scheme, and Prolog are some of the major languages covered in this volume. It includes extensive coverage of the theoretical foundations of programming languages and implementation issues replete with exercises and problems to solve. This makes it the perfect bridge between compiler courses and theoretical study of programming languages. This book is meant for computer science students and programmers alike.

11."A Discipline of Programming (Prentice-Hall Series in Automatic Computation)" by E Dijkstra
“A Discipline of Programming (Prentice-Hall Series in Automatic Computation)” Book Review: The book is suitable for students pursuing graduation in computation and electronics too. The book is designed for individuals interested in Computation. The book explains the principles of programming. The book begins with the basics of discipline that describes the basics of programming. The book also teaches how to approach a programming question and how to begin by writing algorithms. The book also includes small programs for better understanding. The book also covers automata theory that is used for grasping programming.

12."Coders at Work: Reflections on the Craft of Programming" by Peter Seibel
“Coders at Work: Reflections on the Craft of Programming” Book Review: The book reviews 16 of the most computer programmers alive today at Coders at Work. The chapters are based on Jamie Zawinski, Brad Fitzparick, Douglas Crockford, Brendan Eich, Joshua Bloch, Joe Armstrong and Simon Peyton Jones. The book also covers Peter Norvig, Guy Steele, Dan Ingalls, L Peter Deutsch, Ken Thompson, Fran Allen, Bernie Cosell and Donal Knuth. The book can be used by anyone wanting to learn programming.

3. Theory of Programming Languages

1."Introduction to Programming Languages" by Bansal
“Introduction to Programming Languages” Book Review: This book introduces the basic principles of programming languages design and implementation. Data structures and discrete structures are also introduced from the point of view of programming language theory. Essential topics such as object-oriented programming, functional programming, logic programming, imperative programming, information exchange between subprograms, syntax and semantics, and program structures are covered in detail. Some newer concepts have also been explained including agent-based programming, web and multimedia programming, event-based programming, models for mobile computing, synchronous languages, dependency analysis, concurrent programming constructs, communicating sequential processes, and high-productivity programming on massive parallel computers. Replete with examples, case-studies and exercises, this book is an ideal read for students as well as professionals.

2."Implementation and Application of Functional Languages" by Horvath Butterfield
“Implementation and Application of Functional Languages” Book Review: This book consists of the selected papers from the proceedings of the 24th International Symposium on Implementation and Application of Functional Languages, IFL 2012, held in Oxford, UK, in Aug – Sept 2012. The 14 selected and revised papers cover the topic of the implementation and application of functional languages and function-based programming.

3."Fundamentals of Programming Languages" by Horowitz Ellis
“Fundamentals of Programming Languages” Book Review: This book focuses on the essential concepts of programming languages. It provides detailed information on fundamental topics such as statements, data types, variables, concurrency, procedures, expressions, exception handling, scope, and typing. This book provides a framework for understanding future language designs, making it an ideal read for students and novices in this field.

4."The Interpretation of Object-Oriented Programming Languages 2nd ed. 2002 Edition" by Iain Craig
“The Interpretation of Object-Oriented Programming Languages” Book Review: The book covers all the fundamental concepts of object-oriented programming languages. Prototype, class-based and actor languages are explained in detail. The book also details all aspects of C# that are related to object-oriented programming. This edition also includes an appendix on a kernel language, BeCecil, that can implement object-oriented constructs within a single framework. Both students and professionals can refer to this book.

4. Programming Language Translators

1."The Spoken Language Translator (Studies in Natural Language Processing)" by Manny Rayner and David Carter
“The Spoken Language Translator (Studies in Natural Language Processing)” Book Review: This book is helpful for both who wish to know what is achievable in spoken language. The book provides detailed information of spoken language translators. It contains majorly language processing components, built on SRI core language.

2."Program Phases: A Programming Language and Api Translator" by Dave Mihalik
“Program Phases: A Programming Language and Api Translator” Book Review: The book is helpful to understand programming languages.The book contains a combination of programs like Java, Visual FoxPro, C, C++, Python and Delphi.

3."Compiler Technology: Tools, Translators and Language Implementation (The Springer International Series in Engineering and Computer Science)" by Derek Beng Kee Kiong
“Compiler Technology: Tools, Translators and Language Implementation (The Springer International Series in Engineering and Computer Science)” Book Review: The book is suitable for undergraduate students This book is fundamental to computer science. It provides information about tools, translators and language implementation is to enable quick development of analysis tools. It consists of various exercises where users will find intricacies of language implementation.

4."Language Implementation Patterns (Pragmatic Programmers)" by Terence Parr
“Language Implementation Patterns (Pragmatic Programmers)” Book Review: The book provides information on building configuration file readers, data readers, model driven code generators and source analyzers. It consists of most common design patterns along with sample implementation of each.

5."Natural Language Processing of Semitic Languages (Theory and Applications of Natural Language Processing)" by Imed Zitouni
“Natural Language Processing of Semitic Languages (Theory and Applications of Natural Language Processing)” Book Review: This book addresses interesting and challenging languages for NLP research of semitic languages. It gives information on algorithms and techniques and how these techniques are used in semitic languages. It is based on practical application.

5. Parallel Programming

1."Programming Massively Parallel Processors" by Kirk
2."An Introduction to Parallel Programming" by Pacheco
3."Parallel Programming in C with Mpi and Openmp" by Michael Quinn
“Parallel Programming in C with Mpi and Openmp” Book Review: This book introduces a rock-solid design methodology with coverage of the most important MPI functions and OpenMP directives. It also demonstrates, through a wide range of examples, how to develop parallel programs that will execute efficiently on today’s parallel platforms. It addresses the needs of students and professionals who want to learn how to design, analyze, implement, and benchmark parallel programs in C using MPI and/or OpenMP. It includes motivation and history, parallel architectures etc.

4."Parallel Programming: Techniques and Applications Using Networked Workstations and Parallel Computers" by WILKINSON
“Parallel Programming: Techniques and Applications Using Networked Workstations and Parallel Computers” Book Review: It is useful for undergraduate/graduate-level parallel programming courses. It links to real parallel programming software-covers the techniques of parallel programming in a practical manner that enables students to write and evaluate their parallel programs. It focuses on cluster programming as this type of programming has become more widespread with the availability of low-cost computers.

5."Python Parallel Programming Cookbook" by Giancarlo Zaccone
“Python Parallel Programming Cookbook” Book Review: This book is for software developers who want to use parallel programming techniques to write powerful and efficient code. It allows nonexperts to deal with and easily understand the topics exposed in this book. It is easy to master the basics and the advanced features of parallel computing.

6."Programming Massively Parallel Processors: A Hands-on Approach" by Wen-mei W Hwu and David B Kirk
“Programming Massively Parallel Processors: A Hands-on Approach” by Wen-mei W Hwu and David B Kirk Book Review: Parallel programming and GPU engineering. Different methods for developing equal projects are investigated in detail. Contextual investigations show the improvement interaction, which starts with computational reasoning and finishes with successful and effective equal projects. This book portrays computational reasoning methods that will empower understudies to consider issues in manners that are managable to superior equal processing. It uses CUDA (Compute Unified Device Architecture), NVIDIA’s product advancement apparatus established explicitly for hugely equal conditions. Studies figure out how to accomplish both superior and high-unwavering quality utilizing the CUDA programming model just as OpenCL. This book is suggested for cutting edge understudies, programmers, developers, and equipment engineers. Shows computational reasoning and critical thinking strategies that encourage superior equal processing. Uses CUDA (Compute Unified Device Architecture), NVIDIA’s product improvement device established explicitly for greatly equal conditions. Tells you the best way to accomplish both superior and high-unwavering quality utilizing the CUDA programming model just as OpenCL.

We have put a lot of effort into researching the best books on Programming and came out with a recommended list and their reviews. If any more book needs to be added to this list, please email us. We are working on free pdf downloads for books on Programming and will publish the download link here. Fill out this Programming books pdf download" request form for download notification.

Subscribe to our Newsletters (Subject-wise). Participate in the Sanfoundry Certification contest to get free Certificate of Merit. Join our social networks below and stay updated with latest contests, videos, internships and jobs!

Youtube | Telegram | LinkedIn | Instagram | Facebook | Twitter | Pinterest
Manish Bhojasia - Founder & CTO at Sanfoundry
Manish Bhojasia, a technology veteran with 20+ years @ Cisco & Wipro, is Founder and CTO at Sanfoundry. He lives in Bangalore, and focuses on development of Linux Kernel, SAN Technologies, Advanced C, Data Structures & Alogrithms. Stay connected with him at LinkedIn.

Subscribe to his free Masterclasses at Youtube & technical discussions at Telegram SanfoundryClasses.