Top 50 Programming books on reddit (List)

1. Clean Code: A Handbook of Agile Software Craftsmanship

  • Book nr. 1 – 3660 upvotes
    Even bad code can function. But if code isn’t clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn’t have to be that way. Noted software expert Robert C. Martin presents a revolutionary paradigm with Clean Code: A Handbook of Agile Software Craftsmanship . Martin has teamed up with his colleagues from Object Mentor to distill their best agile practice of cleaning code “on the f…

2. Code: The Hidden Language of Computer Hardware and Software

  • Book nr. 2 – 2652 upvotes
    What do flashlights, the British invasion, black cats, and seesaws have to do with computers? In CODE, they show us the ingenious ways we manipulate language and invent new means of communicating with each other. And through CODE, we see how this ingenuity and our very human compulsion to communicate have driven the technological innovations of the past two centuries. Using everyday objects and familiar language systems such as Braille and Morse code, author Charles Petzold weaves an illumi…

3. Cracking the Coding Interview: 150 Programming Questions and Solutions

  • Book nr. 3 – 1853 upvotes
    Now in the 5th edition, Cracking the Coding Interview gives you the interview preparation you need to get the top software developer jobs. This is a deeply technical book and focuses on the software engineering skills to ace your interview. The book is over 500 pages and includes 150 programming interview questions and answers, as well as other advice. The full list of topics are as follows:The Interview ProcessThis section offers an overview on questions are selected and how you will be eval…

4. Introduction to Algorithms, 3rd Edition (MIT Press)

  • Book nr. 4 – 1809 upvotes
    Some books on algorithms are rigorous but incomplete; others cover masses of material but lack rigor. Introduction to Algorithms uniquely combines rigor and comprehensiveness. The book covers a broad range of algorithms in depth, yet makes their design and analysis accessible to all levels of readers. Each chapter is relatively self-contained and can be used as a unit of study. The algorithms are described in English and in a pseudocode designed to be readable by anyone who has done a little…

5. The C Programming Language

  • Book nr. 5 – 1391 upvotes
    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 …

6. Accelerated C++: Practical Programming by Example

  • Book nr. 6 – 1107 upvotes
    This is a first-rate introductory book that takes a practical approach to solving problems using C++. It covers a much wider scope of C++ programming than other introductory books Ive seen, and in a surprisingly compact format. – Dag Bruck, founding member of the ANSI/ISO C++ committee The authors present a clear, cogent introduction to C++ programming in a way that gets the student writing nontrivial programs immediately. – Stephen Clamage, Sun Microsystems, Inc., and chair of the ANSI C++ c…

7. Code Complete: A Practical Handbook of Software Construction, Second Edition

  • Book nr. 7 – 911 upvotes
    Widely considered one of the best practical guides to programming, Steve McConnell’s original CODE COMPLETE has been helping developers write better software for more than a decade. Now this classic book has been fully updated and revised with leading-edge practices—and hundreds of new code samples—illustrating the art and science of software construction. Capturing the body of knowledge available from research, academia, and everyday commercial practice, McConnell synthesizes the most effect…

8. Design Patterns: Elements of Reusable Object-Oriented Software

  • Book nr. 8 – 850 upvotes
    These texts cover the design of object-oriented software and examine how to investigate requirements, create solutions and then translate designs into code, showing developers how to make practical use of the most significant recent developments. A summary of UML notation is included.

9. C++ Primer (5th Edition)

  • Book nr. 9 – 845 upvotes
    Bestselling Programming Tutorial and Reference Completely Rewritten for the New C++11 Standard Fully updated and recast for the newly released C++11 standard, this authoritative and comprehensive introduction to C++ will help you to learn the language fast, and to use it in modern, highly effective ways. Highlighting today’s best practices, the authors show how to use both the core language and its standard library to write efficient, readable, and powerful code. C++ Primer, Fi…

10. The Pragmatic Programmer: From Journeyman to Master

  • Book nr. 10 – 698 upvotes
    — Ward Cunningham Straight from the programming trenches, The Pragmatic Programmer cuts through the increasing specialization and technicalities of modern software development to examine the core process–taking a requirement and producing working, maintainable code that delights its users. It covers topics ranging from personal responsibility and career development to architectural techniques for keeping your code flexible and easy to adapt and reuse. Read this book, and youll learn how to …

