We all depend on systems others built. Determining when that trade-off is worthwhile and recognizing when convenience turns into dependence are crucial.
We all depend on systems others built. Determining when that trade-off is worthwhile and recognizing when convenience turns into dependence are crucial.
I do a similar loop with my use of AI - I will upload code to Gemini 2.5 Pro, talk through options and assumptions, and maybe get it to write some or all of the next step, or to try out different approaches to a refactor. Integrating any code back into the original source is never copy-and-paste, and that's where the learning is. For example, I added Dexie (a library/wrapper for accessing IndexedDB) to a browser extension project the other day, and the AI helped me get started with a minimal amount of initial knowledge, yet I learned a lot about Dexie and have been able to expand upon the code myself since. If I were on my own, I would probably have barrelled ahead and just used IndexedDB directly, resulting in a lot more boilerplate code and time spent doing busywork. It's this sort of friction reduction that I find most liberating about AI. Trying out a new library isn't a multi-hour slog; instead, you can sample it and possibly reject it as unsuitable almost immediately without having to waste a lot of time on R&D. In my case, I didn't learn 'raw' IndexedDB, but instead I got the job done with a library offering a more suitable level of abstraction, and saved hours in the process.
This isn't lazy or giving up the opportunity to learn, it's simply optimising your time.
The "not invented here" syndrome is something I kindly suggest you examine, as you may find you are actually limiting your own innovation by rejecting everything that you can't do yourself.
Recently I used an LLM to help me build a small application in Rust, having never used it before (though I had a few years of high performance C++ experience).
The LLM wrote most of the code, but it was no more than ~100 lines at a time, then I’d tweak, insert, commit, plan the next feature. I hand-wrote very little, but I was extremely involved in the design and layout of the app.
Without question, I learned a lot about Rust. I used tokio’s async runtime, their mpsc channels, and streams to make a high performance crawler that worked really well for my use case.
If I needed to write Rust without an LLM now, I believe I could do it - though it would be slower and harder.
There’s definitely a “turn my brain off and LLM for me” way to use these tools, but it is reductive to state that ALL usage of such tools is like this.
I think AI is leading to a different problem. The "nothing invented here" syndrome
Using LLMs is not the same as offloading the understanding of some code to external library maintainers.
It is offloading the understanding of your own code, the code you are supposed to be the steward of, to the LLM
Gatekeeping at it's finest, you're not a "true" software engineer if you're not editing the kernel on your own, locked in in a cubicle, with no external help.
All the criticisms you level at people coding with LLMs apply just as much to your artisanal hand-sculpted code that you’re so proud of.
You can get a computer from other person, install linux and you can start to code. We can get documentation from internet freely. What we are doing right now is giving up this ability by relying on a very centralized service.
This is going to bite us. New programmers are not going to really learn anything, but how to ask a LLM. And when (not if) the companies in charge of the LLMs decide to raise the price, everyone will pay.
New programmers are not going to ask new questions in forums, because they will work it out the answers with their LLM, and those sessions will be used by the owners to improve the LLM. We are centralizing knowledge and abilities.
And let's not forget the huge energy bill all this LLM dancing is having. People is spending gigawatts of energy asking over and over and over the same questions to an LLM. This is incredibly wasteful.
But yeah, this is all about my "artisanal hand-sculpted code that you’re so proud of". Hopefully you didn't use a LLM to write that line. It would have been a waste.
The idea that people using LLMs "won't learning anything" is just silly though. They're one of the best learning tools that humans have ever produced. You can use them to avoid learning, or you can use them to learn 10x faster.
Feel free to dismiss LLMs and write all your code by hand. It's up to you, and I'll even grant you there are some benefits, despite the significantly reduced productivity. But please don't act like doing so makes you a better progammer than others. That's the definition of gatekeeping. And again, we've been through all of this before with high level languages. It happens every time a new innovation makes programming more accessible and higher leverage.
Also, what I said is that people using LLMs to write code in programming languages they don't know won't learn to program such languages. Because, as hopefully everyone knows, you learn to program by writing code, not by reading it.
So, you will be a better programmer if you put the effort and properly learn to code in the language, instead of lazily use the LLM clutches. And that's not gatekeeping, that's a fact.
Once you really learn the language, go for it, use the LLM. And then you'll discover the LLM is optimized to find the most average and mediocre solution, the one that takes the least amount of effort to generate. Because obviously they are optimized to be efficient for their owners.
LLMs can help someone learn a new language much faster. If you’re trying to learn anything new at this point and not using LLMs to help, you’re just needlessly slowing yourself down. But that (obviously) doesn’t mean you just ask the LLM to write code for you and commit it without understanding.
> We all depend on systems others built. Determining when that trade-off is worthwhile and recognizing when convenience turns into dependence are crucial.
I agree with this and that's exactly what OP is saying: you're now a cog in the LLM pipeline and nothing else.
If we lived in a saner world this would be purely a net positive but in our current society it simply means we'll get replaced for the cheaper alternative the second it becomes viable, making any dependence to it extremely risky.
It's not only for individuals too. What happens when our governments are now dependent on LLMs from these private corporations to function and they start the enshitification phase?
A problem solver