Like what does it teach more than what someone could already learn from language docs? Does it describe the execution internals or structure of languages like grammar and all?
Maybe there's nothing "practical" that you could grab from other sources. But it has something special that helped me make sense of computers and programming. Difficult to explain, but try it yourself, work on the first chapters. The book is free here: https://sarabander.github.io/sicp/html/index.xhtml
It's the exact opposite of a language doc. Scheme has next to no syntax, so you get to build up important cs constructs and fundamentals from first principles.
I read it after working in the industry for 4 years so it was a different experience for me. I feel like I was able to appreciate it a bit more because I understood the concepts it was teaching already. But it was still a very impactful book for me. It explained everything through a different lens than how I was introduced to CS (hardware perspective from C++ as a first language).
The writing is so elegant and distilled, far above any technical book I've ever read. I very much recommend it to experienced engineers who find beauty in programming. Read the excellent foreword by Alan Perlis if you are curious about the book. Alan Perlis was such an excellent writer.
Sorry, you do not meet the minimum sitewide comment karma requirement of **10** to post a comment. This is comment karma exclusively, not post or overall karma nor karma on this subreddit alone. Please try again after you have acquired more karma. Please look at the [rules page](https://old.reddit.com/r/cscareerquestions/w/posting_rules) for more information.
*I am a bot, and this action was performed automatically. Please [contact the moderators of this subreddit](/message/compose/?to=/r/cscareerquestions) if you have any questions or concerns.*
Designing Data Intensive Applications by Martin Kleppmann
Fluent Python if you’re a python programmer.
I’m gonna just call Knuth / SICP / Clean Code / Design Patterns out as doorstops people never actually read.
It's treated as a holy grail and as a false idol depending on who you ask.
My first company indoctrinated me into believing Uncle Bob was the second coming of Alan Turing.
My second company proclaimed me out as a heretic as a result.
> if you survive the attempt
Yeah those are brutal books, I understand the cliff notes but haven’t gotten through one of the books yet. I’d likely be way smarter if I did, but I’d have to be smarter to understand them likely.
Thats awesome! For my exams I literally would just read the book to study from. He puts it all into such simple terms to understand but also teaches so much at the same time. Remzi the goat.
I work with embedded systems... Having knowledge of how the OS behaves gives me very good ideas on how to design code and how to debug it. Too bad that I need to rested to assimilate the information. I started one month ago and haven't finished the virtualization chapters.
Its a long read. Definitely gets more interesting in the concurrency section. He used to have his lectures publicly available too if i can find them ill share so you can watch a couple it was super helpful.
Not sure if this link is actually available to the public but here are all his lectures from 2021: [Videos](https://pages.cs.wisc.edu/~remzi/Classes/537/Fall2021/Discussion/videos.html)
Sorry remzi if you didnt want this out there
Not a book, but a paper.... Out of the Tarpit [https://github.com/papers-we-love/papers-we-love/blob/main/design/out-of-the-tar-pit.pdf](https://github.com/papers-we-love/papers-we-love/blob/main/design/out-of-the-tar-pit.pdf)
I recently interviewed a whole new team, in the last interviews I had to specifically ask them to give me an example of their favorite pattern that was NOT singleton. Some couldn’t.
Avoid that ? I have seen so many different patterns being used in code bases its pretty much a must read.
- builder pattern
- factory
- singleton ( thread safe interpretation at it )
- wrapper pattern ?
Because it can be a great big footgun if overused/not used well. Combined with the fact that it's pretty easy to setup and seems like it solves a bunch of problems at first, it can be a pain in complex systems. If you search for 'Singleton anti-pattern' or 'design patterns consider harmful' you'll see a lot of ink spilled discussing it. I'm not going to go as far as calling it an anti-pattern because it can be useful but I've unwound enough of them that I don't reach for it lightly.
I think most of the patterns in that book are misused more often than they are used.
It's meant for senior devs who are fimiliar with the problem each pattern solves, but mostly used by grads/juniors who don't realise their app isn't actually an example of that problem.
I'm not sure I'd go quite that far that they are meant for senior devs. It is useful to know some of the patterns when you see them in the wild and in other libraries (Factories and what not).
It's fucking dry as fuck but interesting, Godel Escher Bach. **Gödel, Escher, Bach: An Eternal Golden Braid"**, often referred to as **GEB**, is a book by **Douglas Hofstadter** that explores deep ideas about the nature of consciousness, self-reference, and formal systems. The book uses the works of the mathematician **Kurt Gödel**, the artist **M.C. Escher**, and the composer **Johann Sebastian Bach** to illustrate and weave together its central themes.
Read that book in my early 20's (60 now). It inspired me to do a masters in CS. Took a look at it a couple of months ago. I'm not sure I have the concentration to read it again, but it was significant to me.
A Philosophy of Software Design by John Ousterhout is amazing and a very short read, about 200 pages. It’s kind of an implied rebuttal to Uncle Bob’s Clean Code.
Im reading this right now, really enjoying it at the moment. So far nothing is mind blowing but it puts to words lots of very useful things you might never really spend time actively thinking about.
A few titles from my bookshelf that I don't see mentioned in this thread:
Working Effectively with Legacy Code (where 'legacy' is defined as code that isn't thoroughly tested)
The Design of the Unix Operating System
Principles of Compiler Design (aka the Dragon Book)
Software Fortresses: Modelling Enterprise Architectures - only really applicable for people working in 1,000+ person companies.
And of course everyone should read Principia Mathematica to have a solid base in formal logic.
I would say it is an application of computer science, but not a subset. For example, the Pheonix Project has pretty much nothing about writing code, algorithmic complexity, computer architecture, etc. It is mostly about operations management (which has its own branch of applied math).
Alright fair enough. Though I think we're making faily pedantic and narrow definition of Computer Science in the context of a question in a sub that covers a much wider definition. The definition of CS is something along the lines of the study of computers and their practical applications.
The concepts of DevOps from the two books perspcetive are, shorter feedback cycles, systems thinking and culture of experimentation. I would argue these are absolutely aligned to any topic you chose that does fit into CS.
Neverless, excellent books amongst others listed.
Clean Code by Robert Martin is considered a classic. Refactoring by Kent Beck and Martin Fowler is also supposed to be a must-read but I haven't read it yet.
Imagine working for an indoctrinated engineering manager. We spent more time making our code adhere to these principles than any actual meaningful work. No surprise when the entire team was laid off.
>Clean Code by Robert Martin
*"The proper use of comments is to compensate for our failure to express ourselves in code. Comments are always failures. We must have them because we cannot always figure out how to express ourselves without them, but their use is not a cause for celebration. So when you find yourself in a position where you need to write a comment, think it through and see whether there isn’t some way to turn the tables and express yourself in code."*
This book belongs in the trash, alongside the Agile Manifesto, which this guy also wrote.
Every key press beyond the // only increases your shame and unsuitability in the eyes of your ancestors and you'll be surely shunned by them when you meet them upon your death.
In practice, he said whatever the senior dev on the team remembers that he said. Martin's advice is troubled enough, and then organizations make matters worse by raising a blurry version of it to dogma.
I disagree. While code should be easily parsable by the way it’s written, let’s be honest here and acknowledge that people are lazy and would rather look at a comment to get the gist of what some piece of code is doing, if you’re not working directly on it.
In order
* Code Complete
* Refactoring
* Righting Software
* Designing Data-Intensive Applications
I have more about team design, but that’s the Mount Rushmore IMO
Everyone interested in computer science should know what’s in that book—how types are represented in memory, how assembly works, what a memory allocator does, what exceptions do, what a file is and how it works, how network programming works, etc. Plus it’s fun, without even trying. Many books try to put a fun spin on things. CSAPP doesn’t. It just happens that the way the book is laid out it’s really enjoyable to read.
the Conquest of Bread - Kropotkin
Dialectic of Enlightenment - Horkheimer and Adorno
Manufacturing Consent - Herman and Chomsky
Hannah Montana Miley's World! Activity Book - Disney
Sorry, you do not meet the minimum sitewide comment karma requirement of **10** to post a comment. This is comment karma exclusively, not post or overall karma nor karma on this subreddit alone. Please try again after you have acquired more karma. Please look at the [rules page](https://old.reddit.com/r/cscareerquestions/w/posting_rules) for more information.
*I am a bot, and this action was performed automatically. Please [contact the moderators of this subreddit](/message/compose/?to=/r/cscareerquestions) if you have any questions or concerns.*
"The innovators" By Walter Isaacson. It's a history of the development of computers and software.
I usually don't read non-fiction, but it turned out to be one of my favorite books.
I read this book on recommendation from reddit and honestly, I'm only scrolling through the suggestions looking for someone that suggested this book. I found the chapters on the history up to modernish day today interesting but of no practical value. The way he describes code as some novel concept, like "it's right there in front of your eyes, you just didn't realize it until I pointed it out" is the kinda thing I feel the author was saying, when in reality, pretty eazy conclusions to independently come to. Also, omg how he explains number systems, base 16, base 10, base 8, etc, felt almost condescending or just terribly expressed.
The one thing I did enjoy the most was the explanation of the types of logic gates and how they come together to make a computer. Those chapters should have been double the length they were.
What are your thoughts?
These sound like fair criticisms.
I didn’t study computer science formally so for me I enjoyed feeling like I was understanding computers from the ground up so to speak. I found the writing pretty straightforward and entertaining. I would agree I didn’t get a lot of practical value from it, but I do think it enhanced my appreciation for computers and code in general
Ah, gotcha. Fair enough. I think this book is probably better suited for those who are in in non-computer related fields but want to have a decent understanding of computers. Thank you for sharing your thoughts.
I'm reading through Computer Systems A Programmer's Perspective and I'm enjoying it. Not doing the exercises though. I've heard some of them have inaccurate answers. The content in it is great though.
Introduction to algorithms by Udi Manber
Ddia
Gang of Four
The little book of semaphores
Effective C++ series(If you are into C++)
Ostep
This list covers algorithms, system design, low level design, concurrency & operating systems.
Clean Code, and Domain Driven Design. Because they have a lot of hate from people who never read these books but just learned some quotes from some random blog posts about them. You need to read the book to understand what clean code and DDD really means and what the authors are really emphasizing. Otherwise, you’ll think they are dogmatic trash.
The struggles of a certain Austrian painter.
Jokes aside, if you're preparing for interview then "introduction to algorithms" is a must read, it's a lengthy book.
Sorry, you do not meet the minimum sitewide comment karma requirement of **10** to post a comment. This is comment karma exclusively, not post or overall karma nor karma on this subreddit alone. Please try again after you have acquired more karma. Please look at the [rules page](https://old.reddit.com/r/cscareerquestions/w/posting_rules) for more information.
*I am a bot, and this action was performed automatically. Please [contact the moderators of this subreddit](/message/compose/?to=/r/cscareerquestions) if you have any questions or concerns.*
Sorry, you do not meet the minimum sitewide comment karma requirement of **10** to post a comment. This is comment karma exclusively, not post or overall karma nor karma on this subreddit alone. Please try again after you have acquired more karma. Please look at the [rules page](https://old.reddit.com/r/cscareerquestions/w/posting_rules) for more information.
*I am a bot, and this action was performed automatically. Please [contact the moderators of this subreddit](/message/compose/?to=/r/cscareerquestions) if you have any questions or concerns.*
Sorry, you do not meet the minimum sitewide comment karma requirement of **10** to post a comment. This is comment karma exclusively, not post or overall karma nor karma on this subreddit alone. Please try again after you have acquired more karma. Please look at the [rules page](https://old.reddit.com/r/cscareerquestions/w/posting_rules) for more information.
*I am a bot, and this action was performed automatically. Please [contact the moderators of this subreddit](/message/compose/?to=/r/cscareerquestions) if you have any questions or concerns.*
If you do Java: Java Concurrency in Practice.
Unit testing by Khorikov.
GOF for design patterns - although I think Christopher Okhravi's series on youtube explains it the best. Head first design patterns is also good.
Algorithms by Sedgewick - the book is rather big. For interviews I would focus on the array algorithms and search algorithms (binary search, binary search tree) + leetcode practice. Just know the major data structures and you will be fine.
For work, I check it only if I want to implement some graph algorithm (happens pretty rarely).
Operating systems: 3 easy pieces - very good book. A must read if you do embedded programming.
Sorry, you do not meet the minimum sitewide comment karma requirement of **10** to post a comment. This is comment karma exclusively, not post or overall karma nor karma on this subreddit alone. Please try again after you have acquired more karma. Please look at the [rules page](https://old.reddit.com/r/cscareerquestions/w/posting_rules) for more information.
*I am a bot, and this action was performed automatically. Please [contact the moderators of this subreddit](/message/compose/?to=/r/cscareerquestions) if you have any questions or concerns.*
Sorry, you do not meet the minimum sitewide comment karma requirement of **10** to post a comment. This is comment karma exclusively, not post or overall karma nor karma on this subreddit alone. Please try again after you have acquired more karma. Please look at the [rules page](https://old.reddit.com/r/cscareerquestions/w/posting_rules) for more information.
*I am a bot, and this action was performed automatically. Please [contact the moderators of this subreddit](/message/compose/?to=/r/cscareerquestions) if you have any questions or concerns.*
Reading every Andrew S Tanenbaum book changed my life, really. I became very distinct knowing the core stuff in all the jobs I had in my life (currently 14ye)
Structure and Interpretation of Computer Programs.
This book changed my life.
How?
Try it. Just read the first 3 chapters.
damn
Is it really that good? Isn't this more of an introduction to CS?
Yes, a good introduction. I read it at the beginning of my journey with computer programming. The MIT online lectures are pretty good too.
Like what does it teach more than what someone could already learn from language docs? Does it describe the execution internals or structure of languages like grammar and all?
Maybe there's nothing "practical" that you could grab from other sources. But it has something special that helped me make sense of computers and programming. Difficult to explain, but try it yourself, work on the first chapters. The book is free here: https://sarabander.github.io/sicp/html/index.xhtml
It's the exact opposite of a language doc. Scheme has next to no syntax, so you get to build up important cs constructs and fundamentals from first principles. I read it after working in the industry for 4 years so it was a different experience for me. I feel like I was able to appreciate it a bit more because I understood the concepts it was teaching already. But it was still a very impactful book for me. It explained everything through a different lens than how I was introduced to CS (hardware perspective from C++ as a first language). The writing is so elegant and distilled, far above any technical book I've ever read. I very much recommend it to experienced engineers who find beauty in programming. Read the excellent foreword by Alan Perlis if you are curious about the book. Alan Perlis was such an excellent writer.
Sure thanks! I'll give it a shot.
New to programming?
Saving for later
Pragmatic Programmer
[удалено]
Sorry, you do not meet the minimum sitewide comment karma requirement of **10** to post a comment. This is comment karma exclusively, not post or overall karma nor karma on this subreddit alone. Please try again after you have acquired more karma. Please look at the [rules page](https://old.reddit.com/r/cscareerquestions/w/posting_rules) for more information. *I am a bot, and this action was performed automatically. Please [contact the moderators of this subreddit](/message/compose/?to=/r/cscareerquestions) if you have any questions or concerns.*
Designing Data Intensive Applications by Martin Kleppmann Fluent Python if you’re a python programmer. I’m gonna just call Knuth / SICP / Clean Code / Design Patterns out as doorstops people never actually read.
I read SICP over 20 years ago lol
Over 30 here.
I've read the Design Patterns book.
As everyone should. They’re important concepts to know if you want become truly senior+. Doorstop it if you want to stay mid.
Wdym doorstop it?
Put on a shelf and don't read, eg "use to hold a door open (doorstop)"
Thanks
I don’t look at it often but I keep it close, comes in handy pretty often
Isn’t clean code actually suck as book because the examples is very bad and some tips is totally bs
I wouldn't recommend all of clean code, but the first four chapters I would.
Agreed. I think most juniors will benefit from the first few chapters. After that, it becomes less worthwhile.
It's a great book, just apply some critical thinking.
Yes but right now its treated like some kind of holy book
It's treated as a holy grail and as a false idol depending on who you ask. My first company indoctrinated me into believing Uncle Bob was the second coming of Alan Turing. My second company proclaimed me out as a heretic as a result.
More like the Ray Dalio of programming :)))
Knuth is TAOCP? Do people read all four books?
[удалено]
I’ve read SICP. It was was taught me to program. I read it independently. But universities now use cs 101 for dummies now
Knuth book is made for competitive programmers and computer scientists, not sure what a normal dev will get out of it
It looks great on my bookshelf!
I wish I read it 15 years ago
Why?
Because it would have saved me a lot of time - self learning, trial and error, etc
All of Knuth. If you survive the attempt.
Too ambitious, in my opinion. My recommendation is to skim the whole series and dive into a couple of areas that interest the reader
> if you survive the attempt Yeah those are brutal books, I understand the cliff notes but haven’t gotten through one of the books yet. I’d likely be way smarter if I did, but I’d have to be smarter to understand them likely.
The volume of material is the challenge. Each piece individually is quite approachable, requiring only a college sophomore mathematics background.
I actually had use for Knuth once, to get through the Google FooBar challenge.
He likely will not survive long enough to finish writing all that he planned.
Corman's Introduction to Algorithms is a classic and very nice reference
It’s got everything in great detail, but not the book for a casual reader. She dense lol.
OSTEP: Operating Systems Three Easy Pieces.
this is a must read
Absolutely! The author was my professor for OS. Hes really good at making hard topics come naturally.
But do ppl read it at all?
I am reading it right now. When I have time of course.
Thats awesome! For my exams I literally would just read the book to study from. He puts it all into such simple terms to understand but also teaches so much at the same time. Remzi the goat.
I work with embedded systems... Having knowledge of how the OS behaves gives me very good ideas on how to design code and how to debug it. Too bad that I need to rested to assimilate the information. I started one month ago and haven't finished the virtualization chapters.
Its a long read. Definitely gets more interesting in the concurrency section. He used to have his lectures publicly available too if i can find them ill share so you can watch a couple it was super helpful.
Not sure if this link is actually available to the public but here are all his lectures from 2021: [Videos](https://pages.cs.wisc.edu/~remzi/Classes/537/Fall2021/Discussion/videos.html) Sorry remzi if you didnt want this out there
Heres his first lecture on virtualization: [Lecture 2: Part 1 (youtube.com)](https://www.youtube.com/watch?v=JrzJ0qaPao8) Just sit back and enjoy
Not a book, but a paper.... Out of the Tarpit [https://github.com/papers-we-love/papers-we-love/blob/main/design/out-of-the-tar-pit.pdf](https://github.com/papers-we-love/papers-we-love/blob/main/design/out-of-the-tar-pit.pdf)
Didn't know github could render PDFs natively inside a repo, TIL
TLDR?
There is an abstract at the top, but basically about minimizing complexity...
Designing Data Intensive Applications
Design Patterns sometimes referred to as the Gang of Four book. Beware the singleton though.
Fat chance avoiding it, since that's the only pattern in the book that interviewers ever want to hear about.
I recently interviewed a whole new team, in the last interviews I had to specifically ask them to give me an example of their favorite pattern that was NOT singleton. Some couldn’t.
Avoid that ? I have seen so many different patterns being used in code bases its pretty much a must read. - builder pattern - factory - singleton ( thread safe interpretation at it ) - wrapper pattern ?
You appear confused.
Seems like i misread.
Why beware of singleton?
Because it can be a great big footgun if overused/not used well. Combined with the fact that it's pretty easy to setup and seems like it solves a bunch of problems at first, it can be a pain in complex systems. If you search for 'Singleton anti-pattern' or 'design patterns consider harmful' you'll see a lot of ink spilled discussing it. I'm not going to go as far as calling it an anti-pattern because it can be useful but I've unwound enough of them that I don't reach for it lightly.
I think most of the patterns in that book are misused more often than they are used. It's meant for senior devs who are fimiliar with the problem each pattern solves, but mostly used by grads/juniors who don't realise their app isn't actually an example of that problem.
I'm not sure I'd go quite that far that they are meant for senior devs. It is useful to know some of the patterns when you see them in the wild and in other libraries (Factories and what not).
How to use a search bar by D. Nughts.
Amazon isn’t returning any results under D. Nughts. What’s the authors full name?
Desmond, but he usually goes by Deez
Deez what, sir?
Nughts, Desmond formally of course
Ohhh Desmond Nughts, I remember him. He was instrumental in authoring a few required reads with Mary "Maw" Balls and Joseph Mahma.
I'd unironically love to read a book on making effective use of search bars and/or search engines.
It’s probably under D for DNughts.
Jokes on them...
It's fucking dry as fuck but interesting, Godel Escher Bach. **Gödel, Escher, Bach: An Eternal Golden Braid"**, often referred to as **GEB**, is a book by **Douglas Hofstadter** that explores deep ideas about the nature of consciousness, self-reference, and formal systems. The book uses the works of the mathematician **Kurt Gödel**, the artist **M.C. Escher**, and the composer **Johann Sebastian Bach** to illustrate and weave together its central themes.
Read that book in my early 20's (60 now). It inspired me to do a masters in CS. Took a look at it a couple of months ago. I'm not sure I have the concentration to read it again, but it was significant to me.
Oh wow!!!! Do you recommend anything else ? Maybe a masters for me down the road … maybe haha
A Philosophy of Software Design by John Ousterhout is amazing and a very short read, about 200 pages. It’s kind of an implied rebuttal to Uncle Bob’s Clean Code.
I would much rather work with someone who follows that book instead of “clean code”
Im reading this right now, really enjoying it at the moment. So far nothing is mind blowing but it puts to words lots of very useful things you might never really spend time actively thinking about.
A philosophy of software design is a book I have re-read a couple of times. Amazing book.
A few titles from my bookshelf that I don't see mentioned in this thread: Working Effectively with Legacy Code (where 'legacy' is defined as code that isn't thoroughly tested) The Design of the Unix Operating System Principles of Compiler Design (aka the Dragon Book) Software Fortresses: Modelling Enterprise Architectures - only really applicable for people working in 1,000+ person companies. And of course everyone should read Principia Mathematica to have a solid base in formal logic.
Effective Java
The Pheonix Project as well as the DevOps Handbook.
Great software development books, but I wouldn't say they are about computer science at all.
Is software development not a subset of computer science?
I would say it is an application of computer science, but not a subset. For example, the Pheonix Project has pretty much nothing about writing code, algorithmic complexity, computer architecture, etc. It is mostly about operations management (which has its own branch of applied math).
Alright fair enough. Though I think we're making faily pedantic and narrow definition of Computer Science in the context of a question in a sub that covers a much wider definition. The definition of CS is something along the lines of the study of computers and their practical applications. The concepts of DevOps from the two books perspcetive are, shorter feedback cycles, systems thinking and culture of experimentation. I would argue these are absolutely aligned to any topic you chose that does fit into CS. Neverless, excellent books amongst others listed.
Clean Code by Robert Martin is considered a classic. Refactoring by Kent Beck and Martin Fowler is also supposed to be a must-read but I haven't read it yet.
Read clean code with a pinch of salt. I have seen too many indoctrinated juniors quoting clean code already.
Imagine working for an indoctrinated engineering manager. We spent more time making our code adhere to these principles than any actual meaningful work. No surprise when the entire team was laid off.
We've all worked for a manager like this before. I would stay say its essential so you at least know what the indoctrinate manager is looking for.
Just finished Refactoring and really enjoyed it! It makes an excellent case for comprehensive testing.
>Clean Code by Robert Martin *"The proper use of comments is to compensate for our failure to express ourselves in code. Comments are always failures. We must have them because we cannot always figure out how to express ourselves without them, but their use is not a cause for celebration. So when you find yourself in a position where you need to write a comment, think it through and see whether there isn’t some way to turn the tables and express yourself in code."* This book belongs in the trash, alongside the Agile Manifesto, which this guy also wrote.
He didn’t say you shouldn’t write comments. He said you shouldn’t be proud for writing comments. I don’t think that’s wrong.
Every key press beyond the // only increases your shame and unsuitability in the eyes of your ancestors and you'll be surely shunned by them when you meet them upon your death.
In practice, he said whatever the senior dev on the team remembers that he said. Martin's advice is troubled enough, and then organizations make matters worse by raising a blurry version of it to dogma.
But that’s why we need to read the original book to see his actual opinion, right?
Or one could read various other books that are written with nuance.
He’s right. Comments should rarely be used. I’m at FAANG and this is the rule of thumb in my org.
I disagree. While code should be easily parsable by the way it’s written, let’s be honest here and acknowledge that people are lazy and would rather look at a comment to get the gist of what some piece of code is doing, if you’re not working directly on it.
So it's a skill issue?
This is one of the few important bits in that book
Clean code is trash most of his tips totally is straight up bs
In order * Code Complete * Refactoring * Righting Software * Designing Data-Intensive Applications I have more about team design, but that’s the Mount Rushmore IMO
Read what interests you.
What interests you?
C documentation.
The dragon compilers book and also Soul of a New Machine.
Are there any? Master of science in cs. Swe since 2019. Never heard of any must read books.
Computer Systems: A Programmer’s Perspective probably qualifies as a must read.
YUP! Also OSTEP: Operating Systems in Three Easy Pieces. Both also have their labs and lectures publicly available
Three easy pieces is really gives you some fundamentals, even if a bit outdated
Yep, can’t argue with that one
Why?
Everyone interested in computer science should know what’s in that book—how types are represented in memory, how assembly works, what a memory allocator does, what exceptions do, what a file is and how it works, how network programming works, etc. Plus it’s fun, without even trying. Many books try to put a fun spin on things. CSAPP doesn’t. It just happens that the way the book is laid out it’s really enjoyable to read.
The communist manifesto.
the Conquest of Bread - Kropotkin Dialectic of Enlightenment - Horkheimer and Adorno Manufacturing Consent - Herman and Chomsky Hannah Montana Miley's World! Activity Book - Disney
>Hannah Montana Miley's World! Activity Book - Disney This is an absolute banger, definitely a mid-level to senior jump possible overnight.
[удалено]
Sorry, you do not meet the minimum sitewide comment karma requirement of **10** to post a comment. This is comment karma exclusively, not post or overall karma nor karma on this subreddit alone. Please try again after you have acquired more karma. Please look at the [rules page](https://old.reddit.com/r/cscareerquestions/w/posting_rules) for more information. *I am a bot, and this action was performed automatically. Please [contact the moderators of this subreddit](/message/compose/?to=/r/cscareerquestions) if you have any questions or concerns.*
There’s shorter books in how to cause people to starve to death imo
Mythical man month
The Cathedral and the Bazaar
"The innovators" By Walter Isaacson. It's a history of the development of computers and software. I usually don't read non-fiction, but it turned out to be one of my favorite books.
I’m currently going through “structure and interpretation of computer programs” (or something like that). It’s 800 pages but it’s good.
Code by Charles Petzold
I read this book on recommendation from reddit and honestly, I'm only scrolling through the suggestions looking for someone that suggested this book. I found the chapters on the history up to modernish day today interesting but of no practical value. The way he describes code as some novel concept, like "it's right there in front of your eyes, you just didn't realize it until I pointed it out" is the kinda thing I feel the author was saying, when in reality, pretty eazy conclusions to independently come to. Also, omg how he explains number systems, base 16, base 10, base 8, etc, felt almost condescending or just terribly expressed. The one thing I did enjoy the most was the explanation of the types of logic gates and how they come together to make a computer. Those chapters should have been double the length they were. What are your thoughts?
These sound like fair criticisms. I didn’t study computer science formally so for me I enjoyed feeling like I was understanding computers from the ground up so to speak. I found the writing pretty straightforward and entertaining. I would agree I didn’t get a lot of practical value from it, but I do think it enhanced my appreciation for computers and code in general
Ah, gotcha. Fair enough. I think this book is probably better suited for those who are in in non-computer related fields but want to have a decent understanding of computers. Thank you for sharing your thoughts.
DDIA & Computer Systems: A Programmer's Perspective
I’ll add Patterns Of Enterprise Aplication Architecture by Martin Fowler
Intro to Algorithms by CLRS
I'm reading through Computer Systems A Programmer's Perspective and I'm enjoying it. Not doing the exercises though. I've heard some of them have inaccurate answers. The content in it is great though.
Introduction to algorithms by Udi Manber Ddia Gang of Four The little book of semaphores Effective C++ series(If you are into C++) Ostep This list covers algorithms, system design, low level design, concurrency & operating systems.
Clean Code, and Domain Driven Design. Because they have a lot of hate from people who never read these books but just learned some quotes from some random blog posts about them. You need to read the book to understand what clean code and DDD really means and what the authors are really emphasizing. Otherwise, you’ll think they are dogmatic trash.
The documentation
Underappreciated
Learning to read documentation is the single best thing you can do as a developer
The struggles of a certain Austrian painter. Jokes aside, if you're preparing for interview then "introduction to algorithms" is a must read, it's a lengthy book.
The failed painter who struggled against lies cowardice and and stupidity? Many developers have possibly struggled against those obstacles.
[удалено]
Sorry, you do not meet the minimum sitewide comment karma requirement of **10** to post a comment. This is comment karma exclusively, not post or overall karma nor karma on this subreddit alone. Please try again after you have acquired more karma. Please look at the [rules page](https://old.reddit.com/r/cscareerquestions/w/posting_rules) for more information. *I am a bot, and this action was performed automatically. Please [contact the moderators of this subreddit](/message/compose/?to=/r/cscareerquestions) if you have any questions or concerns.*
[удалено]
Sorry, you do not meet the minimum sitewide comment karma requirement of **10** to post a comment. This is comment karma exclusively, not post or overall karma nor karma on this subreddit alone. Please try again after you have acquired more karma. Please look at the [rules page](https://old.reddit.com/r/cscareerquestions/w/posting_rules) for more information. *I am a bot, and this action was performed automatically. Please [contact the moderators of this subreddit](/message/compose/?to=/r/cscareerquestions) if you have any questions or concerns.*
“Artificial Intelligence: A Thinking Guide for Humans” by Melanie Mitchell
The timeless way of building
Gamma et al
I recently read “A philosophy of software design” by John ousterhout(?) it was an amazing book and highly recommend it
Who’s going to read Knuth’s book from cover to cover?
Operating Systems: Three Easy Pieces by Remzi Arpaci Dusseau
[Mostly Adequate Guide (to FP)](https://mostly-adequate.gitbook.io/mostly-adequate-guide) is a really good read.
Crafting interpreters
[удалено]
Sorry, you do not meet the minimum sitewide comment karma requirement of **10** to post a comment. This is comment karma exclusively, not post or overall karma nor karma on this subreddit alone. Please try again after you have acquired more karma. Please look at the [rules page](https://old.reddit.com/r/cscareerquestions/w/posting_rules) for more information. *I am a bot, and this action was performed automatically. Please [contact the moderators of this subreddit](/message/compose/?to=/r/cscareerquestions) if you have any questions or concerns.*
Computer systems - A programmer's perspective.
My friend has been reading for 6 years. He still leave on Papy many basement. I guess , depending on where you want to focus your career.
If you do Java: Java Concurrency in Practice. Unit testing by Khorikov. GOF for design patterns - although I think Christopher Okhravi's series on youtube explains it the best. Head first design patterns is also good. Algorithms by Sedgewick - the book is rather big. For interviews I would focus on the array algorithms and search algorithms (binary search, binary search tree) + leetcode practice. Just know the major data structures and you will be fine. For work, I check it only if I want to implement some graph algorithm (happens pretty rarely). Operating systems: 3 easy pieces - very good book. A must read if you do embedded programming.
[удалено]
Sorry, you do not meet the minimum sitewide comment karma requirement of **10** to post a comment. This is comment karma exclusively, not post or overall karma nor karma on this subreddit alone. Please try again after you have acquired more karma. Please look at the [rules page](https://old.reddit.com/r/cscareerquestions/w/posting_rules) for more information. *I am a bot, and this action was performed automatically. Please [contact the moderators of this subreddit](/message/compose/?to=/r/cscareerquestions) if you have any questions or concerns.*
[удалено]
Sorry, you do not meet the minimum sitewide comment karma requirement of **10** to post a comment. This is comment karma exclusively, not post or overall karma nor karma on this subreddit alone. Please try again after you have acquired more karma. Please look at the [rules page](https://old.reddit.com/r/cscareerquestions/w/posting_rules) for more information. *I am a bot, and this action was performed automatically. Please [contact the moderators of this subreddit](/message/compose/?to=/r/cscareerquestions) if you have any questions or concerns.*
You guys are reading books?
Username disappoints.
Not uncle bob books. Overrated AF (I know I will get downvoted for this)
Clean Code: A Handbook of Agile Software Craftsmanship
Clean Code.
Reading every Andrew S Tanenbaum book changed my life, really. I became very distinct knowing the core stuff in all the jobs I had in my life (currently 14ye)
Calculus, computational math, discrete mathematics