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.

How These Things Work – A book about CS from first principles (2016)

688 pointsby falavaover 5 years ago

10 comments

Toenexover 5 years ago
Nice. I did an EE degree many years ago even though I wanted to work in software. The single best course I did was to design, simulate and have fabricated a 4 bit microprocessor. It completely solidified my understanding of how computations took place. Hopefully, texts like this will do the same for others.
评论 #22346582 未加载
评论 #22358354 未加载
评论 #22349042 未加载
ceronmanover 5 years ago
I love this kind of Books! In a much more general tone, there is &quot;The Knowledge: How To Rebuild Our World After An Apocalypse&quot; by Lewis Dartnell. This explains the first principles of a lot of things we take for granted in the modern world, from agriculture to food and clothing, medicine, chemistry and more.<p>This book about CS principles is a great complement to that!
评论 #22347884 未加载
评论 #22348431 未加载
评论 #22347254 未加载
matco11over 5 years ago
One of my favorite books on subject is The Elements of Computing Systems: Building a Modern Computer from First Principles by Noam Nisan <a href="https:&#x2F;&#x2F;www.amazon.com&#x2F;Elements-Computing-Systems-Building-Principles&#x2F;dp&#x2F;0262640686" rel="nofollow">https:&#x2F;&#x2F;www.amazon.com&#x2F;Elements-Computing-Systems-Building-P...</a>
评论 #22349882 未加载
评论 #22348525 未加载
grumpleover 5 years ago
I recommend Code: The Hidden Language of Computer Hardware and Software by Charles Petzold [1]. It is far more comprehensive than the OP, goes from pre-computer code, to electrical circuits, to an overview of assembly. No prior knowledge needed except how to read.<p>1. <a href="https:&#x2F;&#x2F;www.amazon.com&#x2F;Code-Language-Computer-Hardware-Software&#x2F;dp&#x2F;0735611319" rel="nofollow">https:&#x2F;&#x2F;www.amazon.com&#x2F;Code-Language-Computer-Hardware-Softw...</a>
评论 #22348434 未加载
评论 #22347865 未加载
评论 #22348010 未加载
评论 #22348072 未加载
评论 #22347712 未加载
oblosysover 5 years ago
For a do-it-yourself version of chapter 1 (about building complex circuits using only nands), I can recommend <a href="http:&#x2F;&#x2F;nandgame.com&#x2F;" rel="nofollow">http:&#x2F;&#x2F;nandgame.com&#x2F;</a>
porknubbinsover 5 years ago
<i>A few years ago, I asked my engineer friend about how much of civilization he could rebuild singlehandedly, should he survive some hypothetical apocalyptic event. “All of it,” he replied. “Not all at once, but I know enough to be able to puzzle together the pieces I don’t know right this second.”</i><p>While I admire the Connecticut-Yankee optimism of the engineer, as a non engineer I am seriously skeptical about how a single engineer could know enough about the chemistry, materials, physics, CS etc. I can explain what a battery, or transistor is supposed to do but wouldn&#x27;t have the foggiest idea how to actually make one. In this scenario are we leaving the bunker to break into Bell Labs (or some research university library at least)?
评论 #22351965 未加载
评论 #22361537 未加载
评论 #22352698 未加载
hcarvalhoalvesover 5 years ago
Half-way into it’s introducing monads and Maybe. Feels like teaching a stack machine after talking about the visitor pattern. There’s good information here but I’m not sure it covers the important fundamentals (such that I could give to a beginner).
评论 #22347198 未加载
Anon84over 5 years ago
This looks really cool, thank you.<p>Another book I particularly like in the same style are Feynman (lesser known) lectures on computation: <a href="https:&#x2F;&#x2F;amzn.to&#x2F;2SSoJaR" rel="nofollow">https:&#x2F;&#x2F;amzn.to&#x2F;2SSoJaR</a> where he takes you from single instructions all the way to quantum computing
kragenover 5 years ago
Neat, and it looks like it&#x27;s under a 3-clause BSD license, too: <a href="https:&#x2F;&#x2F;github.com&#x2F;isovector&#x2F;reasonablypolymorphic.com&#x2F;blob&#x2F;master&#x2F;LICENSE" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;isovector&#x2F;reasonablypolymorphic.com&#x2F;blob&#x2F;...</a><p>And it&#x27;s tackling pretty advanced material — a bunch of category-theory stuff that I have no idea about. This is exciting!<p>It looks like maybe it&#x27;s unfinished: <a href="https:&#x2F;&#x2F;reasonablypolymorphic.com&#x2F;book&#x2F;tying-it-all-together.html" rel="nofollow">https:&#x2F;&#x2F;reasonablypolymorphic.com&#x2F;book&#x2F;tying-it-all-together...</a> ends, &quot;Really, we’re just getting started,&quot; and then (the current version of) the book ends. What a cliffhanger ending!<p>It doesn&#x27;t seem to yet cover circuitry; the hardware it discusses seems to be a two-tape Turing machine, much like BF. The author seems to have been simulating the machine by hand to generate the included execution traces.<p>I had a hard time finding the source at first: <a href="https:&#x2F;&#x2F;github.com&#x2F;isovector&#x2F;reasonablypolymorphic.com&#x2F;blob&#x2F;master&#x2F;site&#x2F;static&#x2F;book&#x2F;machine-diagrams.html" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;isovector&#x2F;reasonablypolymorphic.com&#x2F;blob&#x2F;...</a> has a bunch of attribute-embedded &amp;-escaped SVG (including XMLPIs!) that he almost certainly didn&#x27;t type like that. That file is duplicated at <a href="https:&#x2F;&#x2F;github.com&#x2F;isovector&#x2F;reasonablypolymorphic.com&#x2F;blob&#x2F;master&#x2F;docs&#x2F;book&#x2F;machine-diagrams.html" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;isovector&#x2F;reasonablypolymorphic.com&#x2F;blob&#x2F;...</a> in the same format.<p>As it turns out, the source for that post is in <a href="https:&#x2F;&#x2F;github.com&#x2F;isovector&#x2F;reasonablypolymorphic.com&#x2F;blob&#x2F;master&#x2F;site&#x2F;httw&#x2F;2016-11-01-machine-diagrams.markdown" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;isovector&#x2F;reasonablypolymorphic.com&#x2F;blob&#x2F;...</a>, with embedded Haskell to produce the SVGs. The build scripts looks like they might be in <a href="https:&#x2F;&#x2F;github.com&#x2F;isovector&#x2F;reasonablypolymorphic.com&#x2F;tree&#x2F;master&#x2F;src" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;isovector&#x2F;reasonablypolymorphic.com&#x2F;tree&#x2F;...</a> and <a href="https:&#x2F;&#x2F;github.com&#x2F;isovector&#x2F;reasonablypolymorphic.com&#x2F;tree&#x2F;master&#x2F;scripts" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;isovector&#x2F;reasonablypolymorphic.com&#x2F;tree&#x2F;...</a> but I can&#x27;t tell where the code for generating SVG comes from. (&quot;stack install&quot; maybe? But then is it datetime, sitepipe, or strptime?) So I can&#x27;t figure out how to fix the text in the SVGs to not crash into the diagram lines.<p>Careful about cloning the repo. It&#x27;s a quarter gig!
评论 #22346717 未加载
koonsoloover 5 years ago
I never heard of &quot;first principles&quot; until Elon Musk used it. (Not a native English speaker) Now I see it everywhere.<p>Must be the new overhyped term. &quot;We start from first principles, just like Elon Musk&quot;.<p>After looking at Google trends, I might be wrong, so nevermind ;) <a href="https:&#x2F;&#x2F;trends.google.com&#x2F;trends&#x2F;explore?date=all&amp;q=First%20principles" rel="nofollow">https:&#x2F;&#x2F;trends.google.com&#x2F;trends&#x2F;explore?date=all&amp;q=First%20...</a>
评论 #22348380 未加载
评论 #22346733 未加载
评论 #22346858 未加载
评论 #22347645 未加载
评论 #22347319 未加载
评论 #22347570 未加载
评论 #22348406 未加载
评论 #22346788 未加载
评论 #22347395 未加载
评论 #22349326 未加载
评论 #22348297 未加载