11. Microsoft SQL Server 2012 High-Performance T-SQL Using Window Functions (Developer Reference)

  • Book nr. 11 – 623 upvotes
    Apply powerful window functions in T-SQL—and increase the performance and speed of your queries Optimize your queries—and obtain simple and elegant solutions to a variety of problems—using window functions in Transact-SQL. Led by T-SQL expert Itzik Ben-Gan, you’ll learn how to apply calculations against sets of rows in a flexible, clear, and efficient manner. Ideal whether you’re a database administrator or developer, this practical guide demonstrates ways to use more than a dozen T-SQL quer…

12. Working Effectively with Legacy Code

  • Book nr. 12 – 584 upvotes
    Get more out of your legacy systems: more performance, functionality, reliability, and manageability Is your code easy to change? Can you get nearly instantaneous feedback when you do change it? Do you understand it? If the answer to any of these questions is no, you have legacy code, and it is draining time and money away from your development efforts. In this book, Michael Feathers offers start-to-finish strategies for working more effectively with large, untested legacy code bases. This bo…

13. The D Programming Language

  • Book nr. 13 – 548 upvotes
    “To the best of my knowledge, D offers an unprecedentedly adroit integration of several powerful programming paradigms: imperative, object-oriented, functional, and meta.”—From the Foreword by Walter Bright “This is a book by a skilled author describing an interesting programming language. I’m sure you’ll find the read rewarding.”—From the Foreword by Scott Meyers D is a programming language built to help programmers address the challenges of modern software development. It does so by fosteri…

14. Cracking the Coding Interview: 189 Programming Questions and Solutions

  • Book nr. 14 – 494 upvotes
    I am not a recruiter. I am a software engineer. And as such, I know what it’s like to be asked to whip up brilliant algorithms on the spot and then write flawless code on a whiteboard. I’ve been through this as a candidate and as an interviewer. Cracking the Coding Interview, 6th Edition is here to help you through this process, teaching you what you need to know and enabling you to perform at your very best. I’ve coached and interviewed hundreds of software engineers. The result is this bo…

15. A Gift of Fire: Social, Legal, and Ethical Issues for Computing Technology (4th Edition)

  • Book nr. 15 – 486 upvotes
    A Gift of Fire: Social, Legal, and Ethical Issues for Computing Technology, 4e is ideal for courses in Computer Ethics and Computers and Society. It is also a useful reference for computer science professionals or anyone interested in learning more about computing technology and its overarching impact. Sara Baase explores the social, legal, philosophical, ethical, political, constitutional, and economic implications of computing and the controversies they raise. With a computer scientist’s…

16. Head First Java, 2nd Edition

  • Book nr. 16 – 458 upvotes
    Learning a complex new language is no easy task especially when it s an object-oriented computer programming language like Java. You might think the problem is your brain. It seems to have a mind of its own, a mind that doesn’t always want to take in the dry, technical stuff you’re forced to study. The fact is your brain craves novelty. It’s constantly searching, scanning, waiting for something unusual to happen. After all, that’s the way it was built to help you stay alive. It takes all the…

17. Game Engine Architecture, Second Edition

  • Book nr. 17 – 452 upvotes
    Hailed as a “must-have textbook” (CHOICE, January 2010), the first edition of Game Engine Architecture provided readers with a complete guide to the theory and practice of game engine software development. Updating the content to match today’s landscape of game engine architecture, this second edition continues to thoroughly cover the major components that make up a typical commercial game engine. New to the Second Edition Information on new topics, including the latest variant of the C++ p…

18. How to Win Friends & Influence People

  • Book nr. 18 – 423 upvotes
    For more than sixty years the rock-solid, time-tested advice in this book has carried thousands of now famous people up the ladder of success in their business and personal lives. Now this previously revised and updated bestseller is available in trade paperback for the first time to help you achieve your maximum potential throughout the next century! Learn: * Three fundamental techniques in handling people * The six ways to make people like you * The twelve ways to win people to you way of t…

19. C Programming: A Modern Approach, 2nd Edition

  • Book nr. 19 – 394 upvotes
    The first edition of C Programming: A Modern Approach was popular with students and faculty alike because of its clarity and comprehensiveness as well as its trademark Q&A sections. Professor King’s spiral approach made it accessible to a broad range of readers, from beginners to more advanced students. With adoptions at over 225 colleges, the first edition was one of the leading C textbooks of the last ten years. The second edition maintains all the book’s popular features and brings it up t…

20. Algorithms (4th Edition)

  • Book nr. 20 – 370 upvotes
    This fourth edition of Robert Sedgewick and Kevin Wayne’s Algorithms is the leading textbook on algorithms today and is widely used in colleges and universities worldwide. This book surveys the most important computer algorithms currently in use and provides a full treatment of data structures and algorithms for sorting, searching, graph processing, and string processing–including fifty algorithms every programmer should know. In this edition, new Java implementations are written in an a…

