A Great Books curriculum for Software Engineering?
β’ 464 words β’ ~2 min read β²
Something that I regularly think about, almost everytime I select something to read through for furthering my knowledge in my field, is if there is something like a canonical set of reading material.
On the other side of the Atlantic ocean there is a concept of a liberal arts education that is called Great books program, a four year college degree that solely consists of studying a canon of Western philosophy and literature, without a major though of its immediate utilitarian value.
As much as I find this notion of education to be romantic, I won't suggest that it would be a blue print for a technical discipline like software engineering, if only one would come up with the right set of text books and papers as canon. But I think it would be helpful, especially for those who are not at the beginning of their career anymore and outside of a formal degree program, to have some structured guidance, to maximize the value you get out of the time invested. The higher the delta to your current knowledge the better, or with the words of Alan Kay: Perspective is worth 80 IQ points
.
When I searched for reading lists and comprehensive bibliographies, I stumbled over a list of Seminal Papers in Software Engineering published by members of the faculty of CMU. In the introduction they write: To understand the context of current research, it is essential to understand how current results evolved from early fundamental papers. These classic papers develop timeless ideas that transcend technology changes, and the ideas embodied in their solutions often apply to current problems
. Of course, you have to keep in mind that this list was compiled in the context of post-graduate education and is a means to an end (informing the original research the students are supposed to do), which imposses a limit in size.
Imagine somebody who does not want to go down the PhD path and has already written a fair portion of software. Which techniques and ideas should such a person study? What material would sustain the remaining 20 to 35 years of their working live in software the most? I suppose the "Great Ideas in Software Engineering" would not only comprise of books and academic papers, but also certain code bases, blog posts and probably even recordings of talks. It would inherently have to find a balance between practical and idealistic aspects.
As I didn't manage to find a compilation of material that goes into that direction, I am still not sure how much merit the idea of such a curriculum does have, yet I also cannot get rid of the feeling, that many great ideas are already out there, burried under a lot of noise, waiting to be (re-)discovered.