19 ms·
I think these CS books should start with a philosophical look at what kind of thing computation actually is, rather than diving straight into UNIX file system s
by optimalsolver 5y ago
I think these CS books should start with a philosophical look at what kind of thing computation actually is, rather than diving straight into UNIX file system structures with barely any context.
But I guess that would be computer science from the top down.
- hctaw 5y agoGood book on that is Introduction to the Theory of Computation by Michael Sipser. One could argue it's from the very bottom up, not much practicum lies in that text.
- zaksingh 5y agoThis book was one of the best parts of my CS degree. It's the only textbook which I read cover-to-cover because the writing and narrative were so cohesive. Highly recommend.
- maweki 5y agoI am a theorist and I would say, that the bottom - as it is the foundation - is mathematical logic. And you start from there. Baffingly enough: All this theory is easily understood with 7th-grade math. Approaching from some specific piece of engineering is surely top-down.
- akersten 5y agoYeah, the first page of this book being "Everything is a File in Unix" is already so high-level and far above what I would call the "bottom-up" of computer science that this book should be renamed "Unix from the bottom-up." The "bottom" of computer science would be mathematically explaining what it means to compute, and building up to the abstraction of a Turing machine, and eventually getting to a concrete implementation of what we call programming and code. This book has code on page 2 - but code is nowhere near the bottom.
- mattwillmart 5y agoDo you know a book like this? Sounds interesting to me as someone who is very interested in computing, but never went to university. Specifically "mathematically explaining what it means to compute, and building up to the abstraction of a Turing machine" Thanks
- pugio 5y agoTake a look at: Understanding Computation: From Simple Machines to Impossible Programs by Tom Stuart. It's pretty much "computation theory for the everyday programmer". It uses Ruby to implement things like Turing Machines and the lambda calculus. Extremely accessible, and a lot of fun.
- mattwillmart 5y agoThank you
- jamcohen 5y agoRichard Feynman's lecture is a great resource for this: https://www.youtube.com/watch?v=EKWGGDXe5MA https://www.youtube.com/watch?v=EKWGGDXe5MA He proposes a file clerk that gets progressively dumber and faster until they get so dumb that they can be simulated by an electronic circuit.
- ffhhj 5y agoStart with a single instruction, like SBNZ (substract and branch if not equal to zero), and build a modern operating system with it.