Computer History and Learning Style
///
TLDR: Go to this link The 7 Most Influential Papers in Computer Science History and enjoy.
///
My learning style includes an appreciation for sources which explain topics in this way:
- It's a topic of interest. But if done in this manner, just about anything is interesting.
- Topic is / It often is something modern which has a historical basis. There usually is a direct link. I find it helpful to understand "how did we get here?" coupled with "Why does it matter?"
- It's a high-level overview of this history, connecting the dots with inflection points and good storytelling. This lends itself to longer forms like books. Each chapter or paragraph is someone's PhD thesis and area of profession. But I don't need that kind of detail at the moment. If I want to dive deeper later I can. Just the right balance of including and excluding detail.
For example:
- Book:
- Salt: A World History by Mark Kurlanksy. "Until about 100 years ago, salt, the only rock we eat, was one of the world’s most sought after commodities. Wars were fought over it, other wars were financed with it, colonies were settled to get it. It secured empires and spurred revolutions. Then, fairly suddenly, it lost its value." C'mon!
- Video:
- JHS Pedals Playlist. JHS makes electric guitar effects pedals. This link is to an "Education" playlist but all of their videos are informative. This was my earliest introduction to expanding my knowledge and usage of pedals. My first name-brand pedal was their Colour Box V2 which is a Neve 1073-in-a-box.
- Podcast:
- Dan Carlin's Hardcore History. Eleven hours of "Pagan Viking Sea Kings spend the 10th and 11th centuries morphing into Christian monarchs."?! Yes, please!
- Class:
- I'm currently enrolled in Algorithms and Data Structures 1 at University of Pittsburgh. "This course emphasizes the study of the basic data structures of computer science (stacks, queues, trees, lists) and their implementations using the Java language. Included in this study are programming techniques that use recursion, reference variables, and dynamic memory allocation. Students in this course are also introduced to various searching and sorting methods and also expected to develop an intuitive understanding of the complexity of these algorithms." Last night in class we discussed how sorting algorithms interact with processing speed via CPU, RAM, HDD, VM. Sign me up!
///
Yesterday I came across this Kottke.org link to Terrible Software. I perused the blog and landed on The 7 Most Influential Papers in Computer Science History.
The longer I work with software I find it helpful to understand why things are the way they are. One avenue that's been advantageous is Walter Issacson's Steve Jobs biography. He then published "The Innovators" - a history of hardware and software from Lovelace and Babbage to present. This was material he researched to understand the context for Jobs but didn't have a place in the that book. From there I jumped to The Idea Factory which is a history of Bell Labs.
If you're familiar with the above history then you know why 7 Most Influential Papers is relevant. He lists some that were familiar to me (Turing, TCP, Berners-Lee, Brin/Page). I'd just finished The Idea Factory's dive into Claude Shannon *inventing* information theory which was a new and exciting find to me. I recently watched an explainer video on P/NP so it was cool to see it show up here, too.
I'd not heard of Edgar Codd's contributions! My daily bread and butter is SQL/RDBMS! "If you ever wrote a SQL query in your life — it’s all thanks to him."
I'm also excited to check out the "transformer architecture behind....AI models" paper.
The bottom line is what's helpful about Terrible Software's list is how it's presented. Title, summary of what it is and why it matters today, and some links. Amazing. Dig in.