📚 A curated list of papers for Software Engineers
Python
6,603
179 commits
updated Oct 4, 2026
A curated list of papers that may be of interest to Software Engineering students or professionals. See the sources and selection criteria below.
Von Neumann's First Computer Program. Knuth (1970).
Computer History; Early Programming
Computing Machinery and Intelligence. Turing (1950).
Early Artificial Intelligence
A Method for the Construction of Minimum-Redundancy Codes. Huffman (1952).
Information Theory
Engineering a Sort Function. Bentley, McIlroy (1993).
Data Structures; Algorithms
A Design Methodology for Reliable Software Systems. Liskov (1972).
Software Design
Programming Paradigms for Dummies: What Every Programmer Should Know. Van Roy (2012).
Programming Paradigms
An Incremental Approach to Compiler Construction. Ghuloum (2006).
Language Design; Compilers
No Silver Bullet: Essence and Accidents of Software Engineering. Brooks (1987).
Software Engineering; Project Management
Communicating sequential processes. Hoare (1978).
Concurrency
The UNIX Time- Sharing System. Ritchie, Thompson (1974).
Operating Systems
A Relational Model of Data for Large Shared Data Banks. Codd (1970).
Databases
A Protocol for Packet Network Intercommunication. Cerf, Kahn (1974).
Networking
New Directions in Cryptography. Diffie, Hellman (1976).
Cryptography
Time, Clocks, and the Ordering of Events in a Distributed System. Lamport (1978).
Distributed Systems
Designing for Usability: Key Principles and What Designers Think. Gould, Lewis (1985).
Human-Computer Interaction; User Interfaces
The anatomy of a large-scale hypertextual Web search engine. Brin, Page (1998).
Information Retrieval; World-Wide Web
Dynamo, Amazon’s Highly Available Key-value store. DeCandia et al (2007).
Internet Scale Data Systems
On Designing and Deploying Internet Scale Services. Hamilton (2007).
Operations; Reliability; Fault-tolerance
Bitcoin, A peer-to-peer electronic cash system. Nakamoto (2008).
Decentralized Distributed Systems; Peer-to-peer systems
A Few Useful Things to Know About Machine Learning. Domingos (2012).
Machine Learning
This list was inspired by (and draws from) several books and paper collections:
A few interesting resources about reading papers from Papers We Love and elsewhere:
(top 24 of 93)
465 followers · starred Nov 2022
1,613 followers · starred Jul 2022
533 followers · starred Dec 2024
723 followers · starred Jul 2022
📚 A curated list of papers for Software Engineers
Python
6,603
179 commits
updated Oct 4, 2026
A curated list of papers that may be of interest to Software Engineering students or professionals. See the sources and selection criteria below.
Von Neumann's First Computer Program. Knuth (1970).
Computer History; Early Programming
Computing Machinery and Intelligence. Turing (1950).
Early Artificial Intelligence
A Method for the Construction of Minimum-Redundancy Codes. Huffman (1952).
Information Theory
Engineering a Sort Function. Bentley, McIlroy (1993).
Data Structures; Algorithms
A Design Methodology for Reliable Software Systems. Liskov (1972).
Software Design
Programming Paradigms for Dummies: What Every Programmer Should Know. Van Roy (2012).
Programming Paradigms
An Incremental Approach to Compiler Construction. Ghuloum (2006).
Language Design; Compilers
No Silver Bullet: Essence and Accidents of Software Engineering. Brooks (1987).
Software Engineering; Project Management
Communicating sequential processes. Hoare (1978).
Concurrency
The UNIX Time- Sharing System. Ritchie, Thompson (1974).
Operating Systems
A Relational Model of Data for Large Shared Data Banks. Codd (1970).
Databases
A Protocol for Packet Network Intercommunication. Cerf, Kahn (1974).
Networking
New Directions in Cryptography. Diffie, Hellman (1976).
Cryptography
Time, Clocks, and the Ordering of Events in a Distributed System. Lamport (1978).
Distributed Systems
Designing for Usability: Key Principles and What Designers Think. Gould, Lewis (1985).
Human-Computer Interaction; User Interfaces
The anatomy of a large-scale hypertextual Web search engine. Brin, Page (1998).
Information Retrieval; World-Wide Web
Dynamo, Amazon’s Highly Available Key-value store. DeCandia et al (2007).
Internet Scale Data Systems
On Designing and Deploying Internet Scale Services. Hamilton (2007).
Operations; Reliability; Fault-tolerance
Bitcoin, A peer-to-peer electronic cash system. Nakamoto (2008).
Decentralized Distributed Systems; Peer-to-peer systems
A Few Useful Things to Know About Machine Learning. Domingos (2012).
Machine Learning
This list was inspired by (and draws from) several books and paper collections:
A few interesting resources about reading papers from Papers We Love and elsewhere:
(top 24 of 93)
465 followers · starred Nov 2022
1,613 followers · starred Jul 2022
533 followers · starred Dec 2024
723 followers · starred Jul 2022