This is the list I wish I'd started ages ago.
(The name is more anticipatory than strictly accurate.)
Please comment.
- Code in the Language of the Domain - Dan North
- Seeing Spaces - Bret Victor
Badger badger = new Badger()
3- What can I say? Watch pretty much anything by Kevlin Henney4
This will not be an immutable list.
- The Future of Programming - Bret Victor
- Why does it matter?
- I keep coming back to this talk. It's genius in so many ways.
- It's a fantastic "conceit", very well presented. (The only1 thing better - from this point of view - that comes to mind is "Growing a Language". Coincidentally - I assume - both these talks feature acetates and OHPs, but for slightly different reasons.)
- Inspirational, Fundamental, History
- Why does it matter?
- How to Write a Method - Kevlin Henney
- Why does it matter?
- Questions the basics of coding style and posits the idea that style is often not as subjective as we like to think it is.
- That feeling when you figured you knew this already but had no idea how to explain it or justify it...
- “It turns out that style matters in programming for the same reason that it matters in writing. It makes for better reading.” - Doug Crockford
- Provocative
- Why does it matter?
For any project, of any reasonable size, in my current context, this is roughly where I'm coming from...
- Clean Architecture and Design - Robert C. Martin
- Currently under serious threat from the C4 Model
- TDD, where did it all go wrong? - Ian Cooper
- Perhaps tempered by, The TDD That Works for Me - Yegor Bugayenko2
- Also intrigued by Property-Based Testing
- Why UX is not only the Responsibility of the UX-er - Janne Jul Jensen
- Why I've Come to Prefer Fluent APIs Over Other Kinds of DSLs - John Slaby
- You should question everything (even this statement, even this list)
- The "obvious", brute-force approach to solving problems stops working for any reasonably-sized codebase
The idea that there is a genuine concept of Object Oriented Programming out there somewhere - which most of us have missed - is intriguing and sometimes infuriating. Enjoy!
- Seven Virtues of a Good Object - Yegor Bugayenko
- A Taste of Trygve - James Coplien
- OOP: You’re Doing It Completely Wrong (Stir Trek Edition) - Kevin Berridge
- Agile Architecture - Allen Holub (Part 15)
- The Problem with Time & Timezones - Tom Scott
- Working with Time is Easy - Jon Skeet
- Internationalis(z)ing Code - Tom Scott
80% of the content of these videos seems like a complete waste of time. The 20% is thoroughly intriguing...
- Dan North thing?
- Herb Sutter?
- (What happened to this list?)
- Politics and the English Language - George Orwell
- Declarative Thinking, Declarative Practice - Kevlin Henney
- Becoming a Software Testing Expert - James Marcus Bach
- It Is Possible to Do Object-Oriented Programming in Java - Kevlin Henney
- The Most Important Design Guideline - Scott Meyers
- Introduction to Software Architecture - George Fairbanks
- Growing a Language - Guy Steele
- Clojure: Programming with Hand Tools - Tim Ewald
- Hints for Computer System Design - Butler W. Lampson
- Statecharts: A Visual Formalism for Complex Systems - David Harel (archive)
- Go To Statement Considered Harmful - Edsger Dijkstra
- The Mythical Man-Month - Fred Brooks
- Chicken Chicken Chicken: Chicken Chicken - Doug Zongker
- Out of the Tar Pit - Ben Moseley & Peter Marks
- A Design Methodology for Reliable Software Systems - B.H. Liskov
- Reflections on Trusting Trust - Ken Thompson
- No Silver Bullet - Fred Brooks
- On the Criteria To Be Used in Decomposing Systems into Modules - D.L. Parnas
- An Introduction to Software Architecture - David Garlan and Mary Shaw
- Big Ball of Mud - Brian Foote and Joseph Yoder
- Architectural Styles and the Design of Network-based Software Architectures - Roy Thomas Fielding
- The UNIX TimeSharing System - Dennis M. Ritchie and Ken Thompson
- The Architecture of Complexity - Herbert A. Simon
- A Mathematical Theory of Communication - C. E. Shannon
- Managing the Development of Large Software Systems - Dr. Winston W. Royce
- The Original MVC Reports - Trygve Reenskaug
- The Rise of Worse is Better - Richard P. Gabriel
- Working With Objects — In Computer and Mind - Trygve & Cope
- Meta:
- Null References: The Billion Dollar Mistake - Tony Hoare
- The Mother of All Demos - Douglas Engelbart (archive) (tl;dw)
1 I'm reminded that while Bret Victor's talk is from the past (in more ways than one) there is also this talk which, at the time of writing, is still from the future. ↩
2 But with this caveat. ↩
3 https://twitter.com/munificentbob/status/675769424410902528. ↩
4 The only thing I dislike about Kevlin (and dislike is too strong a word, even here) is his occasional cheap-shots on political matters. Everything else is sheer class. ↩
5 Anyone who bothers to watch this, and hears about Daniel Kahneman's facinating book, should also read this noble6 comment. ↩
6 Although, it's a shame (and somewhat a sign of the times) that someone admitting that they got something wrong should be considered "noble". ↩