I had a good relantionship with Segdewick's books, before being turned off by Cormen a few times. They are less math focused, and overall have a beginner friendliness to them. They won't take you by the hand an explain things like you are 5, but nevertheless they are more easy to digest. Also as a non-popular opinion in this current age, I recommend you to learn how to implement your algorithms in C, rather than an e…
Ask HN: I'm looking for a good book on the fundamentals of CS
131–140 of 190 posts
Re: Ask HN: I'm looking for a good book on the fundamentals of CS
#132http://algorithmics.lsi.upc.edu/docs/Dasgupta-Papadimitriou-...
It's written in an approachable, almost conversational style.
Beyond that, for a broader view of algorithms and computing that includes AI, there's Artificial Intelligence: A Modern Approach by Russell/Norvig. My favorite part of that book is actually the "Foundations of Artificial Intelligence" which goes into the deep history of computation (as far back as ancient and medieval times).
Re: Ask HN: I'm looking for a good book on the fundamentals of CS
#133a month ago Ask HN: What are some of the best well-written books on computer science? https://news.ycombinator.com/item?id=29182386
3 months ago Ask HN: What are your top 5 favorite computer books? https://news.ycombinator.com/item?id=28308141
7 months ago Ask HN: Best book for software engineers (besides the well-known ones)? https://news.ycombinator.com/item?id=26833319
Re: Ask HN: I'm looking for a good book on the fundamentals of CS
#134Hope you're searching first, lots of book threads every few months here: a month ago Ask HN: What are some of the best well-written books on computer science? https://news.ycombinator.com/item?id=29182386 3 months ago Ask HN: What are your top 5 favorite computer books? https://news.ycombinator.com/item?id=28308141 7 months ago Ask HN: Best book for software engineers (besides the well-known ones)? https://news.ycomb…
Re: Ask HN: I'm looking for a good book on the fundamentals of CS
#135I highly recommend "An Introduction to General Systems Thinking, by Gerald Weinberg. An orthogonal piece of advice that I got from a different book of Gerald Weinbergs' is to learn 3 or 4 Very Different languages simultaneously, to grasp the enormous difference between them all. In 2021 I'd recommend C (lowest level other than assembler: 1st caveat, I haven't looked at Rust) and then at least one Lisp-family language…
I would personally de-recommend Python. It essentially has no unique paradigm or even one that it does really well. I'd replace the Python suggestion with an ML-dialect such as F# or Ocaml. I agree with you though. I think everyone needs a bit of experience with a Lisp/Scheme, an ML dialect, a Smalltalk, Elixir/Erlang, Prolog, and Forth. And I think it's better to think in paradigms rather than languages in that you…
Someone learning CS who already knows Python has to unlearn and relearn material in the area of programming language semantics.
Python is fine for introducing complete beginners to algorithmic thinking. Almost anything is.
Re: Ask HN: I'm looking for a good book on the fundamentals of CS
#136A lot of recommendations here, so I would like to ask for some (hope that's allowed). - Operating Systems. I had a course on OS (I'm a student), but I felt it was kind of lacking, and would like to explore more. - Compilers? Seems very interesting Also I've started with a bit of haskell to learn functional programming, would love some pointers from the more experienced people here :D (Also networking?? So much to lea…
Beyond that, if you want a more academic read it's good to read up on some other architectures. This paper on the history of the L4 microkernel family is a really good discussion of the design decisions and evolution of that system that gets into some classic OS issues: https://trustworthy.systems/publications/nicta_full_text/898...
Other kernel designs worthy of interest are exokernels and unikernels. Also with regard to systems design I've always liked "end-to-end arguments to system design" (https://web.mit.edu/Saltzer/www/publications/endtoend/endtoe...) and another paper on the duality of OS structures (http://occs.oberlin.edu/~ctaylor/classes/341F2012/lauer78.pd...)
Re: Ask HN: I'm looking for a good book on the fundamentals of CS
#137The authors care deeply about not just the content, but the learning process itself. It may at times feel repetitious and even boring, but it's a principled introduction to CS which will set you up for success in ANY programming language. And the book is free online :)
From here you can graduate to lower level programming concepts in C (or Rust), more practical languages like Ruby, Python or even Java for high level application design. Basically, it's time to learn about full-fledged memory management one way or another. Don't miss out on some type theory along the way, remembering that they are just codified data definitions and function signatures.
Re: Ask HN: I'm looking for a good book on the fundamentals of CS
#138https://dl.acm.org/doi/10.1145/240483.240502
This is behind their paywall, and I would discourage you from paying, but someone might be able to find the same document with a simple web search.
Re: Ask HN: I'm looking for a good book on the fundamentals of CS
#139https://dl.acm.org/doi/10.1145/240483.240502
This is behind their paywall, and I would not discourage you from paying, but someone might be able to find the same document with a simple web search.
Re: Ask HN: I'm looking for a good book on the fundamentals of CS
#140Seconding Petzold's Code for hardware and low-level programming. Also seconding Downey's Think Python (which has appeared in several versions with different titles). It is an easy read but is a bit deeper than many introduction to Python books.
Also seconding Wirth's Algorithms + Data Structures = Programs but it requires a lot more concentration and study than the previous suggestions. It is also old-fashioned, from the late 1970s I think, uses Pascal as its programming language. It teaches and celebrates a rigorous, economical programming method and coding style which is not much in vogue any more.