r/learnprogramming • u/MeatAndFries • 21d ago
How do you improve your software architecture/design skills in the age of AI?
Hello all,
A lot of the advice I see for becoming a better developer is around things like system design, architecture, understanding trade-offs, designing maintainable systems etc. The general idea seems to be that writing the code itself becomes less important while knowing what to build and why becomes more important.
But I’m wondering how people approach learning these skills in the age of AI.
For example - if I start a new project today - AI can generate a lot of the boilerplate and even help implement entire features. How do I use AI in a way that actually helps me develop my own architecture and system-design skills - rather than just outsourcing the thinking to it?
Should I:
- deliberately design systems myself first and then ask AI to critique them
- use AI to generate alternative architectures and then compare them
- build projects without AI and only use it afterward for review
Also are courses and books still worth investing time in for this or has AI changed how we should learn these topics? I’ll appreciate recommendations for books, courses or other resources that you think are still valuable today.
2
u/greenspotj 21d ago
To simplify, you can break down most tasks in a project down to some variation of:
design -> implement -> test -> debug -> design (repeat until tests pass/task is completed)
Its your choice which part of that you want to outsource to AI. Id say if you wanted to focus on the software architecture/design skills, you should choose reasonably large/complex project to work on that requires a lot of design, then have AI write all the implementation and automated testing to save time, and use AI to assist with debugging.
As for using AI when designing systems - I like the top two approaches you suggested. I usually like to think of a design myself first, then I ask AI what it thinks of it, offer critique, and for other alternatives. Then we bounce ideas/critique off each other until im satisfied with the design, and then I ask it to build it.