TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Ask HN: What books or courses do you know similar to "From Nand to Tetris"?

109 点作者 r-physicist将近 2 年前
As Richard Feynman famously said: &quot;What I cannot create, I do not understand.&quot; I like to learn things to bare bones. But almost all courses are shallow.<p>Now I am learning https:&#x2F;&#x2F;www.nand2tetris.org&#x2F; and it&#x27;s fantastic by structure and explanation. In the past, I also completed JS and HTML courses by Anthony Alicea on Udemy. These courses also follow a similar approach to truly understanding how things work under the hood.<p>What other books&#x2F;courses could you recommend from any area of programming?

22 条评论

fgeahfeaha将近 2 年前
Other people have mentioned ray-tracing in one weekend<p>Complimentary to that I would recommend TinyRenderer<p><a href="https:&#x2F;&#x2F;github.com&#x2F;ssloy&#x2F;tinyrenderer&#x2F;wiki">https:&#x2F;&#x2F;github.com&#x2F;ssloy&#x2F;tinyrenderer&#x2F;wiki</a><p>This one is a CPU-based rasterizing renderer, it gives you a good understanding of what a GPU graphics pipeline does underneath.<p>In the graphics world the two common ways of rendering things are either rasterization or raytracing.<p>Raytracing is basically all the movie&#x2F;VFX&#x2F;CGI&#x2F;offline renderers (although it is also being used for certain parts of real-time in recent years)<p>Raster is how most real-time renderers like the ones used for video games work.<p>If you&#x27;re interested in graphics I&#x27;d highly recommend implementing a ray-tracer and a rasterizer from scratch at least once to get a good mental model of how they both work.
评论 #36856691 未加载
评论 #36857048 未加载
Shosty123将近 2 年前
Thorsten Ball&#x27;s Interpreter &amp; Compiler in Go Series: <a href="https:&#x2F;&#x2F;interpreterbook.com&#x2F;" rel="nofollow noreferrer">https:&#x2F;&#x2F;interpreterbook.com&#x2F;</a><p>Robert Nystrom&#x27;s Crafting Interpreters: <a href="https:&#x2F;&#x2F;craftinginterpreters.com&#x2F;" rel="nofollow noreferrer">https:&#x2F;&#x2F;craftinginterpreters.com&#x2F;</a><p>Ray Tracing in One Weekend: <a href="https:&#x2F;&#x2F;raytracing.github.io&#x2F;books&#x2F;RayTracingInOneWeekend.html" rel="nofollow noreferrer">https:&#x2F;&#x2F;raytracing.github.io&#x2F;books&#x2F;RayTracingInOneWeekend.ht...</a>
tylerrobinson将近 2 年前
<i>Code: The Hidden Language of Computer Hardware and Software</i> by Charles Petzold is probably up your alley. Building to how computers work from first principles.
评论 #36857023 未加载
评论 #36857451 未加载
KiwiJohnno将近 2 年前
I highly recommend a fantastic indie game called &quot;Turing Complete&quot; (<a href="https:&#x2F;&#x2F;turingcomplete.game&#x2F;" rel="nofollow noreferrer">https:&#x2F;&#x2F;turingcomplete.game&#x2F;</a>)<p>Its basically a digital logic simulator&#x2F;playground, masquerading as a game. Early levels have you solving a simple problem with a few and&#x2F;or&#x2F;not gates, then gradually building larger components like half adders, registers, RAM and eventually (I&#x27;m not there yet though) you end up with a complete CPU with an instruction set you have designed and implemented, and you are solving the puzzles by writing machine code (which you designed) programs for your CPU.<p>Its been featured on hacker news before:<p><a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=28903296">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=28903296</a><p><a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=28735441">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=28735441</a>
jebarker将近 2 年前
Ben Eater&#x27;s 8-bit and 6502 based computer series: <a href="https:&#x2F;&#x2F;eater.net&#x2F;" rel="nofollow noreferrer">https:&#x2F;&#x2F;eater.net&#x2F;</a>
评论 #36854954 未加载
oumua_don17将近 2 年前
The Little X series;<p>[1] The Little Schemer: <a href="https:&#x2F;&#x2F;mitpress.mit.edu&#x2F;9780262560993&#x2F;the-little-schemer&#x2F;" rel="nofollow noreferrer">https:&#x2F;&#x2F;mitpress.mit.edu&#x2F;9780262560993&#x2F;the-little-schemer&#x2F;</a><p>[2] The Little Prover: <a href="https:&#x2F;&#x2F;mitpress.mit.edu&#x2F;9780262527958&#x2F;the-little-prover&#x2F;" rel="nofollow noreferrer">https:&#x2F;&#x2F;mitpress.mit.edu&#x2F;9780262527958&#x2F;the-little-prover&#x2F;</a><p>[3] The Little Typer: <a href="https:&#x2F;&#x2F;mitpress.mit.edu&#x2F;9780262536431&#x2F;the-little-typer&#x2F;" rel="nofollow noreferrer">https:&#x2F;&#x2F;mitpress.mit.edu&#x2F;9780262536431&#x2F;the-little-typer&#x2F;</a><p>[4] The Little Learner: <a href="https:&#x2F;&#x2F;mitpress.mit.edu&#x2F;9780262546379&#x2F;the-little-learner&#x2F;" rel="nofollow noreferrer">https:&#x2F;&#x2F;mitpress.mit.edu&#x2F;9780262546379&#x2F;the-little-learner&#x2F;</a><p>Note that [1] also has companion volumes: The Seasoned Schemer [1a] and The Reasoned Schemer [1b]<p>[1a] <a href="https:&#x2F;&#x2F;mitpress.mit.edu&#x2F;9780262561006&#x2F;the-seasoned-schemer&#x2F;" rel="nofollow noreferrer">https:&#x2F;&#x2F;mitpress.mit.edu&#x2F;9780262561006&#x2F;the-seasoned-schemer&#x2F;</a><p>[1b] <a href="https:&#x2F;&#x2F;mitpress.mit.edu&#x2F;9780262535519&#x2F;the-reasoned-schemer&#x2F;" rel="nofollow noreferrer">https:&#x2F;&#x2F;mitpress.mit.edu&#x2F;9780262535519&#x2F;the-reasoned-schemer&#x2F;</a>
ezedv将近 2 年前
You might find &quot;Code: The Hidden Language of Computer Hardware and Software&quot; by Charles Petzold intriguing. It takes a similar hands-on approach to explore computer fundamentals. Additionally, &quot;Computer Systems: A Programmer&#x27;s Perspective&quot; by Randal E. Bryant and David R. O&#x27;Hallaron is another great read for delving deeper into computer architecture.
mxmilkiib将近 2 年前
<a href="https:&#x2F;&#x2F;www.amazon.com&#x2F;Bebop-Bytes-Back-Unconventional-Computers&#x2F;dp&#x2F;0965193403" rel="nofollow noreferrer">https:&#x2F;&#x2F;www.amazon.com&#x2F;Bebop-Bytes-Back-Unconventional-Compu...</a><p><a href="https:&#x2F;&#x2F;archive.org&#x2F;details&#x2F;bebop_201810" rel="nofollow noreferrer">https:&#x2F;&#x2F;archive.org&#x2F;details&#x2F;bebop_201810</a><p><a href="https:&#x2F;&#x2F;www.clivemaxfield.com&#x2F;" rel="nofollow noreferrer">https:&#x2F;&#x2F;www.clivemaxfield.com&#x2F;</a><p><a href="http:&#x2F;&#x2F;www.clivemaxfield.com&#x2F;diycalculator&#x2F;docs&#x2F;demo-workbench-101.pdf" rel="nofollow noreferrer">http:&#x2F;&#x2F;www.clivemaxfield.com&#x2F;diycalculator&#x2F;docs&#x2F;demo-workben...</a>
aslfjiasf将近 2 年前
Also see recommendations for &quot;Ask HN: Books Similar to Code by Charles Petzold?&quot;: <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=29522588">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=29522588</a>
epakai将近 2 年前
Introduction to Computing Systems: From Bits &amp; Gates to C&#x2F;C++ &amp; Beyond<p><a href="https:&#x2F;&#x2F;www.mheducation.com&#x2F;highered&#x2F;product&#x2F;introduction-computing-systems-bits-gates-c-c-beyond-patt-patel&#x2F;M9781260150537.html#overview" rel="nofollow noreferrer">https:&#x2F;&#x2F;www.mheducation.com&#x2F;highered&#x2F;product&#x2F;introduction-co...</a><p>Is similar to nand2tetris. It uses a simple machine language, the Little Computer 3 (LC-3), and builds from the hardware up. Earlier editions are cheap, and don&#x27;t include C++.
davidddavidson将近 2 年前
<a href="https:&#x2F;&#x2F;www3.nd.edu&#x2F;~dthain&#x2F;compilerbook&#x2F;" rel="nofollow noreferrer">https:&#x2F;&#x2F;www3.nd.edu&#x2F;~dthain&#x2F;compilerbook&#x2F;</a><p><a href="https:&#x2F;&#x2F;csapp.cs.cmu.edu&#x2F;" rel="nofollow noreferrer">https:&#x2F;&#x2F;csapp.cs.cmu.edu&#x2F;</a><p>Lot of projects here - <a href="https:&#x2F;&#x2F;github.com&#x2F;codecrafters-io&#x2F;build-your-own-x">https:&#x2F;&#x2F;github.com&#x2F;codecrafters-io&#x2F;build-your-own-x</a>
anta40将近 2 年前
Let&#x27;s Build A Compiler:<p><a href="https:&#x2F;&#x2F;compilers.iecc.com&#x2F;crenshaw&#x2F;" rel="nofollow noreferrer">https:&#x2F;&#x2F;compilers.iecc.com&#x2F;crenshaw&#x2F;</a><p>Check on GitHub. Folks ported it to C, Go, etc. Then you may study standard textbooks like &quot;Compilers: Principles, Techniques, and Tools&quot;, &quot;Engineering A Compiler&quot; and so ond.
opportune将近 2 年前
This professor takes some pretty good notes for his CS courses: <a href="http:&#x2F;&#x2F;www.cs.yale.edu&#x2F;homes&#x2F;aspnes&#x2F;#classes" rel="nofollow noreferrer">http:&#x2F;&#x2F;www.cs.yale.edu&#x2F;homes&#x2F;aspnes&#x2F;#classes</a><p>I might add that if you like the feeling of understanding a subject from top to bottom, if you haven&#x27;t taken higher mathematics already, be careful... if you start studying math you might fall in love and have other subjects ruined for you. Colleges do us extreme disservices telling us basic calculus&#x2F;linear algebra&#x2F;diffeq are &quot;math&quot;. Mathematics is like going from XOR (ZFC and basic set theory&#x2F;logic) all the way up to the wildest things you can imagine.<p>I highly recommend anybody who enjoys the sense of complete mastery and &quot;extremely nitpicky but capable of doing anything I can imagine&quot; that computer programming tickles to try learning propositional logic, abstract algebra, and real analysis. Then graph theory, theory of computation, and actual algorithms research (ie whats in algorithms journals, though TBH stuff from a few decades ago is way more approachable and applicable). The guy I linked above has a great survey: <a href="http:&#x2F;&#x2F;www.cs.yale.edu&#x2F;homes&#x2F;aspnes&#x2F;classes&#x2F;202&#x2F;notes.pdf" rel="nofollow noreferrer">http:&#x2F;&#x2F;www.cs.yale.edu&#x2F;homes&#x2F;aspnes&#x2F;classes&#x2F;202&#x2F;notes.pdf</a>.<p>It honestly took years after I finished grad school for it all to fully click to the extent it has with me now, but not only does higher math teach you to think in an entirely different way, it unironically teaches you the underlying structure of <i>everything</i>. Well, maybe it&#x27;s not great at solving super fuzzy human problems but especially when working with computers, knowing about things like chaos theory in distributed systems, invariants, graph algorithms, structural isomorphisms, cryptography, analyzing your shit in a way that&#x27;s actually statistically useful... it&#x27;s everywhere.
adrsta将近 2 年前
Neural Networks: from zero to hero, - a course by Andrej Karpaty (available as a YouTube playlist)
kej将近 2 年前
There is also nandgame.com, which is heavily inspired by the first few sections of nand2tetris but presents it as a drag and drop web page instead of needing to download and edit the local text files, so it&#x27;s easier to jump in.
quanganhdo将近 2 年前
TECS by Noam Nisan and Shimon Schocken: <a href="https:&#x2F;&#x2F;mitpress.mit.edu&#x2F;9780262140874&#x2F;" rel="nofollow noreferrer">https:&#x2F;&#x2F;mitpress.mit.edu&#x2F;9780262140874&#x2F;</a>
评论 #36855193 未加载
jebarker将近 2 年前
Casey Muratori&#x27;s Computer Enhance: <a href="https:&#x2F;&#x2F;www.computerenhance.com&#x2F;" rel="nofollow noreferrer">https:&#x2F;&#x2F;www.computerenhance.com&#x2F;</a>
throwaway019254将近 2 年前
Linux From Scratch: <a href="https:&#x2F;&#x2F;www.linuxfromscratch.org&#x2F;" rel="nofollow noreferrer">https:&#x2F;&#x2F;www.linuxfromscratch.org&#x2F;</a>
lagrange77将近 2 年前
Neural Networks and Deep Learning, a free online book. <a href="http:&#x2F;&#x2F;neuralnetworksanddeeplearning.com&#x2F;" rel="nofollow noreferrer">http:&#x2F;&#x2F;neuralnetworksanddeeplearning.com&#x2F;</a>
tashoecraft将近 2 年前
csprimer.com will accomplish what you seek. It&#x27;s from the creator of teachyourselfcs.com which listed Nand to tetris as one of the courses to do.
beeburrt将近 2 年前
Dive Into Systems<p><a href="https:&#x2F;&#x2F;diveintosystems.org&#x2F;" rel="nofollow noreferrer">https:&#x2F;&#x2F;diveintosystems.org&#x2F;</a><p>free online book
kwoff将近 2 年前
&quot;Digital Design and Computer Architecture&quot; by Harris and Harris