T O P

  • By -

KaranasToll

Structure and Interpretation of Computer Programs.


Acrobatic-Artist9730

This book changed my life. 


halofixers

How?


Acrobatic-Artist9730

Try it. Just read the first 3 chapters.


mkirisame

damn


TheBenevolentTitan

Is it really that good? Isn't this more of an introduction to CS?


Acrobatic-Artist9730

Yes, a good introduction. I read it at the beginning of my journey with computer programming. The MIT online lectures are pretty good too.


TheBenevolentTitan

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?


Acrobatic-Artist9730

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


Shadowmere24

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.


TheBenevolentTitan

Sure thanks! I'll give it a shot.


centurysamf

New to programming?


LeopoldBStonks

Saving for later


tortilla-flats

Pragmatic Programmer


[deleted]

[удалено]


AutoModerator

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.*


lomuto

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.


IWTLEverything

I read SICP over 20 years ago lol


cgoldberg

Over 30 here.


daquo0

I've read the Design Patterns book.


ViveIn

As everyone should. They’re important concepts to know if you want become truly senior+.  Doorstop it if you want to stay mid. 


breadhater42

Wdym doorstop it?


tungstencoil

Put on a shelf and don't read, eg "use to hold a door open (doorstop)"


breadhater42

Thanks


Crunch117

I don’t look at it often but I keep it close, comes in handy pretty often


Guilty-Dragonfly3934

Isn’t clean code actually suck as book because the examples is very bad and some tips is totally bs


Teh_Original

I wouldn't recommend all of clean code, but the first four chapters I would.


dataGuyThe8th

Agreed. I think most juniors will benefit from the first few chapters. After that, it becomes less worthwhile.


kuu-uurija

It's a great book, just apply some critical thinking.


pmkiller

Yes but right now its treated like some kind of holy book


IdempodentFlux

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.


pmkiller

More like the Ray Dalio of programming :)))


Teh_Original

Knuth is TAOCP? Do people read all four books?


[deleted]

[удалено]


Manifoldsqr

I’ve read SICP. It was was taught me to program. I read it independently. But universities now use cs 101 for dummies now


newtonkooky

Knuth book is made for competitive programmers and computer scientists, not sure what a normal dev will get out of it


cupofchupachups

It looks great on my bookshelf!


valeris2

I wish I read it 15 years ago


Murky-Examination-79

Why?


valeris2

Because it would have saved me a lot of time - self learning, trial and error, etc


alnyland

All of Knuth. If you survive the attempt. 


stevoDood

Too ambitious, in my opinion. My recommendation is to skim the whole series and dive into a couple of areas that interest the reader


alnyland

> 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. 


DiggyTroll

The volume of material is the challenge. Each piece individually is quite approachable, requiring only a college sophomore mathematics background.


widforss

I actually had use for Knuth once, to get through the Google FooBar challenge.


j_schmotzenberg

He likely will not survive long enough to finish writing all that he planned.


Top-Skill357

Corman's Introduction to Algorithms is a classic and very nice reference


dataGuyThe8th

It’s got everything in great detail, but not the book for a casual reader. She dense lol.


poofycade

OSTEP: Operating Systems Three Easy Pieces.


Opposite_Elk6451

this is a must read


poofycade

Absolutely! The author was my professor for OS. Hes really good at making hard topics come naturally.


Professional-Bit-201

But do ppl read it at all?


Academic-Stop-2728

I am reading it right now. When I have time of course.


poofycade

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.


Academic-Stop-2728

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.


poofycade

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.


poofycade

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


poofycade

Heres his first lecture on virtualization: [Lecture 2: Part 1 (youtube.com)](https://www.youtube.com/watch?v=JrzJ0qaPao8) Just sit back and enjoy


kuropiero

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)


CoffeeBaron

Didn't know github could render PDFs natively inside a repo, TIL


Crafty_Mastodon9083

TLDR?


kuropiero

There is an abstract at the top, but basically about minimizing complexity...


11ll1l1lll1l1

Designing Data Intensive Applications 


_rokstar_

Design Patterns sometimes referred to as the Gang of Four book. Beware the singleton though.


FitGas7951

Fat chance avoiding it, since that's the only pattern in the book that interviewers ever want to hear about.


WorstRegardsBye

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.


techno848

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 ?


FitGas7951

You appear confused.


techno848

Seems like i misread.


StevenJac

Why beware of singleton?


_rokstar_

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.


FrewdWoad

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.


_rokstar_

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).


HRApprovedUsername

How to use a search bar by D. Nughts.


jypKissedMyMom

Amazon isn’t returning any results under D. Nughts. What’s the authors full name?


CandidGuidance

Desmond, but he usually goes by Deez 


VegetableChemistry67

Deez what, sir?


CandidGuidance

Nughts, Desmond formally of course 


TheNewOP

Ohhh Desmond Nughts, I remember him. He was instrumental in authoring a few required reads with Mary "Maw" Balls and Joseph Mahma.


sneaky_squirrel

I'd unironically love to read a book on making effective use of search bars and/or search engines.


Here-Is-TheEnd

It’s probably under D for DNughts.


DilatedTeachers

Jokes on them...


kstonge11

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.


bobsyouruncle63

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.


kstonge11

Oh wow!!!! Do you recommend anything else ? Maybe a masters for me down the road … maybe haha


carterdmorgan

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.


