
The Programmers' Stone (2014) - snvzz
https://www.datapacrat.com/Opinion/Reciprocality/r0/index.html
======
prepend
I haven’t read the whole thing yet, but the structure and format and content-
richness is a breath of fresh air.

I miss sites that were about sharing ideas and helping others rather than
getting claps.

The only way I could think of making this better was if it was generated from
a git repo so that one day if I’m ever worthy of asking a question or sending
a suggestion, I could send a pull request. But that’s totally author’s
prerogative and I’m happy they shared this in a non junky-way.

------
hnzix
This text is not as impenetrable as it first seems and offers some valuable
insights on the friction between socially conditioned roleplaying ("packing")
vs deep thinking ("mapping").

My best takeaways were:

1\. You're not crazy for being a deep thinker: it drives force multiplication

2\. Ceremony is very often bullshit

3\. You're going to have to make some quality sacrifices in your code - here's
a useful model on how to approach that

I also liked the bits about using a step debugger for code reviews, and
avoiding nested conditionals. I mostly failed to grasp the camel sex analogy.

~~~
mikekchar
It's been ages since I read this, but I remember coming away with a very
different impression. "Packing" is essentially storing away details in your
memory. If you ever see programmers who write the solution to everything down
and then are constantly looking up their notes: that's a packer. "Mapping" is
essentially deriving from first principles. It frees up a lot of working
memory in your head and allows you to explore the issues more freely.

I think it's a bit more than that, though. Fluency in a task usually means
being able to do it without undue planning. When you are speaking, you don't
figure out the grammar of what you are saying. You just open your mouth and it
kind of pops out. It's that kind of synthesis that's important. It's the same
as play chess at a high level or especially playing go. You might not know
exactly why one move is better than the other, but your fluency allows you to
judge it correctly. To me, that's "mapping". "Packing" is a good strategy if
you don't need to judge the value of your work. This is the answer: right or
wrong. You can write it down. You can memorize it. You can produce it at the
appropriate time. But you can't derive it without a lot of effort.

This writing influenced my thinking a lot, but when I started to get involved
with language acquisition, I started to feel that it's a bit limited. I think
language/skill acquisition models are actually a better fit. However, this
analogy is still useful in certain ways.

~~~
hnzix
I didn't get that at all. The premise of the article is that society, for
agrarian/industrial revolution reasons, has conditioned us to be "packers" \-
reactive cogs.

It implores us to learn from the Japanese post WWII practice of Total Quality
Management / Kaizen to become imaginative mappers.

The article strongly divides people into one of the two camps, with frequent
Dilbert references and disparaging remarks towards packers as "holding their
toothbrush with chopsticks". It strongly criticizes packing as worthless
ceremony for the sake of social ritual.

(If you squint hard enough there's also a parable in there about premature API
layers and strong typing, but I'll concede that part's subjective).

------
wellpast
The Ghost Not article/paper/essay sits adjacent to The Programmer's Stone and
is mind-blowing.

[https://www.datapacrat.com/Opinion/Reciprocality/r2/index.ht...](https://www.datapacrat.com/Opinion/Reciprocality/r2/index.html)

I'm very curious the history behind all of this, the original author(s), where
they are now or where any of this theory went, whose thinking it influenced.

~~~
Brain_Thief
Thank you for linking to this.

------
mikekchar
Wow! This is a blast from the past! I'm trying to think... It's got to be 20
years old now. Anybody know if it's been updated in that time? I don't really
remember it being quite so long. And for some reason, I remember the
background being black or something weird like that.

Edit: Well, from the "unsolicited testimonial": 'On Tue, 2 Nov 1999, Alan
Carter wrote' So, I guess I'm pretty close on the 20 year thing :-)

