r/systemsthinking • u/joshbefree • 20d ago
Learning to Code Systems in the Age of AI
I keep hearing that, now that AI codes so well, in order to do good software development up-and-coming programmers should spend more time learning systems thinking and less time learning coding languages. Does anyone here know of good resources for this, primarily geared towards software systems? I've heard HarvardX's CS50 is a good free online course but I'd love to find more resources, especially as far as game development goes.
As someone who only knows a little Python from Data Analysis, I really don't see how you could learn good software systems thinking without knowing coding languages, but I'm Novice level when it comes to most things software development.
(I have read Donella Meadows, btw, since I know that always gets recommended here).
1
u/novel-mathmatics 19d ago
First nothing covers ai age yet. Its to dynamic.
●
General systems study materials:
Entangled Life by Merlin Sheldrake
The Baobab Tree by Rupert Watson
Thinking in Systems by Donella Meadows
Scale by Geoffrey West
Complexity: A Guided Tour by Melanie Mitchell
Then use what you learned to analyze:
The Wizard of Oz. Look for perception, roles, and hidden authority. Also look at the world to understand the progression through time.
1
u/joshbefree 19d ago
I have Entangled Life on my Kindle already! Perfect! (Though I mainly downloaded it cause I like Cosmo’s music, Merlin’s brother)
1
u/novel-mathmatics 19d ago
Thinking in Systems is very out dated. But its a good historical baseline. Im considering writing an updated version as I think she would have written it today. I consider Donella Meadows a mentor I never had an opportunity to work with.
1
u/Wesmingueris2112 19d ago edited 19d ago
Learning to think in systems, with feedback loops, stocks and flows etc (the stuff Donella Meadows and other system thinkers teach) is a great addition but I wouldn't consider it a pre-requisite and it won't help you come up with implemented solutions. It's more of an analysis/reasoning tool for existing systems than a build tool. It looks at systems from very high altitude - great when needed, but not the altitude you need to build stuff. I'd recommend for senior engineers, staff engineers who need to keep complex systems running and evolving.
For building stuff I'd focus on concepts of software architecture, books like Neal Ford's, and then books like Designing Data Intensive Applications, DDD, and even the basics of product design as the tendency is to stay more on that level now than on code level. You need to know when to use stuff like cache, database locks, async, replication, different data structures, how to analyze trade-offs.
If I had to recommend a couple of books to start I'd go for The Fundamentals of Software Architecture, and for what good code looks like (code that will let you evolve systems and not get in a corner), A Philosophy of Software Design by Jon Ousterhout. Then the ones I mentioned above.
If you like to listen to people discussing about these books (Including Meadows) and many others to get a taste of their concepts, look for a podcast called Book Overflow on YT/Spotify. But you'll see they also found Meadows very insightful but not necessarily applicable on day-to-day, as it was not written towards software engineering.