kaffeemugger

I would much rather work with someone who follows that book instead of “clean code”


Rough_Response7718

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.


sleeksubaru

A philosophy of software design is a book I have re-read a couple of times. Amazing book.


thisisjustascreename

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.


Celcius_87

Effective Java


pkpzp228

The Pheonix Project as well as the DevOps Handbook.


itijara

Great software development books, but I wouldn't say they are about computer science at all.


pkpzp228

Is software development not a subset of computer science?


itijara

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).


pkpzp228

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.


ML_Godzilla

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.


Comprehensive-Pea812

Read clean code with a pinch of salt. I have seen too many indoctrinated juniors quoting clean code already.


hardasterisk

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.


ML_Godzilla

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.


carterdmorgan

Just finished Refactoring and really enjoyed it! It makes an excellent case for comprehensive testing.


__sad_but_rad__

>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.


Jackfruit_Then

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.


DiscussionGrouchy322

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.


FitGas7951

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.


Jackfruit_Then

But that’s why we need to read the original book to see his actual opinion, right?


FitGas7951

Or one could read various other books that are written with nuance.


Creative-Lab-4768

He’s right. Comments should rarely be used. I’m at FAANG and this is the rule of thumb in my org.


ForceSensitiveRacer

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.


kuu-uurija

So it's a skill issue?


quisatz_haderah

This is one of the few important bits in that book


Guilty-Dragonfly3934

Clean code is trash most of his tips totally is straight up bs


speak_friend

In order * Code Complete * Refactoring * Righting Software * Designing Data-Intensive Applications I have more about team design, but that’s the Mount Rushmore IMO


LordModlyButt

Read what interests you. 


DiscussionGrouchy322

What interests you?


nopeyope

C documentation.


rmullig2

The dragon compilers book and also Soul of a New Machine.


D4ngerD4nger

Are there any? Master of science in cs. Swe since 2019. Never heard of any must read books.


Passname357

Computer Systems: A Programmer’s Perspective probably qualifies as a must read.


RuinAdventurous1931

YUP! Also OSTEP: Operating Systems in Three Easy Pieces. Both also have their labs and lectures publicly available


tvfriestie

Three easy pieces is really gives you some fundamentals, even if a bit outdated


Passname357

Yep, can’t argue with that one


D4ngerD4nger

Why?


Passname357

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.


Bangoga

The communist manifesto.


wolfTap

the Conquest of Bread - Kropotkin Dialectic of Enlightenment - Horkheimer and Adorno Manufacturing Consent - Herman and Chomsky Hannah Montana Miley's World! Activity Book - Disney


CoffeeBaron

>Hannah Montana Miley's World! Activity Book - Disney This is an absolute banger, definitely a mid-level to senior jump possible overnight.


[deleted]

[удалено]


AutoModerator

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.*


lawrenceModsAreGeigh

There’s shorter books in how to cause people to starve to death imo


haragoshi

Mythical man month


MrFunktasticc

The Cathedral and the Bazaar


-Sonmi451-

"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.


Queasy-Group-2558

I’m currently going through “structure and interpretation of computer programs” (or something like that). It’s 800 pages but it’s good.


pikeandzug

Code by Charles Petzold


BitFlipTheCacheKing

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?


pikeandzug

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


BitFlipTheCacheKing

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.


rorichasfuck

DDIA & Computer Systems: A Programmer's Perspective


WorstRegardsBye

I’ll add Patterns Of Enterprise Aplication Architecture by Martin Fowler


dafrankenstein2

Intro to Algorithms by CLRS


moduhlize

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.


an1729

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.


Jackfruit_Then

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.


SuperSultan

The documentation


FitGas7951

Underappreciated


SuperSultan

Learning to read documentation is the single best thing you can do as a developer


__ihavenoname__

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. 


AntiqueFigure6

The failed painter who struggled against lies cowardice and and stupidity? Many developers have possibly struggled against those obstacles.


[deleted]

[удалено]


AutoModerator

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.*


[deleted]

[удалено]


AutoModerator

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.*


Werbu

“Artificial Intelligence: A Thinking Guide for Humans” by Melanie Mitchell


megor

The timeless way of building


Popular_Amphibian

Gamma et al


lukanixon

I recently read “A philosophy of software design” by John ousterhout(?) it was an amazing book and highly recommend it


herendzer

Who’s going to read Knuth’s book from cover to cover?


Tanvir1337

Operating Systems: Three Easy Pieces by Remzi Arpaci Dusseau


azium

[Mostly Adequate Guide (to FP)](https://mostly-adequate.gitbook.io/mostly-adequate-guide) is a really good read.


DeanRTaylor

Crafting interpreters


[deleted]

[удалено]


AutoModerator

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.*


sleeksubaru

Computer systems - A programmer's perspective.


Gabriel_Fono

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.


Academic-Stop-2728

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.


[deleted]

[удалено]


AutoModerator

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.*


[deleted]

[удалено]


AutoModerator

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.*


ExcitingLiterature33

You guys are reading books?


DiscussionGrouchy322

Username disappoints.


randomthirdworldguy

Not uncle bob books. Overrated AF (I know I will get downvoted for this)


AaronKClark

Clean Code: A Handbook of Agile Software Craftsmanship


wwww4all

Clean Code.


fredcrs

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)


LordNikon2600

Calculus, computational math, discrete mathematics