Live data from Hacker News

Book list for streetfighting computer scientists (2022)

nick-black.com

31–40 of 67 posts

Re: Book list for streetfighting computer scientists (2022)

#33
post #19

Does anyone have recommendations for how to read books like these? Looking for advice around note taking / annotating / skimming.

1) Read the ToC carefully to see what each chapter is about. Identify which chapters/sections are about "Concepts/Ideas" vs. "Implementation/Technology".

2) Read the book's Foreward/Preface/Introduction where the author(s) often lay out a plan of action for reading the book. This will give you the dependencies among the chapters and which are the most important so that you can decide on your path of action.

3) If the book has appendices/introductory chapter which lays out some needed background knowledge refresher in Mathematics/etc. read these first.

4) Go through each chapter's beginning introductory section and last summary section in sequence for all the chapters. Now you have an idea of what each chapter is about (motivation and summary) even though much is still unknown. Mark/Underline/Annotate key points/terms as needed.

5) Now from (1) & (2) you have a set of chapters/sections dealing with the fundamental "Concepts/Ideas" which is what you now start studying in sequence. Have paper and pencil handy to mark/underline/annotate the text and take notes as needed. You could use "SQ3R" (https://en.wikipedia.org/wiki/SQ3R) and "Cornell Note-taking method" (https://en.wikipedia.org/wiki/Cornell_Notes) as techniques.

6) Make another pass over (5) to better grasp the "Concepts/Ideas". For difficult to grasp subjects this might not be enough. Make a note of why; perhaps you still lack some needed background knowledge/Mathematics which you need to brush up on. Make sure you don't go too deep into tangents; sometimes it can be treated as a black box i.e you just need to know "what it is" and "how to use it".

7) Now with some understanding of Concepts/Ideas in hand go through the chapters sequentially looking at the "Implementation/Technology" sections. Follow and understand the logic of the solved examples/code snippets/etc. This will help cement your understanding.

8) Make another pass over (7) but now also work out some exercises from each chapter as needed. A lot of folks get hung-up on this in the early stages which is counter-productive. Only when you have some idea of the concepts involved will you find the motivation to do the exercises. Obviously, for Mathematical subjects this is of higher importance but even here go according to your comfort level and needs/wants.

Finally, keep in mind that Reading/Studying should be positive/enjoyable so that you keep doing it. Work around anything that makes you anxious/demotivated so you never get into a negative mental state when you think about studying. Your memories of learning should always be pleasant.

References:

a) How to Read Papers Efficiently (based on the original How to Read a Paper by S.Keshav which you can download) - https://www.lesswrong.com/posts/sAyJsvkWxFTkovqZF/how-to-rea...

b) Deliberate Practice : https://en.wikipedia.org/wiki/Practice_(learning_method)#Del...

c) Marty Lobdell - Study Less Study Smart : https://www.youtube.com/watch?v=IlU-zDU6aQ0

Re: Book list for streetfighting computer scientists (2022)

#34
post #2

Stevens (APUE and Network Programming) doesn't hold up. You'd do better with Beej. They weren't all that great even at the time; what they were were book-length treatments of the topics that you could reasonably expect to find on the shelf in a suburban Borders bookstore. Even the motivation for those books is obsolete! Varghese is much too situational a book for this list; it's like bringing a trebuchet to your stre…

You mention needing exercises after each chapter for maths, but I find this lacking in far too many technical books I pick up. Most of them take the "good enough" approach were the chapter exercise is really just some limp-wristed vocab quiz, and that's if there's an attempt to get the reader to use the practice at all. It's wildly disappointing and such a waste of the readers time to do that. I wish technical authors would get a clue.

> I'm not sure books are really the thing anyways

I agree, here, although I still like to have books for offline reference and general brush-up in my downtime. That said, do you recommend any non-book sources for maths pertaining to CS? You seem to have good suggestions otherwise, so I figured I'd ask.

Re: Book list for streetfighting computer scientists (2022)

#35

Needs a database book (suggestions?), an OS book, (Silberschatz, Galvin, and whatever coauthors they have by now, maybe Tanenbaum as well) and a graphics book (Foley and van Dam, again plus however many coauthors they have by now). Someone else suggested a machine learning book. I'd agree, except I doubt there are any books out that give enough coverage to the LLM stuff that's exploding everywhere. That stuff is stil…

