4 ms·
Ask HN: What are some good peer-reviewed papers on psychology of programming?
What I mean by "psychology of programming" is broadly the application of psychological methods to understanding the process of programming. What are some interesting empirical results of such research?
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's (GOTOs, global variables, etc.) actively hinder program comprehension?
I'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.
Thanks!
- hawkinsw 10y agohttps://www.amazon.com/Psychology-Computer-Programming-Silver-Anniversary/dp/0932633420 https://www.amazon.com/Psychology-Computer-Programming-Silve...
- cbanek 10y agoThis is an excellent book.
- GeorgeTirebiter 10y agoThis 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 10y agoInteresting 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.
- mmalone 10y agoThis 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/
- Bartweiss 10y agoThe 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%20two%20humps.pdf http://wiki.t-o-f.info/uploads/EDM4600/The%20camel%20has%20t...), a good-if-overzealous discussion here (https://blog.codinghorror.com/separating-programming-sheep-from-non-programming-goats/ https://blog.codinghorror.com/separating-programming-sheep-f...) and the pseudo-retraction here (http://www.eis.mdx.ac.uk/staffpages/r_bornat/papers/camel_hump_retraction.pdf http://www.eis.mdx.ac.uk/staffpages/r_bornat/papers/camel_hu...).
- wallflower 10y agoAndreas 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.
- jimwhite 10y agoThe 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 10y agoAdvising people on more-relevant queries like this is super useful and I wish I saw it more often.
- kpierce 10y agoI agree. There are a number of times I don't know the correct phrases to dig deep in google. Especially when I started programming.
- drwl 10y agoalso using Google Scholar! Just be sure to make sure on [x] Peer Reviewed
- eisokant 10y agoIf this is an area of interest to work in professionally, send me an email. We're looking at a lot of the same things.
- lsiebert 10y agoI highly recommend reading (Studying the language and structure in non-programmers’ solutions to programming problems (2001))[http://www.cs.cmu.edu/~pane/ftp/PaneRatanamahatanaMyers2001.pdf http://www.cs.cmu.edu/~pane/ftp/PaneRatanamahatanaMyers2001....] 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 10y ago> 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