DEV Community

Discussion on: The Best Book to Read as a Developer

Collapse
 
eduardo__uribe profile image
Eduardo Uribe

Thanks, Ryland.

You make this book sound really informative in a good way.

Could you give one example of how understanding the inside of a computer has enhanced your software skills/thinking?

Look forward to reading this.

Collapse
 
skydevht profile image
Holy-Elie Scaïde

Just like @stephangalea said, You start to give more thought about your code, optimisation wise. I've studied Electronic Engineering so I know how the lowest levels (Transistor and Logic Circuit) work. But when you know the whole stack, how things work from the basic elements (transistor) to your code and all the intermediary levels, you will have a more complete understanding of what possible or not and go from there to inventing your own solutions.

Collapse
 
taillogs profile image
Ryland G

you will have a more complete understanding of what possible or not and go from there to inventing your own solutions.

That's a unique point that I haven't seen anyone else raise. I definitely agree that having a more end-to-end understanding helps you avoid "reinventing the wheel". Thanks for that perspective!

Collapse
 
taillogs profile image
Ryland G

Sorry for the late reply!

It's a hard question because a lot of what I gained from the book isn't a direct "skill" but instead a deep understanding.

There are obvious places where direct information from the book helped me, such as designing my game engine. What the book taught me about CPU caching really inspired me to learn more about how the cache works. This eventually led to a partial rewrite of my engine, as I had learned about entity-component pattern because of it's cache friendliness. I could list countless situations like these, and from other work projects (such as implementing high performance AI algorithms).

Outside of high performance computing, this book taught me a lot about basic programming patterns and the intricacies of branch prediction. Those are both incredibly relevant concepts, no matter what language you're working in.

Collapse
 
stephangalea profile image
Stephan Galea

When you know how computer work internally you start appreciating and give more importance to code optimisation and resource management. Understand why Cyclomatic complexity exists. Why a computer cannot be sure if a program is stuck (Halting problem) so no you can't solve that ever, you can only take a guess that it may be stuck. Just to name a few.

Collapse
 
taillogs profile image
Ryland G

When you know how computer work internally you start appreciating and give more importance to code optimisation and resource management.

You're absolutely right, it's a very hard phenomena to describe to outsiders. Reading books like this one really just gives you an underlying "love" for how things work.

Thread Thread
 
perpetual_education profile image
perpetual . education

This is cool. We just ordered it.

BUT! - does that make it The Best Book to Read as a (WEB) Developer ??? "Software" is a huge field... but if seems like most of the talk around here is for 'web' stuff.

No matter how well it explains hardware: it's seems like there's at least 20 more important books that a dev should read - for the sake of our future.

Thread Thread
 
perpetual_education profile image
perpetual . education

It just came in the mail! Excited to check it out.

Collapse
 
nuculabs_dev profile image
Nucu Labs

Hey Eduardo!

Checkout out this talk from Scott Meyers on CPU caches. By knowing how the computer uses and access the cache you can write code that takes advantage of this and refactor existing code to be more efficient! For me it was rare to write such code in practice but it's nice to know.

youtube.com/watch?v=WDIkqP4JbkE

Collapse
 
taillogs profile image
Ryland G

What a great resouce!

Collapse
 
eduardo__uribe profile image
Eduardo Uribe

Wow... Thanks, Denis.

Scott Meyer is such a great lecturer.

I didn't fully understand most of the concepts, but his easy to follow flow kept me engaged.

This video gave me a better 'picture' of how one might take advantage of their understanding of the computer hardware in some software cases.

Thanks again, Denis.