
Builder vs. Programmer Perspective - deepaksurti
http://csapp.cs.cmu.edu/3e/perspective.html
======
sfopdxnonstop
The distinction was clear to me with the first example. A book could teach me
how to implement memory caches and addressing (builder) or could teach me the
impact of programming against memory caches by controlling my memory
addressing.

I like it. It's a valid critique of perspective.

~~~
mettamage
I agree that’s what I took out of it as well. The builder perspective is
learning to design and implement from first principles, which isn’t very
practical according to the author because most of the information will not be
used in day to day programming.

The perspective the author is arguing for is understanding the principles
behind how systems under the hood impact day to day programming.

An example: you don’t care about how transistors work, unless you want to
understand rowhammer. One theory I heard is: it works because small
transistors get their electricity leaked away to bigger transistors that are
reading out memory millions of times. Another: you don’t care about creating a
game in assembly (hello Rollercoaster Tycoon!), but you do want to be able to
read assembly with regards to do compiler and/or performance analysis.

I wonder whether people agree with my examples or disagree.

~~~
mannykannot
Agreed: theory doesn't matter - until it does. The implementation of
abstractions doesn't matter - until the consequences of the implementation
leaks out as observable behavior.

------
Noumenon72
Good headline. The article would have been more interesting if it had played
up the contrast between two perspectives, the way you framed it, instead of
spending all its time on the programmer's perspective.

~~~
suyash
Agree, the article failed to prove the point. The distinction is still unclear
to me.

~~~
pandler
The distinction is that teaching how to build a car from scratch (builder)
doesn’t teach you how to drive it any better (programmer). The proposal is to
teach programming with “assume you have a car/compiler/filesystem” instead of
_always_ starting from first principles.

------
Nevada-Smith
Sheesh, take a look at their errata page:
[http://csapp.cs.cmu.edu/3e/errata.html](http://csapp.cs.cmu.edu/3e/errata.html)

------
ninju
I think a curriculum based upon alternating between _builder_ and _programmer_
would be the best of both worlds. Just one perspective only would be
incomplete

------
zerr
Any lecture videos based on this book?

~~~
Lt_Riza_Hawkeye
Yes:
[https://www.youtube.com/watch?v=wVNvEGe2UOA&list=PLPXsMt57rL...](https://www.youtube.com/watch?v=wVNvEGe2UOA&list=PLPXsMt57rLtjNzxZBDg9xJB7KT83WStBO)