21. Computer Organization and Design, Fourth Edition: The Hardware/Software Interface (The Morgan Kau…

  • Book nr. 21 – 196 upvotes
    This Fourth Revised Edition of Computer Organization and Design includes a complete set of updated and new exercises, along with improvements and changes suggested by instructors and students. Focusing on the revolutionary change taking place in industry today–the switch from uniprocessor to multicore microprocessors–this classic textbook has a modern and up-to-date focus on parallelism in all its forms. Examples highlighting multicore and GPU processor designs are supported with performanc…

22. Making Software: What Really Works, and Why We Believe It

  • Book nr. 22 – 195 upvotes
    Many claims are made about how certain tools, technologies, and practices improve software development. But which claims are verifiable, and which are merely wishful thinking? In this book, leading thinkers such as Steve McConnell, Barry Boehm, and Barbara Kitchenham offer essays that uncover the truth and unmask myths commonly held among the software development community. Their insights may surprise you.Are some programmers really ten times more productive than others?Does writing tests fir…

23. Learning Python, 5th Edition

  • Book nr. 23 – 193 upvotes
    Get a comprehensive, in-depth introduction to the core Python language with this hands-on book. Based on author Mark Lutz’s popular training course, this updated fifth edition will help you quickly write efficient, high-quality code with Python. It’s an ideal way to begin, whether you’re new to programming or a professional developer versed in other languages.Complete with quizzes, exercises, and helpful illustrations, this easy-to-follow, self-paced tutorial gets you started with both Pytho…

24. Surely You’re Joking, Mr. Feynman! (Adventures of a Curious Character)

  • Book nr. 24 – 190 upvotes
    A New York Times bestseller―the outrageous exploits of one of this century’s greatest scientific minds and a legendary American original.Richard Feynman, winner of the Nobel Prize in physics, thrived on outrageous adventures. Here he recounts in his inimitable voice his experience trading ideas on atomic physics with Einstein and Bohr and ideas on gambling with Nick the Greek; cracking the uncrackable safes guarding the most deeply held nuclear secrets; accompanying a ballet on his bongo drum…

25. Don’t Make Me Think: A Common Sense Approach to Web Usability, 2nd Edition

  • Book nr. 25 – 187 upvotes
    Five years and more than 100,000 copies after it was first published, it’s hard to imagine anyone working in Web design who hasn’t read Steve Krug’s “instant classic” on Web usability, but people are still discovering it every day. In this second edition, Steve adds three new chapters in the same style as the original: wry and entertaining, yet loaded with insights and practical advice for novice and veteran alike. Don’t be surprised if it completely changes the way you think about W…

26. Elements of Programming Interviews: The Insiders’ Guide

  • Book nr. 26 – 184 upvotes
    The Java version of EPI is available on Amazon! Search for Elements of Programming Interview in Java, or use the short link bit.ly/epijava This is the C++ version.Before you buy this book, please first head over to our sample page – elementsofprogramminginterviews.com/sampleThe sampler should give you a very good idea of the quality and style of our book. In particular, be sure you are comfortable with the level and with our C++ coding style.Solutions include code snippets which are primaril…

27. Domain-Driven Design: Tackling Complexity in the Heart of Software

  • Book nr. 27 – 183 upvotes
    Title: Domain-Driven Design( Tackling Complexity in the Heart of Software) Binding: Hardcover Author: EricEvans Publisher: Addison-WesleyProfessional

28. 3:16 Bible Texts Illuminated

  • Book nr. 28 – 181 upvotes
    What happens when a world-renowned computer scientist applies scientific methodology to studying the Bible, writes about his findings, and has some of the world’s best calligraphers illustrate the work? The result is 3:16 Bible Texts Illuminated, a treasure of profound biblical insight and enchanting calligraphy that will enlighten your mind, your eyes, and your spirit. Donald E. Knuth so loved the Bible that he dedicated five years of his life to creating this masterpiece. With it, you will …

29. How to Break Software: A Practical Guide to Testing W/CD

  • Book nr. 29 – 180 upvotes
    How to Break Software is a departure from conventional testing in which testers prepare a written test plan and then use it as a script when testing the software. The testing techniques in this book are as flexible as conventional testing is rigid. And flexibility is needed in software projects in which requirements can change, bugs can become features and schedule pressures often force plans to be reassessed. Software testing is not such an exact science that one can determine what to test…

30. Game Programming Patterns

  • Book nr. 30 – 180 upvotes
    The biggest challenge facing many game programmers is completing their game. Most game projects fizzle out, overwhelmed by the complexity of their own code. Game Programming Patterns tackles that exact problem. Based on years of experience in shipped AAA titles, this book collects proven patterns to untangle and optimize your game, organized as independent recipes so you can pick just the patterns you need. You will learn how to write a robust game loop, how to organize your entities using c…

31. Information Modeling and Relational Databases, Second Edition (The Morgan Kaufmann Series in Data…

  • Book nr. 31 – 359 upvotes
    Information Modeling and Relational Databases, Second Edition, provides an introduction to ORM (Object-Role Modeling)and much more. In fact, it is the only book to go beyond introductory coverage and provide all of the in-depth instruction you need to transform knowledge from domain experts into a sound database design. This book is intended for anyone with a stake in the accuracy and efficacy of databases: systems analysts, information modelers, database designers and administrators, and pro…

32. Refactoring: Improving the Design of Existing Code

  • Book nr. 32 – 350 upvotes
    As the application of object technology–particularly the Java programming language–has become commonplace, a new problem has emerged to confront the software development community. Significant numbers of poorly designed programs have been created by less-experienced developers, resulting in applications that are inefficient and hard to maintain and extend. Increasingly, software system professionals are discovering just how difficult it is to work with these inherited, non-optimal applicati…

33. Programming Interviews Exposed: Secrets to Landing Your Next Job

  • Book nr. 33 – 348 upvotes
    Be prepared for your next job interview with this tried-and-true advice In today’s tight job market, competition for programming jobs is hotter than ever. This third edition of a popular guide to programming interviews includes new code examples, information on the latest languages, new chapters on sorting and design patterns, tips on using LinkedIn, and a downloadable app to help prepare applicants for the interview. Like its earlier editions, this guide covers what software companies and I…

34. The Elements of Computing Systems: Building a Modern Computer from First Principles

  • Book nr. 34 – 328 upvotes
    In the early days of computer science, the interactions of hardware, software, compilers, and operating system were simple enough to allow students to see an overall picture of how computers worked. With the increasing complexity of computer technology and the resulting specialization of knowledge, such clarity is often lost. Unlike other texts that cover only one aspect of the field, The Elements of Computing Systems gives students an integrated and rigorous picture of applied computer scie…

35. JavaScript: The Good Parts

  • Book nr. 35 – 324 upvotes
    Most programming languages contain good and bad parts, but JavaScript has more than its share of the bad, having been developed and released in a hurry before it could be refined. This authoritative book scrapes away these bad features to reveal a subset of JavaScript that’s more reliable, readable, and maintainable than the language as a whole—a subset you can use to create truly extensible and efficient code.Considered the JavaScript expert by many people in the development community, autho…

36. How Google Tests Software

  • Book nr. 36 – 310 upvotes
    2012 Jolt Award finalist! Pioneering the Future of Software Test Do you need to get it right, too? Then, learn from Google. Legendary testing expert James Whittaker, until recently a Google testing leader, and two top Google experts reveal exactly how Google tests software, offering brand-new best practices you can use even if you’re not quite Google’s size…yet! Breakthrough Techniques You Can Actually Use Discover 100% practical, amazingly scalable techniques for analyzi…

37. Precalculus: A Prelude to Calculus

  • Book nr. 37 – 287 upvotes
    Sheldon Axler’s Precalculus focuses only on topics that students actually need to succeed in calculus. Because of this, Precalculus is a very manageable size even though it includes a student solutions manual. The book is geared towards courses with intermediate algebra prerequisites and it does not assume that students remember any trigonometry. It covers topics such as inverse functions, logarithms, half-life and exponential growth, area, e, the exponential function, the natural logarithm…

38. The Algorithm Design Manual

  • Book nr. 38 – 272 upvotes
    This newly expanded and updated second edition of the best-selling classic continues to take the “mystery” out of designing algorithms, and analyzing their efficacy and efficiency. Expanding on the first edition, the book now serves as the primary textbook of choice for algorithm design courses while maintaining its status as the premier practical reference guide to algorithms for programmers, researchers, and students.The reader-friendly Algorithm Design Manual provides straightforward acces…

39. Principles of Program Analysis

  • Book nr. 39 – 263 upvotes
    Program analysis utilizes static techniques for computing reliable information about the dynamic behavior of programs. Applications include compilers (for code improvement), software validation (for detecting errors) and transformations between data representation (for solving problems such as Y2K). This book is unique in providing an overview of the four major approaches to program analysis: data flow analysis, constraint-based analysis, abstract interpretation, and type and effect systems. …

40. C++ In Action: Industrial Strength Programming Techniques (With CD-ROM)

  • Book nr. 40 – 260 upvotes
    C++ in Action introduces state-of-the-art C++ programming and problem-solving techniques for developing efficient, powerful, scalable software systems. Renowned software architect Bartosz Milewski starts from two key premises. First, programs aren’t written for computers: they’re written for other programmers who will have to integrate and maintain them. Second, software development languages aren’t ends in themselves: they’re tools to solve problems. Starting from these principles, Milewski …

41. Math You Can’t Use: Patents, Copyright, and Software

  • Book nr. 41 – 248 upvotes
    This lively and innovative book is about computer code and the legal controls and restrictions on those who write it. The widespread use of personal computers and the Internet have made it possible to release new data or tools instantaneously to virtually the entire world. However, while the digital revolution allows quick and extensive use of these intellectual properties, it also means that their developers face new challenges in retaining their rights as creators. Drawing on a host of …

42. Peopleware: Productive Projects and Teams (3rd Edition)

  • Book nr. 42 – 242 upvotes
    Few books in computing have had as profound an influence on software management as Peopleware . The unique insight of this longtime best seller is that the major issues of software development are human, not technical. They’re not easy issues; but solve them, and you’ll maximize your chances of success. “Peopleware has long been one of my two favorite books on software engineering. Its underlying strength is its base of immense real experience, much of it quantified. Many, many varied p…

43. Effective Programming: More Than Writing Code

  • Book nr. 43 – 235 upvotes
    ABOUT THE BOOKJeff Atwood began the Coding Horror blog in 2004, and is convinced that it changed his life. He needed a way to keep track of software development over time – whatever he was thinking about or working on. He researched subjects he found interesting, then documented his research with a public blog post, which he could easily find and refer to later. Over time, increasing numbers of blog visitors found the posts helpful, relevant and interesting. Now, approximately 100,000 readers…

44. Algorithms in a Nutshell (In a Nutshell (O’Reilly))

  • Book nr. 44 – 232 upvotes
    Creating robust software requires the use of efficient algorithms, but programmers seldom think about them until a problem occurs. Algorithms in a Nutshell describes a large number of existing algorithms for solving a variety of problems, and helps you select and implement the right algorithm for your needs — with just enough math to let you understand and analyze algorithm performance. With its focus on application, rather than theory, this book provides efficient code solutions in several …

45. BIOS Disassembly Ninjutsu Uncovered (Uncovered series)

  • Book nr. 45 – 214 upvotes
    Explaining security vulnerabilities, possible exploitation scenarios, and prevention in a systematic manner, this guide to BIOS exploitation describes the reverse-engineering techniques used to gather information from BIOS and expansion ROMs. SMBIOS/DMI exploitation techniques—including BIOS rootkits and computer defense—and the exploitation of embedded x86 BIOS are also covered.

46. Expert C Programming: Deep C Secrets

  • Book nr. 46 – 209 upvotes
    This book is for the knowledgeable C programmer, this is a second book that gives the C programmers advanced tips and tricks. This book will help the C programmer reach new heights as a professional. Organized to make it easy for the reader to scan to sections that are relevant to their immediate needs.

47. Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition)

  • Book nr. 47 – 207 upvotes
    “Every C++ professional needs a copy of Effective C++. It is an absolute must-read for anyone thinking of doing serious C++ development. If you’ve never read Effective C++ and you think you know everything about C++, think again.”— Steve Schirripa, Software Engineer, Google “C++ and the C++ community have grown up in the last fifteen years, and the third edition of Effective C++ reflects this. The clear and precise style of the book is evidence of Scott’s deep insight and distinctive abili…

48. Hacker’s Delight

  • Book nr. 48 – 207 upvotes
    A collection useful programming advice the author has collected over the years; small algorithms that make the programmer’s task easier. * At long last, proven short-cuts to mastering difficult aspects of computer programming * Learn to program at a more advanced level than is generally taught in schools and training courses, and much more advanced than can be learned through individual study/experience. * An instant cult classic for programmers! Computer programmers are often referred to a…

49. Why Does Software Cost So Much?: And Other Puzzles of the Information Age

  • Book nr. 49 – 205 upvotes
    dust cover intact. pages unmarked.

50. The Making of Prince of Persia

  • Book nr. 50 – 199 upvotes
    Before Prince of Persia was a best-selling video game franchise and a Jerry Bruckheimer movie, it was an Apple II computer game created and programmed by one person, Jordan Mechner. Mechner’s candid and revealing journals from the time capture his journey from his parents’ basement to the forefront of the fast-growing 1980s video game industry… and the creative, technical and personal struggles that brought the prince into being and ultimately into the homes of millions of people worldwide….