------
DonaldFisk
I first read this in the early 2000s. It's part of the Reciprocality project,
which is hosted at
[https://www.datapacrat.com/Opinion/Reciprocality/](https://www.datapacrat.com/Opinion/Reciprocality/)

It's been discussed on Hacker News a few times before. There's also a Yahoo
group for discussing related ideas:
[https://groups.yahoo.com/neo/groups/progstone/info](https://groups.yahoo.com/neo/groups/progstone/info)
with posts going back as far as 1999.

~~~
jacobolus
The bottoms of the pages claim this if from 1997.

Definitely not 2014.

------
dmos62
I've formatted the book into an EPUB and uploaded it to libgen.io:
[http://booksdescr.org/item/index.php?md5=fa2fdee7b8a50612970...](http://booksdescr.org/item/index.php?md5=fa2fdee7b8a50612970bf2e476deca23)

~~~
jressey
Thank you! There are a few large sections in blue text. I'm not sure if you
did that intentionally and I am missing the reasoning. Thought you'd like to
know.

~~~
dmos62
Those are in the original too. I'm not yet sure of the purpose either. On
closer inspection, the blueness is from an <a> element that wraps the blue
text. The <a> element seems to have a CSS class called "taylor" applied to it.
Maybe an editorial artefact? Sorry for not fixing that.

------
prepend
I love that the authors blog [0] hasn’t been updated since 2013. It makes me
feel better about my most recent post being from 2009.

Also points out the beauty of the web that it’s so effortless to maintain
information that it’s easier for me to keep it running than shut it down.

[0] [http://blog.datapacrat.com/](http://blog.datapacrat.com/)

------
cnasc
Scanning the table of contents, this looks pretty interesting. Anybody worked
through it before?

~~~
Y_Y
I agree, looks interesting, but so do lots of things.

It would be valuable to have a short description from someone who's read this,
please.

~~~
hnzix
"There's two ways to approach work: social ('packer') and philosophical
('mapper'). Philosophical is more effective, but your boss is likely to be a
packer. Here's some practical tips to understand and alleviate that tension."

It also champions the bazaar over the cathedral.

------
0xdeadbeefbabe
> If only the whole of the industry performed as well as the tiny minority of
> excellent workers, the economic benefits would be immense.

That ship hasn't come in yet. Maybe the Pareto principle is stopping it.

------
TuringTest
Wow! Sending that page to print as pdf (to read in a ebook) was a breath of
fresh air, after struggling with headers, sidebars and floats in the typical
web page.

~~~
stronglikedan
Maybe you can share that PDF for some sweet, sweet fake internet points, since
the site seems to have been hugged to death.

~~~
TuringTest
I only saved the first chapter, but you have the whole thing archived:

[https://web.archive.org/web/20190627151514/https://www.datap...](https://web.archive.org/web/20190627151514/https://www.datapacrat.com/Opinion/Reciprocality/r0/index.html)

------
JackFr
> The purpose of this site is to recapture, explore and celebrate the Art of
> Computer Programming.

There's real good stuff here. Minor quibble: 'The Art of Computer Programming'
is a well known series of books by Donald Knuth. You might say:

"The purpose of this site is to recapture, explore and celebrate the art of
computer programming."

------
ruslan
This is as old as a stone. I recall translating part of the essay to Russian
when I used to study philosophy as a PhD student back in 2004.
[https://www.fabmicro.ru/~rz/Progstone_rus.doc](https://www.fabmicro.ru/~rz/Progstone_rus.doc)

------
revskill
I always think about API/Implementation as Cause/Effect.

Each API will give different implementation.

The things that i learnt is that, i need to spend more time on API usage
rather than implementation. With basic API and raw implementation, i could
incrementally improve the implementation later.

With a broken API usage, my code is trashable.

------
gwbas1c
FYI: It's always a good idea to put the date that you wrote this, and then the
date that you update it.

~~~
jacobolus
The year (1997) is written at the bottom of the pages.

------
mjw1007
The title here says 2014, but each chapter has a "last updated date" from
either 1997 or 1999.

------
teekert
Clicked some random parts. Got hooked right in! Is there an epub/mobi?

~~~
smartmic
It should not be to hard to convert the html files to epub using pandoc with a
script. Will check later if it is worth the effort. I would also prefer PDF to
read it.

~~~
smartmic
Here you go with a oneline (in bash, PDF, change as required):

    
    
        for i in {1..7} ; do curl "https://www.datapacrat.com/Opinion/Reciprocality/r0/Day$i.html" | pandoc -f html --pdf-engine=xelatex -o "chap$i.pdf"; done

