Programming in Five Easy Pieces
danielbmarkham.com
danielbmarkham.com
I contend that the majority of complex software systems are not transformative processes that can be so easily modeled. This majority is not problems in the computer or data sciences, or those of computing infrastructure or services.
Modeling for example, a complex payroll system or large airline reservation system, cannot be effectively represented that way. Enterprises tried doing so for a decade of “structured analysis” i.e. a dataflow approach. Were no lessons learned from that?
The computer doesn't process reality, but it can keep you honest about what terms you use in your language and how those terms relate to one another. God, I hope we've learned something from all of those disasters.
You don't change the computer to solve your problem. The computer changes your understanding of what the problem is.
There's an essay by Peter Naur (the N in BNF) called Programming As Theory Building that I think captures the author's point: http://pages.cs.wisc.edu/~remzi/Naur.pdf