I read everything I can get my hands on, sometimes even things I don't understand at all. Occasionally you have to stretch yourself and look at things that don't make sense. Part of working with LLMs is understanding how the programs works, this is different than writing the code. The explanations coming from the LLM have to make sense to you, or you will get garbage or not understand what your applications is actually doing. You have to be able to look at the code and say I understand what this is doing even if you can't write it. A good example of this is if there is a product manager running a team. They have to understand what the code does even if they don't write it.
Agents still seem pretty bad at architecture. I still need to stay very much in control of how something is done, even if I have an LLM write some code here and there.
For stand-alone bits of code where I don’t really care about the implementation, I will let an agent go wild. But for production code in the legacy code base, not a chance I’m doing that.
Just because coding agents can multiply our productivity doesn't mean that we should reduce ourselves to shoddy engineering, on the contrary.
In fact, I see this as an opportunity to build anew and better. When you're no longer constrained by legacy baggage and constraints, you can collapse layers and introduce new ones that better fit what you're creating.
I'm doing that in the project I'm working on at work. Being able to redefine how serialization/deserialization fundamentally works and interacts with domain objects is giving us unbelievable expressiveness, not by the amount of code written (in fact, it's heavily factorized across layers that were historically separate), but by exploring new designs paradigms.
I read everything I can get my hands on, sometimes even things I don't understand at all. Occasionally you have to stretch yourself and look at things that don't make sense. Part of working with LLMs is understanding how the programs works, this is different than writing the code. The explanations coming from the LLM have to make sense to you, or you will get garbage or not understand what your applications is actually doing. You have to be able to look at the code and say I understand what this is doing even if you can't write it. A good example of this is if there is a product manager running a team. They have to understand what the code does even if they don't write it.
Agents still seem pretty bad at architecture. I still need to stay very much in control of how something is done, even if I have an LLM write some code here and there.
For stand-alone bits of code where I don’t really care about the implementation, I will let an agent go wild. But for production code in the legacy code base, not a chance I’m doing that.
Just because coding agents can multiply our productivity doesn't mean that we should reduce ourselves to shoddy engineering, on the contrary.
In fact, I see this as an opportunity to build anew and better. When you're no longer constrained by legacy baggage and constraints, you can collapse layers and introduce new ones that better fit what you're creating.
I'm doing that in the project I'm working on at work. Being able to redefine how serialization/deserialization fundamentally works and interacts with domain objects is giving us unbelievable expressiveness, not by the amount of code written (in fact, it's heavily factorized across layers that were historically separate), but by exploring new designs paradigms.
Don't just read these books. Write some new ones.
The only architecture advice you need is write short code and create few files. Now you know why LLMs mostly create mountains of trash.