You say database book, I say Klepmann.

Re: Book list for streetfighting computer scientists (2022)

#36
post #2

Stevens (APUE and Network Programming) doesn't hold up. You'd do better with Beej. They weren't all that great even at the time; what they were were book-length treatments of the topics that you could reasonably expect to find on the shelf in a suburban Borders bookstore. Even the motivation for those books is obsolete! Varghese is much too situational a book for this list; it's like bringing a trebuchet to your stre…

> You want Strang.

Hell yeah you want Gilbert. Watching the guy's MIT lectures is a joy and the gumby-colored book reads like a narrative. I wish my calc books were as well written, else I'd not be reviewing vector calc with some intensity in my 30s.

That said, I have to recommend "Div, Grad, Curl, and All That" as I believe that I found it through someone's random comment here and it was a stellar find. I've realized I'm rather rusty on these topics and this book is very assertive of its target audience.

Re: Book list for streetfighting computer scientists (2022)

#37

Needs a database book (suggestions?), an OS book, (Silberschatz, Galvin, and whatever coauthors they have by now, maybe Tanenbaum as well) and a graphics book (Foley and van Dam, again plus however many coauthors they have by now). Someone else suggested a machine learning book. I'd agree, except I doubt there are any books out that give enough coverage to the LLM stuff that's exploding everywhere. That stuff is stil…

> Needs a database book (suggestions?)

Fundamentals of Database Systems by Elmasri and Navathe.

Re: Book list for streetfighting computer scientists (2022)

#38
post #17

There’s some good ones here. But there’s also some that are deeply silly. The Barendregt book (I’m not even remembering the correct spelling) is definitely of no use for applied computer science, or most flavors of theoretical programming language work.

Even too theoritical for functional programming research, perhaps?

Assuredly so.

Re: Book list for streetfighting computer scientists (2022)

#39
post #24

Earlier quoted context omitted.

Use PDFs of the books (pay for them, of course). Searching and bookmarking make navigation much faster and easier, including for cross-referencing, glossaries, etc. Annotations are far more powerful; they are editable, copyable, come in many forms (highlight, underline, text boxes, draw, hyperlinks, etc etc.). You can type much faster and fit much more than you can write with a pen. PDFs are of course far more portab…

All this depends on the person. Personally i find studying from a pdf basically impossible. Everyone is different though, what is important is finding what is right for you.

> Personally i find studying from a pdf basically impossible.

Agreed. Until and unless i can get a e-ink/e-paper display (minimum A4 size, 13" or more is better) which will not cause eye strain/fatigue it is impossible to read any kind of technical book electronically for long periods of time. And this i say as a person who owns a 27" iMac, a iPad, a Nexus10 and a couple of 10" and 16" inch laptops. I have a huge collection of technical books as pdfs which i only consult on my devices. For serious studying of any books i always get a paper copy; nothing else works.

Re: Book list for streetfighting computer scientists (2022)

#40
post #2

Stevens (APUE and Network Programming) doesn't hold up. You'd do better with Beej. They weren't all that great even at the time; what they were were book-length treatments of the topics that you could reasonably expect to find on the shelf in a suburban Borders bookstore. Even the motivation for those books is obsolete! Varghese is much too situational a book for this list; it's like bringing a trebuchet to your stre…

Networking Algorithmics is a weird one. I haven't looked much at the new edition, but back about ten years ago (yeesh) I kept tripping over the first edition of that book by accident, and then referring to it. I never read it cover to cover. In what I feel is a decent test for a book, it was the best at explaining a few specific concepts that other books which were searchable using O'Reilly's online library barely touched on. I bet that might still be the case.

When I needed a refresher for socket programming back in that same timeframe, I divided my time pretty evenly between Stevens, Beej, and Kerrisk. I get why people felt so much reverence for Stevens when it came out, but I also get why Beej's guide came about later on, as a more straightforward option. Kerrisk is just amazing, but I bet some would find it to be overkill. I suppose it aims to inhabit some of the space Stevens did, and it's undeniably a lot better.

Post reply on HN