
Ask HN: What are some good peer-reviewed papers on psychology of programming? - mmczaplinski
What I mean by &quot;psychology of programming&quot; is broadly the application of psychological methods to understanding the process of programming. What are some interesting empirical results of such research?<p>Some examples of the kind of research I would be looking for: 
 - What are some key factors that affect comprehension of programs? How would those factors differ within each programming paradigm? 
 - How much of a measurable impact does a particular syntax of a programming language (e.g. python vs. lisp vs. C-style) have on program comprehension?
 - Is there good empirical evidence that particular programming no-no&#x27;s (GOTOs, global variables, etc.) actively hinder program comprehension?<p>I&#x27;m not necessarily interested in answers to those particular questions - I could obviously google for specific answers to specific questions. Instead, I would ideally like to know if there exist good meta-analyses which would aggregate findings in broader areas of said research and serve as starting points for further investigation.<p>Thanks!
======
Bartweiss
The semi-infamous paper "The Camel Has Two Humps" remains a pretty interesting
study on _teaching_ programming. It's not exactly what you're asking about,
but it has relevance in terms of identifying cognitive patterns that are tied
to good comprehension of software.

It has been retracted, but the retraction applies only to the grander claims
made based on the results. The experimental results have been replicated
several times, and to my knowledge have not failed replication in meaningful
ways. (One study, for instance, found "no effect" because the cohort scored
~100% on the assessment questions, which means any useful variance was above
the test ceiling.)

You can find the paper here
([http://wiki.t-o-f.info/uploads/EDM4600/The%20camel%20has%20t...](http://wiki.t-o-f.info/uploads/EDM4600/The%20camel%20has%20two%20humps.pdf)),
a good-if-overzealous discussion here
([https://blog.codinghorror.com/separating-programming-
sheep-f...](https://blog.codinghorror.com/separating-programming-sheep-from-
non-programming-goats/)) and the pseudo-retraction here
([http://www.eis.mdx.ac.uk/staffpages/r_bornat/papers/camel_hu...](http://www.eis.mdx.ac.uk/staffpages/r_bornat/papers/camel_hump_retraction.pdf)).

------
jimwhite
The answer is "Yes" and Google _is_ your friend here. Highly relevant queries
with high quality top hits are:

[software engineering research] [psychology of programming] [empirical
research on computer language productivity] [empirical research on programming
methodology effectiveness]

~~~
afarrell
Advising people on more-relevant queries like this is super useful and I wish
I saw it more often.

~~~
kpierce
I agree. There are a number of times I don't know the correct phrases to dig
deep in google. Especially when I started programming.

------
mmalone
This is a topic I researched a long time ago. I don't trust my memory enough
to summarize any findings or recommend specific papers, but here are a couple
of bookmarks I've kept around:

\-
[http://www.cl.cam.ac.uk/teaching/1011/R201/](http://www.cl.cam.ac.uk/teaching/1011/R201/)

\- [http://www.ppig.org/](http://www.ppig.org/)

If you're designing a programming language or programming tools, another
resource that I've found helpful is this collection of syntax choices across
languages:

\- [http://rigaux.org/language-study/syntax-across-
languages/](http://rigaux.org/language-study/syntax-across-languages/)

------
hawkinsw
[https://www.amazon.com/Psychology-Computer-Programming-
Silve...](https://www.amazon.com/Psychology-Computer-Programming-Silver-
Anniversary/dp/0932633420)

~~~
GeorgeTirebiter
This is the 'Classic' in the field, as I believe it was the first book that
talked about the 'human' side of software/programming. Although the references
are quite dated in every way we do software engineering today in specific, the
general principles remain.

Incidentally, Weinberg is a prolific author.
[https://goo.gl/Erp84w](https://goo.gl/Erp84w) I especially like his General
Systems Thinking.

~~~
mmalone
Interesting that he was a systems theory guy. My dad was a civil/mechanical
engineer and was way into systems theory in the 60s and 70s. The idea, from
what I've gathered, is to apply an engineer's toolkit to natural / social
science problems. I've got a couple of his old (way out of print) books on
systems theory and they're fascinatingly relevant to software development --
particularly for big complex distributed systems. They had to deal with poorly
specified problems, emergent behavior, "fuzzy" logic, failure, etc. All
problems you face in a real complex software system. These ideas don't get
enough press.

------
wallflower
Andreas Stefik, Susanna Siebert, Melissa Stefik, and Kim Slattery: An
Empirical Comparison of the Accuracy Rates of Novices using the Quorum, Perl,
and Randomo Programming Languages. PLATEAU 2011.

------
lsiebert
I highly recommend reading (Studying the language and structure in non-
programmers’ solutions to programming problems
(2001))[[http://www.cs.cmu.edu/~pane/ftp/PaneRatanamahatanaMyers2001....](http://www.cs.cmu.edu/~pane/ftp/PaneRatanamahatanaMyers2001.pdf)]

Basically they ask a bunch of non programmers to describe how a computer
should do discrete tasks in PacMan. They also cite a number of older but
relevant papers on this topic.

------
sdvsdv
> Ask HN: What are some good peer-reviewed papers on psychology of
> programming?

> Ask HN: What are some good peer-reviewed papers on psychology of
> programming?

> Ask HN: What are some good peer-reviewed papers on psychology of
> programming?

Xc cv c c cv cv cv cv c cv cv cv ccv cv cv cv

------
eisokant
If this is an area of interest to work in professionally, send me an email.
We're looking at a lot of the same things.

