Last updated on 2020-08-25
About the Book
Programming is applied philosophy. That makes programmers both masters of the universe and slaves to nature.
"This book is about thinking and programming. It’s not about thinking. It’s not about programming. There are plenty of books that promise deep thinking and fill your head with fluff. There are plenty of books that promise to Learn you some Java in 21 days and leave you with — 21 days worth of Java. This is not one of those books.
I’m turned on by learning cool stuff, and by coding cool stuff. Maybe you are too. I’ve been fortunate enough to be able to spend decades coding cool stuff. And when I wasn’t doing that, I was teaching people how to code cool stuff. And when I wasn’t doing that, I was helping teams and startups to work together to code cool stuff and enjoy themselves doing it. And I’ve enjoyed every bit of it.
There’s a fuck-ton of great authors out there who know a whole lot more than I do. They’ll tell you how to think, how to cultivate the proper mindset to maximize your chances to achieve success. They’ll tell you the right way to write code, good code, smart code, code that will impress all the cool kids. These guys are a lot smarter than I am and they have a lot of great ideas. You should read them.
There’s only one reason why you should read this book, and that’s because you’re a certain kind of person. The kind of person who thinks, after reading about those other guys, yeah, that’s great, but…"
For more, follow along on my live feed on locals.com: https://danielbmarkham.locals.com/
Dyads and Triads: The Gap Between Logic and Language
1. From Logic To Language
- What’s In A Name?
- In The Beginning: Dyads
- Life Arrives: Organisms Add A New Level Of Complexity To Dyads
- Life Changes Things
- Evolution Makes Things Even More Complicated
- Dyads Get Abstract
- Signs Evolve: Internal Abstraction Layer + Language = Signs
- So What?
2. Naming Things: Logic’s Problem With Language
- Birth Of Language
- Language Demands Triads
- Helen Keller And Triads
- Children Know Something Animals Don’t
- Why That Last Coder Couldn’t Name Anything Right
3. From Language To Logic
4. Language’s Problem With Logic
- For Such A Failure, Somehow It All Works Anyway
- What Up?
- Translating Wittgenstein Into Peirce
- Everyday, Practical Analysis
- Programming Is Applied Philosophy
- The Dance
- 1. From Logic To Language
Building Better Structures
5. Architectures And Failsafe Programming
- Types Of Coding Errors
- Languages And Architectures To The Rescue
- OOP, There It Is
- The Failure Of Domain Models And Moving On To Strategy #117
- N-Tier Architectures
- Where We Went Wrong
- But What About The Errors?
6. Good Enough Programming: Knowing When To Say When
- Why Are You Coding?
- Where’s The Coupling?
7. Software Architecture, Star Wars, Mob Programming, and What’s Wrong With Post-Modernism
- Three companies, six teams, same exact problem
- Who’s Right and Who’s Wrong?
- How books work
- Where Post-Modernism Went Wrong (For Some People)
- What We Technologists Know That They Don’t
- Mob Programming
- Post-Post Modernism, Language As Tool-Making
8. Code Budgets: Budgeting Our Code Like We Do Everything Else
- How Much For A Line Of Code?
- So why aren’t we budgeting our code?
- Less Means More
9. Measure The Quality Of Your Work With Code Cognitive Load (CCL)
- Computing Code Cognitive Load (CCL) using F#
- Using .NET Code To Inspect Itself
- Outside-In Coding
- Taking a look At Our First Method With CCL
- Making It More Complicated
- What About Exceptions?
- Knowing When To Say When
- Dynamic Tension
10. Better Functional Programming Through Incremental Strong Typing
- Last Responsible Moment Isn’t Responsible
- The Unix Philosophy
- Functional Programming Architectural Patterns
- Daniel’s Rules For Functional Coding
- F# Incremental Strong Typing: Coding Walkthrough
- Delivering Chunk 1, The First Four Items
- Delivering Chunk 2, The Next Five Items
- Delivering Chunk 3: Next Four Items
- Delivering Chunk 4: Final Touches
- What If We Kept Going?
- Supercompilers Are The Future
11. Example 2: One-Page Chess
- That is Never That
- User Feedback
12. Example 3: AirBlog
- First Things First: Manage Your Coupling
- Minimum Increment 1: Journal and Print
- Minimal Increment 2: Show Me Something. Anything.
- Minimal Increment 3: Move Any Kind Of Data From Front-to-Back
- Minimal Increment 4: Components
- AirBlog Recap
13. Marines, Cynefin, Microservices, and All Domain Warfare
- The Future Of The Marines
- Minimum Viable Unit
- All Domain Warfare Of 2040
- Analysis Acceptance Criteria
- Structures, Information, War And The Game Of Life
- Analysis Commonalities
- Winning The Game, Microservices And Warfare
14. Test-Driven Infrastructure
- Our Story Up Until Now In Ten Steps
- Yin and Yang of ATDD/TDD vs TDI
- Measuring Friction
- People To Tests
- Qualities Of A Good Infrastructure
- Blue Green Deployment
- Infrastructure Fuzzing
- Zero Trust Infrastructures
- Incremental Test-Driven Infrastructure Development
- 15. The Platform Is The Enemy
16. We’ve Been Developing Software Backwards
- Back To Square One
- Welcome To The Future
- Bringing it Together
- Inside-Out And Backwards
- Maturing Microservices
- Our Baby App
- Supercompiler Stage 1
- CSP et al
- Supercompilers Defined
- Supercompiler Stage 2
- Beat Me, Punch Me, Make Me Write Transactions
- 5. Architectures And Failsafe Programming
Evolving Humans And Machines Together
- 18. Technology Is Heroin
19. We Gotta Talk About Ethics
- Please, no more politics!
- Ground Rules
- Levels of Ethical Concern in Human-Machine Interaction
20. Data For Language Confusion
- We Start With Fallacies
- Rhetorical Devices/Figures Of Speech
- Welcome To The Play Of Life
- Fact Systems Are Inevitably Persuasion Systems
- The Two Language Types
- A Surprising Metaphorical Answer
- Interface As Assault
21. Is There A Robot God?
- Everything Is About Nothing
- The Unknown
- The Great Unknown
22. How Can AI Learn Alongside Humans?
- Marx and Popper
- Popper’s Proposition
- How Do We Measure Scientific Tools?
- How Do We Measure Intelligence?
- Measuring AGI
- AGI/AI Conclusions: Getting From Where We Are Today To True AGI
23. That Ain’t AI
- N-Grams and Markov Chains
- Turing Test Versus Eliza
- Fake It Till You Make It
- Example Experimental Protocols
- The Problem
24. Don’t Be A Full-Stack Developer, Be A Full-Stack Human
- From Star Trek to Teenaged Video Games of Death
- Becoming successful by becoming an expert
- They were right
25. Synecdoche in programming and organization roles, just not in New York
- Symbols needing resolution to understand the function
- Types of interaction required
- Now For The Synecdoche Part
- 26. Learning To Learn
- 27. Learning Using Reverse TDD
28. Cache Invalidation
- Irreplaceable Benefits Of Object-Oriented Thinking
- Where To Go From Here?
- Learning To Forget
- Self-Improvement Is A Con Game
- Things We Thought Were True But Were Bullshit
- Ways To Cleanse Your Mental Palette
- Appendix A: Types
Appendix B: Logical Fallacies
- Formal Fallacies
- Propositional Fallacies
- Quantification Fallacies
- Formal Syllogistic Fallacies
- Informal Fallacies
- Improper Premise Fallacies
- Faulty Generalization Fallacies
- Questionable Cause Fallacies
- Relevance Fallacies
- Red Herring Fallacies
Appendix C: 100 Most Common Words
- Top 100 Adjectives
- Top 100 Nouns
- Appendix D: Curry-Howard Isomorphism
- About The Author
The Leanpub 45-day 100% Happiness Guarantee
Within 45 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.
See full terms
Free Updates. DRM Free.
If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).
Most Leanpub books are available in PDF (for computers), EPUB (for phones and tablets) and MOBI (for Kindle). The formats that a book includes are shown at the top right corner of this page.
Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.