/cbt/ - Computer Science Books Thread

>What is this thread for?
To discuss, request for / give recommendations, and overall promote the usage of Computer Science Books as a means of learning.
>Who is this thread for?
Everybody, for all levels of skill. There will always be a book that perfectly fits well with what you want to learn based on what level you're at. You have no excuse, start reading. If you're not ready to dedicate enough of your time to at least finish one chapter each week (3 if you're a NEET), then fuck off we're full.
>Where do I begin?
github.com/galoget/free-programming-books/blob/master/free-programming-books.md
>This is too much info to take in
wiki.installgentoo.com/wiki/Programming_resources
>This is still too much info to take in
This thread isn't for you.
>I can't decide between two books / what I'm looking for isn't here
This is what the thread is for. Use Z-Lib and LibGen.

There's your fucking sticky, now sit down and read.

Attached: Basic_Guide.jpg (900x2134, 437.65K)

Other urls found in this thread:

dspguide.com
pages.cs.wisc.edu/~remzi/OSTEP/
jeffe.cs.illinois.edu/teaching/algorithms/
ocw.mit.edu/courses/6-851-advanced-data-structures-spring-2012/
cs.yale.edu/homes/aspnes/classes/469/notes.pdf
ocw.mit.edu/courses/6-854j-advanced-algorithms-fall-2005/
ocw.mit.edu/courses/6-854j-advanced-algorithms-fall-2008/
ocw.mit.edu/courses/6-852j-distributed-algorithms-fall-2009/
lavalle.pl/planning/
twitter.com/SFWRedditGifs

just solve all the leetcode problems what more do you need?

Well books are nice if you aspire to be more than a bugman problem solver

>the pragmatic programmer
not a CS book
>art of unix programming
not a CS book
>the cathedral and the bazaar
not a CS book
>concepts, techniques, and models of computer programming
not a CS book
>code complete
not a CS book
>the science of programming
not a CS book
>the C programming language
while based, not a CS book
>real world Haskell
not a CS book
>learn you a Haskell for great good
not a CS book
>land of lisp
not a CS book
>software foundations
not a CS book
>design patterns
again, more of a software patterns book

CS is about solving problem with computation. The books mentioned above are way more about wielding languages and some software patterns or practice. The latter is important to do, but it's distinct from CS because it's largely about learning to wield tools. There's a difference between astronomy and telescope design / use, even though the latter involves and is used for the former.
This just leaves a couple of algorithms books and Knuth classics. I'll list more CS books in my next post

This is my plan for the next year.
Oh look its this asshole.

Attached: BookPlan.jpg (816x1056, 460.51K)

There are a lot more books in each category but here are a few
>Languages
Programming Language Pragmatics and Engineering a Compiler are good PL design/compiler books. The Dragon Book is also good.
>Math fundamentals
Any calc 1-3 book.
Ross for basic probability.
Hoffman-Kunze for linear algebra.
Van Lint-Wilson for combinatorics.
The last two show up everywhere in CS and are good as an intro to proofs. If you're uncomfortable, Book of Proof by Hammond is a good start as well.
>Foundations of CS
Sipser
>Complexity
Arora-Barak
>DSP
Proakis-Manolakis
also this book: dspguide.com
>OS design
pages.cs.wisc.edu/~remzi/OSTEP/
also the pintOS project
>basic algorithm design
intro: jeffe.cs.illinois.edu/teaching/algorithms/
CLRS is standard reference but boring.
>algorithm analysis
Flajolet-sedgewick's analysis of algorithms
>advanced data structures
ocw.mit.edu/courses/6-851-advanced-data-structures-spring-2012/
>advanced algorithms
lot of people have courses on this. just pick one or a selection of topics from a bunch and study what's most interesting to you. they use various specialized books
cs.yale.edu/homes/aspnes/classes/469/notes.pdf
ocw.mit.edu/courses/6-854j-advanced-algorithms-fall-2005/
ocw.mit.edu/courses/6-854j-advanced-algorithms-fall-2008/
ocw.mit.edu/courses/6-852j-distributed-algorithms-fall-2009/

I can keep going for more specialized material

waiting for the next post then

gay

I don't usually go into these threads, but I can only imagine people say the same thing I do because the overwhelming majority of what's posted on your list and most of OP's list isn't CS. Software is important but it's not CS. For example
>The Linux Command Line
>Mastering Ubuntu Sever
>C Programming
What makes you think these are CS? They're, at worst, knowledge you can just google, and at best, skills picked up from projects, assignments, and internships. The material in the books isn't synthesizing or applying engineering knowledge or technique - they are manuals on how to use a machine. The operation manual for a machine does not amount to an engineering subject, much less CS.

CSAPP, OS: 3 easy pieces, the Parallel Processor book, and Algorithms in C are indeed CS books. While the words "programming" and "programmer" are used in a couple of them, these books are either about structure and how to solve practical problems. The parallel processors book even talks about how GPU parallelism impacts real world cases like MRI. These are CS books.

Attached: 88553263.png (680x887, 1.08M)

oh great, it's another CSfag trying to sound smart

Attached: computer_science_truth.png (758x765, 24.78K)

literally right above you
no u. technician books on how to read a command line or write a line of code aren't CS. an engineering/math subject involves...engineering. the technician knowledge is stuff you pick up, but the goal of CS is to solve problems using computers, not to study digitally plumbing software packages.

Okay, so you're splitting hairs over theory and applied.

this is my first time going to Any Forums in like 10 months. I'm not who you think I am.
lol computer "science" is what they teach in a lot of undergrads. this doesn't change the fact that there's still real CS done by real computer scientists and studied by a much smaller subset of the CS undergrad body.
Again, terribly sorry that you're either a technical plumber who deals with shitty software packages or an EE who landed a job and is quickly realizing that it's just application-specific codemonkeying. Cadence and Matlab won't save you from codemonkeydom

But I'm not here. Applied CS still solves problems. Applied CS involves shit like OS design, concurrency, parallelism, distributed algorithms, machine learning, graphics processing and physics simulation, etc..
A book that teaches you command line prompts, syntax, or basic server etiquette isn't CS. It's a machine manual.

Again with the failed EE cope kek
majored in CS and minored in physics, im working on quantum computing shit that none of you seething EE pajeets could even dream of understanding.

Look out Any Forums! We got a badass here!

Attached: carl.jpg (680x440, 79.81K)

another example: motion planning
lavalle.pl/planning/

this is applied CS because you're studying robotics in motion. you're solving problems of robotic locomotion and coordination using a computer. yeah it involves systems level programming, ROS, etc.., but that stuff is not the CS. It's used to implement the solution - and is thus important - but is not material in CS and should be picked up outside of "class time." (i.e. you should be able to get it from reference or google)

I mention this because learning CS is about learning how to solve real problems, not about cutting down your times for trivial google searches. That stuff is important in its own right, but the longer it gets confused to CS, the longer we'll have people complain about the job market when the deep specialization hits like it's hit every other sector of engineering. The longer we'll have people get nothing out of their university degree they chose to make out of completely useless classes that don't teach them anything a google search couldn't have.
the reason I'm so fucking adamant is because you should treat your learning time as precious and thus occupy it reading actual high value material - shit that will let you solve problems no matter what subfield you end up liking.

in the end, you can always google something you need to program in a specific environment. but it's not so simple to understand how google's pagerank uses stochastic matrices to make a multimillion dollar, fast search engine. Doesn't this strike you as much more fundamental and high impact than cracking open a book that tells you makefile syntax that you could have easily googled?

it's bait retard
quantum computing is open to anyone in mathematical stem, so it has people from CS, EE, physics, math, etc.. working on it

Let's get this back on track here.

Attached: BulgarianBookCover.jpg (1088x1360, 116.48K)

Advanced Algorithms and Data Structures - Manning Publications

can someone tell me how fucked I am for missing out on computer architecture?

my school only required computer organization. architecture was optional but highly-recommended. is it really as useful as people are making it out to be? im probably going to end up in full stack engineering.

So, do you need to be dyslexic to program in C#, or is "C Shark" a thing?

>the science of programming
Seems like Computer Science to me, agree on most the others though.
According to the description of The Science of Programming:
This is the very first book to discuss the theory and principles of computer programming on the basis of the idea that a proof of correctness and a program should be developed hand in hand. It is built around the method first proposed by Dijkstra in his monograph The Discipline of Programming (1976).

>So, do you need to be dyslexic to program in C#, or is "C Shark" a thing?

What does dyslexia have to do with a shark?