3 ms·
Since GPT 5.2, AI has been writing code much better than I can. In 5.6, it beat Tourlist in competitive coding. After seeing that, I only practice about an hour
by jdw64 3mo ago
Since GPT 5.2, AI has been writing code much better than I can. In 5.6, it beat Tourlist in competitive coding. After seeing that, I only practice about an hour a day just to keep the feel of coding.
Honestly, rather than pointless debates about whether human coding is bad or AI coding is bad, I just think it's good to build tools that help me understand the world. I don't really care whether it's hand-coded or bad code.
Because most of my career has been spent as an on-site programmer. Staying at factories, visiting public institutions, deploying services for financial companies. My career is short, but I was lucky enough to work in various places.
When AI first came out, I thought I still wrote better code. But after the GPT 5 series, I've completely switched to AI and I'm now thinking about how to avoid errors and maintain larger codebases.
In the world I work in, it's common to see functions with 10,000 lines. Many people don't consider coupling or cohesion. So these days, instead of focusing on programming syntax, I'm studying programming theory and thinking about how to handle code when it becomes massive and turns into a black box through vibe coding. And I think this approach is right, because I believe I need to get used to using AI, so I keep coding with it.
But due to my cognitive limits, I've restricted myself to C# and TypeScript, which I'm comfortable with. C++ has too much to memorize and is hard to keep up with. In my region, there are very few C++ jobs, and those that exist are either extremely high-paying or garbage-tier jobs. There's nothing in between. So I stick with C# and TypeScript.
In practice, when building large programs, I often just set external configuration values I don't fully understand and code based on heuristics. I don't know the internals of Kafka, RabbitMQ, or PostgreSQL. I just know how to use them. And yet they work fine.
I feel the same way about AI code. Even if AI code is messy, if it runs, I use it. When bugs appear or performance is off, I just plug in debuggers or print statements and fix the necessary parts, like working with legacy code. Programming is so complex that if you try to understand everything, you can only design very small parts. Do the people who wrote Linux understand the entire codebase? They trust people they can rely on.
I've also reached an internal agreement to trust AI code. To support that, I'm spending time on creating rules for how to get good code from AI. Things like adding gates or CI, and seeing if that improves the code.
The problem is, I know this means no one will want to use other people's work or collaborate. The middle layer will disappear. There will be only highly admired projects or personal projects. In the past, even mid-sized projects had humans helping each other. But now mid-sized projects barely need human help. So I think projects will become increasingly polarized and become a zero-sum game.
Brooks divided complexity into two types in The Mythical Man-Month: Essential Complexity and Accidental Complexity. Personally, I think AI has greatly reduced Accidental Complexity. However, the essential difficulty, the problem of modeling, still needs to be done by humans. Because AI has no physical embodiment, it's inherently hard for it to understand domains the way humans do. Learning about something is different from experiencing it.
So I've decided to believe that vibe coding is also a valid approach. Supporters talk about compilers being deterministic, but LLMs are not deterministic. Critics say AI only produces garbage code, but I've seen that with high-quality prompts, the output becomes much better. Math PhDs say AI is good at things like theorem proving, and most of coding is similar to theorem proving.
It's not about good or bad. I've decided to believe it's just another approach. Yes, this is just a religion. My religion.
No matter how much people say vibe coding is bad, those who use it well do use it well. And there's no reason to criticize those who don't use it. I've just decided to treat this programming approach as a religion. Arguing about what's right or wrong is pointless anyway. Everyone has different values based on their environment, and convincing others is a waste of time.
People in open source communities might feel like AI code is destroying their communities. The code they used to communicate with, and the time they spent on it.
But for someone like me, who's been in delivery and on-site work, it feels like an escape hatch. It freed me from the hell of dealing with difficult people. So I've decided to rationalize it to myself: AI coding is just one way of doing things
I just think new methodologies will emerge. Instead of dividing code by functions or methods, people will think about how to divide things at a larger scale.
I'm just living to adapt to this era. I have nothing to lose anyway. I'm just waiting for the new era.
- archonis 3mo agoIndeed. This is an awkward era where we're using these artificial language tools to target abstractions made for humans to manually write. At some point the path from human language to machine code is not going to require an interstitial step writing to higher level languages as we know them.
- slopinthebag 3mo agoFor a lot of people, LLM's are actually doing a better job than what they are capable of. I do worry that they are the people first up for replacement, since they don't really provide much value that the LLM itself can't provide. There isn't much point in paying a human to prompt an LLM if you could do it yourself, the value is in someone with the skill and judgement to both prompt it correctly and validate the output - and if the LLM is producing better code than the human is capable of they clearly don't have any of that. Personally I really like using LLMs because they have made certain things a lot more productive, but I don't feel like my job has really changed at all. I have a new way of generating code, but my value has never been my (abysmal) typing speed or knowledge of algorithms or how fast I can centre a div. It's been in the stuff that LLMs still haven't pierced, and probably never will.
- jdw64 3mo agoI see that point differently. Typing code and using AI well are distinctly different things. I've dealt with Chinese subcontracting managers before. But managing people is different from doing code reviews and writing code. I think these two are fundamentally similar but different. Of course, it's undeniable that you need a certain level of skill to verify the output, which is why I practice typing for an hour every day. But that aside, while it's true that good coders may have a head start in using AI well, I don't think they're essentially the same thing. The reason I say this is simple: AI has already learned more than I have in many areas. Good code often involves a lot of error handling. But humans can't cover all of those edge cases. Even something like UAF (Use-After-Free) can happen depending on timing, and pointers may not release properly. But AI catches these things surprisingly well. So I think this way: on average, it may be true that people with higher coding skills use AI better, but I think it's hard to say that means they're better at using AI. People who are good at using AI are usually those who break functions down into more readable pieces and set boundaries better, rather than those who are good at LeetCode-style problems. That's similar to being a good coder, but it's a slightly different skill set. I respect your opinion, but I think an additional layer will emerge.