It does feel a bit like building on quicksand, but coding has always been that way for me. Well, less so with embedded than webdev, but still.
It does feel a bit like building on quicksand, but coding has always been that way for me. Well, less so with embedded than webdev, but still.
Pardon my lack of creativity but I'm not even sure what mastery with the new tools (LLMs) would look like. When you are so abstracted from the details and don't have to know anything, what _is_ mastery? (I am not asking rhetorically and if people have overcome this thought I would be interested in hearing from them.)
Knowing how to ask a machine questions in the right way? Playing as a manager in control of non-human developers? It all sounds really silly and something that is difficult to aspire to (and I can't imagine explaining my job to others with a straight face). I think I find it even more egregious because it's all built on paying rent to the LLM operators.
It's not that I don't enjoy results in their own right sometimes but I think I am definitely in the 'this is giving me an identity crisis' camp.
Knowing how an LLM is built, is trained, inferences, isn't "mastery" in the sense that crafts people use the word.
Mastery to a craftsmen is as much a product of mechanical performance as it is knowledge. For a software craftsmen, that means knowing how to code, debug, and architect a software application by hand.
I mean, yes I do find the mathematical background of LLMs fascinating, but it's not going to be something that I can put to practical use (much), if that makes sense?
I think one thing that troubles me is that I so far have gotten quite far by 'caring about the little things'.
Now we live in a world where this feels, for the most part, unsustainable to keep up with. When directing LLMs to code something up, it's still occasional useful to have the knowledge and experience of those little things earned over years, but at the same time 1) it seems like I run into fewer opportunities to add to that experience and 2) it seems like you can often just prompt LLMs to 'grill' a design a few times, it will probably surface some of the most important tradeoffs
They can build things, but it's all terrible really. Their "ideas" are terrible.
I feel caught between two worlds, I know people both very 'for' and very 'against'. The business is very keen for people to use them to go faster.
For non-trivial changes, output so far does not meet my quality standard and I tend to spend a lot of time cleaning up after them, probably more than I would have spent doing the work myself. This being much more boring, I hasten to add.
Their comments suck so I feel like I have to go in and rewrite them all.
Maybe I should just let go of the quality standard and accept that in exchange for steaming ahead at full speed, but I'm reluctant (and not just for me, there are also coworkers who I feel like I would be letting down).
You say that you liked learning how things worked inside out, whether it was Postgres or whatever. You can still do that. You can learn it at a high level, and then it becomes like a magic word in your arsenal. You don't have to know or remember the details of implementation, but only the nature of its costs, benefits, and synergies with other systems. You just have to remember that high-level abstraction, maybe just a single vocabulary word, of a low-level reality - the exact syntax is really no longer a concern.
The better the agents get, the less there is playing manager. Really your job now is to have and execute vision. Execution is largely a function of having a map of the high level vision and low-level realities in your head, or just having in-the-moment intuition about these things... then just speaking it.
Also, there is developing personal libraries. You may find that in your business you repeatedly tackle similar problems. You develop and refine a library that your future agents can utilize. You develop prompts that make your work more automatic and more robust. And when I say you, I mean, you direct your agents to do it.
It's not so different from what it always was, except that years get compressed into months. What was slow and tedious is now... less so.
I don't know how much advantage I have in this new world, having programmed (sometimes more, sometimes less) for 30 years. My brother has never written a line of code in his life. He's been heavy into AI for a while, and he has developed some really incredible stuff. I think he may have already outpaced me. His $1500/mo+ in subscriptions definitely help.
that's a good analogy and puts into words the way i've always felt about software development. Every so often the entire industry rolls over into something new. I've been here 30 years now and, in my experience, the skill that counts is being able learn new skills. To go back to the analogy, to build something new on top of what you've built in the past before everything is swallowed by the quicksand.