I'm half way through the 2nd edition of CODE book, and will then go through Nand2Tetris, since these 2 have been recommended a lot here on HN. May be its a little early to ask, but still, from learning computers (and software) more deeply, what should be the next step?<p>Am open to anything and everything. I want to understand computers even more better, assuming (and sincerely believing) it will make me better in my career path to be an SRE/Distributed-Systems Architect.<p>I'll also be reading DDIA and SICP for sure, will take me own sweet time to go through them since they actually demand time and patience. But would love to get guidance from you all here at HN.
Gautam - I started reading this book at the beginning of the year, but life got in the way and I dropped it since then. Though, last night I found myself with some time and picked it back up and read two chapters, "Bytes and Hex" and "An Assemblage of Memory" (yes, I have the first edition).<p>My email is in my profile. Feel free to shoot me an email if you'd like to discuss the material. I am planning on reading "The Elements of Computing Systems" next, a.k.a. nand2tetris - so I think it'd definitely be interesting to have someone to talk about these books to.<p>I recently started a Discord server with this purpose in mind -study CS books- we are currently reading another one of HN's favorites, Algorithms by Sedgewick. Though, we could definitely create a new section on the server to discuss more computer arch-y books and whatnot.<p>I hope you are able to join us! :)
There is one project that rules over all other projects:<p>Find an FPGA board, build a soft core -> bootstrap your own C compiler -> build an OS -> do whatever you want
Principles of Computer System Design: An Introduction<p><a href="https://github.com/wangjohn/mit-courses/blob/master/6.033/Principles%20of%20Computer%20System%20Design%20An%20Introduction-2009.pdf">https://github.com/wangjohn/mit-courses/blob/master/6.033/Pr...</a>
If you want to continue learning about computer architecture, I would recommend David Harris' and Sarah Harris' book "Digital Design and Computer Architecture", available in MIPS, ARM and RISC V editions.<p><a href="https://pages.hmc.edu/harris/ddca/" rel="nofollow noreferrer">https://pages.hmc.edu/harris/ddca/</a><p>An interesting second book that makes the connection to the software side is Bryant/O'Hallaron "Computer Systems: A Programmer's Perspective"<p><a href="https://csapp.cs.cmu.edu" rel="nofollow noreferrer">https://csapp.cs.cmu.edu</a><p>...and, more on the theory side, both books by Hennessy and Patterson ("Computer Architecture: The Hardware/Software Interface" and "Computer Architecture: A Quantitative Approach").<p>On the OS implementation side, I still like Comer's "Operating System Design: The Xinu Approach" quite a lot. While this book is quite old, I learned OS design from Comer (and am still teaching this at university level 30 years later...).<p><a href="https://xinu.cs.purdue.edu" rel="nofollow noreferrer">https://xinu.cs.purdue.edu</a><p>A good complement would be Cox/Kaashoek/Morris "xv6: a simple, Unix-like teaching operating system" (free download)<p><a href="https://pdos.csail.mit.edu/6.S081/2020/xv6/book-riscv-rev1.pdf" rel="nofollow noreferrer">https://pdos.csail.mit.edu/6.S081/2020/xv6/book-riscv-rev1.p...</a><p>A useful addition on OS theory is Remzi and Andrea Arpaci-Dusseau's "Operating Systems: Three Easy Pieces" (also free)<p><a href="https://pages.cs.wisc.edu/~remzi/OSTEP/" rel="nofollow noreferrer">https://pages.cs.wisc.edu/~remzi/OSTEP/</a><p>If you want to dig into programming languages, I would recommend Cooper/Torczon "Engineering a Compiler" (unfortunately published by Elsevier) and "Crafting Interpreters" by Nystrom (free)<p><a href="https://shop.elsevier.com/books/engineering-a-compiler/cooper/978-0-12-815412-0" rel="nofollow noreferrer">https://shop.elsevier.com/books/engineering-a-compiler/coope...</a><p><a href="https://craftinginterpreters.com" rel="nofollow noreferrer">https://craftinginterpreters.com</a><p>Finally, if you're interested in virtualization (system and bytecode level), I can recommend Smith/Nair "Virtual Machines"<p><a href="https://www.sciencedirect.com/book/9781558609105/virtual-machines" rel="nofollow noreferrer">https://www.sciencedirect.com/book/9781558609105/virtual-mac...</a><p>I use many of these books in my courses and recommend them to my students - so far, they seem to like the books:<p>(My OS course at NTNU) <a href="https://multicores.org/tdt4186_22/" rel="nofollow noreferrer">https://multicores.org/tdt4186_22/</a><p>(My Compiler Construction course at NTNU) <a href="https://multicores.org/tdt4205_21/" rel="nofollow noreferrer">https://multicores.org/tdt4205_21/</a><p>I hope this helps a bit. Learning all of this will be quite a challenge but also bring a lot of fun! :)
If your goal is distributed systems then take it, lectures are all on YouTube <a href="https://pdos.csail.mit.edu/6.824/schedule.html" rel="nofollow noreferrer">https://pdos.csail.mit.edu/6.824/schedule.html</a>
can anyone recommend anything within this world related to MIDI programming/OS's specifically for sequencing midi? im hellbent being able to work on something similar to the mister FPGA (Atari ST).