TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: What is the best programming book you've read?

63 pointsby cylde_frogover 3 years ago
Whole language is an approach to, or attitude toward learning that sees language as a whole entity, and writing, speaking, reading, and listening should be integrated when learned.

32 comments

crossroadsguyover 3 years ago
K&amp;R. It was the best programming book I read. I have not read many other programming books to be honest. I couldn&#x27;t finish most rather.<p>It&#x27;s been years since I even touched C and at this point I am not going back, I know; but as an Android dev I wish I could find a non-lengthy book like K&amp;R that would expose me to Kotlin like I was exposed to C, while helping unlearn a lot of Java.
评论 #28663020 未加载
评论 #28664854 未加载
评论 #28664618 未加载
评论 #28663500 未加载
furstenheimover 3 years ago
Effective Java by Joshua Bloch is really good. Some of the learnings only apply to Java, but most apply to any language.<p>All the tips are very focused on how the code, APIs and even the languages evolve, trying to understand how your changes could confuse other developers. Compared to clean code, it&#x27;s clear that it&#x27;s written by someone who has done a lot of coding and seen the evolution, with a very pragmatic approach. Not just theoretical like Clean Code
khaledhover 3 years ago
There&#x27;s no single book that I would recommend. What worked for me is to read the history of programming languages (and operating systems, to better understand the relationship between them).<p>My recommendation is to read the original papers&#x2F;manuals (bitsavers and ACM&#x2F;Sci-Hub are my main resources). Starting with how computers were programmed befor high level languages were developed (i.e. machine code and assembly), then going through the early languages: Fortran, Lisp, COBOL, Algol; and understand why they were developed and the main ideas in those languages. Lisp had a huge influence on later generations of functional programming languages; Algol (first developed in 1958) is the granddaddy of all what we call today C-like languages, including CPL, BCPL, B, C, Pascal, C++, Java, C#, etc. Simula (developed in the early 60s) is the granddaddy of most object-oriented languages, including Smalltalk, C++ and their descendants.<p>Many ideas that are core to modern programming languages were developed in those early formative years (late 50s, 60s, and 70s); e.g. lexical scoping, dynamic dispatch, coroutines, garbage collection, encapsulation, virtual machine bytecode, metaprogramming, and many others.<p>I find it fascinating to read this early literature and understand why and how those ideas (that still live to this day) were formed.
allenleeinover 3 years ago
1. SICP<p>2. How to Design Programs<p>3. Software Design for Flexibility: How to Avoid Programming Yourself Into a Corner
评论 #28704572 未加载
qorrectover 3 years ago
Not sure this one counts but it&#x27;s one of the best books ever:<p>Code by Charles Petzold - <a href="https:&#x2F;&#x2F;www.goodreads.com&#x2F;en&#x2F;book&#x2F;show&#x2F;44882.Code" rel="nofollow">https:&#x2F;&#x2F;www.goodreads.com&#x2F;en&#x2F;book&#x2F;show&#x2F;44882.Code</a> .<p>Others would be:<p>Neural Smithing ( its now obsolete but was great at the time ) <a href="https:&#x2F;&#x2F;www.goodreads.com&#x2F;book&#x2F;show&#x2F;1153223.Neural_Smithing" rel="nofollow">https:&#x2F;&#x2F;www.goodreads.com&#x2F;book&#x2F;show&#x2F;1153223.Neural_Smithing</a><p>The Pragmatic Programmer <a href="https:&#x2F;&#x2F;www.goodreads.com&#x2F;en&#x2F;book&#x2F;show&#x2F;4099.The_Pragmatic_Programmer" rel="nofollow">https:&#x2F;&#x2F;www.goodreads.com&#x2F;en&#x2F;book&#x2F;show&#x2F;4099.The_Pragmatic_Pr...</a><p>The Effective series by Scott Myers <a href="https:&#x2F;&#x2F;www.goodreads.com&#x2F;series&#x2F;160060-effective-c" rel="nofollow">https:&#x2F;&#x2F;www.goodreads.com&#x2F;series&#x2F;160060-effective-c</a>
peakabooover 3 years ago
If anyone has a good book about writing as simple programs as possible instead of as flexible as possible, I would appriciate it.<p>Because the problem today is complexity and abstractions. It prevents us from changing code easily, deleting code easily, and understanding the full program flow easily.
评论 #28662936 未加载
评论 #28661076 未加载
cratermoonover 3 years ago
Refactoring: Improving the Design of Existing Code<p>For helping realize that in all the books telling me how to write good code, explaining language constructs, and working as a software developer, none of them ever made it clear to me that programmers spend less than half their time writing new code from scratch. For showing me that programming involves revising and improving far more than opening up an editor to a new file in an empty repo.
twodayriceover 3 years ago
Unix network programming. Stevens brought sockets to the masses and helped launch the internet as we know it.
xupybdover 3 years ago
Domain driven design made functional. It takes the weird world of functional programming and shows how it can be applied to building run of the mill business apps. Instead of being an app that only functional programmers can understand these apps, at least some of the domain modeling can be understood by stakeholders.
评论 #28664638 未加载
rajandattaover 3 years ago
&#x27;Object Oriented Software Construction&#x27; - Bertrand Meyer.<p>Did not agree with everything but it was excellent.
dunefoxover 3 years ago
For me it&#x27;s boring old SICP. It&#x27;s just that good.
chris_jover 3 years ago
Growing Object Oriented Software, Guided by Tests by Steve Freeman and Natt Pryce. It taught me an awful lot of lessons about object oriented design and London-school TDD. It was published back in 2009 and things have moved on a bit since then but it&#x27;s still worth reading if you want to understand that style of development. Reading this book changed the way that I write software, very much for the better.
mkchoi212over 3 years ago
The Little Schemer is my favorite by far! So easy to understand and follow. Definitely a must read if you want to get into functional programming
评论 #28663420 未加载
adrianvincentover 3 years ago
&#x27;You Don&#x27;t Know JS&#x27; by Kyle Simpson. A series of books that are a must read for any JavaScript developer. They are available for free on GitHub or you can purchase a retail version. He&#x27;s working on a second edition right now.<p><a href="https:&#x2F;&#x2F;github.com&#x2F;getify&#x2F;You-Dont-Know-JS" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;getify&#x2F;You-Dont-Know-JS</a>
yesenadamover 3 years ago
<i>The AWK Programming Language</i> (1988)<p><a href="https:&#x2F;&#x2F;archive.org&#x2F;details&#x2F;pdfy-MgN0H1joIoDVoIC7" rel="nofollow">https:&#x2F;&#x2F;archive.org&#x2F;details&#x2F;pdfy-MgN0H1joIoDVoIC7</a><p>Best as in best written, along with K&amp;R—Brian Kernighan co-authoring both can&#x27;t be an accident!—it&#x27;s just a pleasure to read. I use it as a model when writing documentation myself. They get you started using AWK literally on page 1. Later they get into the details of particular use cases—profiling, making DSL interpreters&#x2F;compilers, random text generation, making indexes, a graph-drawing language, databases, data validation etc etc. All in under 200 pages!<p>And best as in most useful—I use AWK every day for all kinds of things–web scraping, rearranging and creating data for programs, meta-programming etc. So easy to make whatever tool&#x27;s needed for a job.
评论 #28700516 未加载
dilippkumarover 3 years ago
I’m currently enjoying “From Mathematics to Generic Programming” by Alexander Stepanov and Daniel E. Rose.<p>One thing about the book is that it’s a lot more interesting than what a cursory scan of the table of contents would suggest. An O(log n) algorithm for multiplication doesn’t seem interesting at first. But the authors do an amazing job of starting from familiar ideas and building up to surprisingly beautiful and elegant ideas.<p>I think I’m finally able to grok c++ templates half way through this book.<p>One unfortunate downside to this book is that the authors wrote this before concepts were introduced in c++20. I would love to see an updated edition of this book that use the real c++20 concepts. However, this doesn’t diminish my recommendation for this book.
评论 #28663626 未加载
评论 #28662382 未加载
zzo38computerover 3 years ago
I like &quot;The Art of Computer Programming&quot;. It uses assembly language, which is one thing I like compared with other books, but there are other things I also like about this book compared with other ones too, I think it is better written.
markus_zhangover 3 years ago
Game programming patterns, Game scripting mastery
iceyover 3 years ago
Programming Scala is one of the best programming books I’ve ever read. Scala never stuck with me, but I’ve gone through the book a couple of times because it’s so well written and enjoyable to read.
neoncontrailsover 3 years ago
Bitwise: A Life in Code, by David Auerbach.<p>Among its memorable conceits: debugging as a life-improvement strategy, the weirdly mesmerizing properties of randomness, adversarial cat-and-mouse games that have transpired as a result of dueling software programs. He&#x27;s a gifted writer and one of the few to consider programming as somewhat spiritually connected to the question of what it means to be a human. (In addition to his literary credentials, the writer is a former technical lead at Microsoft and Google.)
wly_cdgrover 3 years ago
Bjarne Stroustrup&#x27;s Programming - Principles and Practice Using C++. Unparalleled combination of real-world pragmatism and rigor. Plus, since you learn C++, this book prepares you better than most for more advanced books&#x2F;courses on compilers, operating systems, computer architecture<p>Hon. mentions: HtDP and accompanying Simple Data and Complex Data courses on edX; Part I of Sedgewick &amp; Wayne&#x27;s Computer Science book and accompanying booksite and free Coursera course
ToFab123over 3 years ago
&quot;Code Complete&quot; by Steve McConnell <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Code_Complete" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Code_Complete</a><p>For many years we gave this book to all new employees on day #1. Even the most experienced developers will find something in this book they will find very useful and it will help you to take a step back and evaluate your programming. This book is true gold mine.
mkchoi212over 3 years ago
The Little Schemer is my favorite by far! so easy to understand and follow. Definitely a must read if you want to get into functional programming
dperaltaover 3 years ago
I just started with: The Humble Programmer by Edsger W. Dijkstra and I&#x27;m lovin&#x27; it (not a book but a 15 pages essay).
edrxover 3 years ago
&quot;The Icon Programming Language&quot;. <a href="https:&#x2F;&#x2F;www2.cs.arizona.edu&#x2F;icon&#x2F;ftp&#x2F;doc&#x2F;lb1up.pdf" rel="nofollow">https:&#x2F;&#x2F;www2.cs.arizona.edu&#x2F;icon&#x2F;ftp&#x2F;doc&#x2F;lb1up.pdf</a>
macandoover 3 years ago
Most influential - Clean Code and The Joy of C (the first programming book I&#x27;ve read)<p>Most informative - Effective Java<p>Funniest - Learn You a Haskell for Great Good!<p>Best written - Eloquent Ruby<p>Most useful - Data Modeling Essentials
coder4lifeover 3 years ago
&quot;Enough rope to shoot yourself in the foot - rules for C and C++ programmers&quot; by Alan C Holub.<p>And &quot;Compiler design in C&quot;, also by him
heluserover 3 years ago
- Low level: Code Complete 2 (yes it’s old but still very relevant) - Hight level: Designing data intensive applications
m3talsmithover 3 years ago
1. Why’s Poignant Guide to Ruby<p>2. Practical Common Lisp<p>3. A Programmer’s Introduction to Mathematics<p>4. Data Structures and Programming Design in C<p>5. The Art of Agent Oriented Modeling
baash05over 3 years ago
&quot;Clean code&quot; is a top contender.
karmakazeover 3 years ago
There are many great ones listed here, but I wouldn&#x27;t give any single book more credit than how they combine in practice, as the question sort of implies.<p>The best lessons I&#x27;ve learned is how to balance all these good ideas for each problem, idea, implementation. How do do OO without lots of racy mutable state, using immutability efficiently, composing pure functions, identifying what to abstract explicitly vs allowing something to permeate, intention and priority when separating factors&#x2F;aspects, good naming patterns and when to use which. I don&#x27;t know of a book that tells you how to find balance.
评论 #28699898 未加载
nandkunalover 3 years ago
The Pragmatic Programmer