4 ms·
> If the job were mainly about producing syntactically valid code, then of course A.I. would be on a direct path to replacing large parts of the profession. But
by nunez 6mo ago
> If the job were mainly about producing syntactically valid code, then of course A.I. would be on a direct path to replacing large parts of the profession. But that was never the highest-value part of the work. The value was always in judgment.
> The valuable engineer is the one who sees the hidden constraint before it causes an outage. The one who notices that the team is solving the wrong problem. The one who reduces a vague debate into crisp tradeoffs. The one who identifies the missing abstraction. The one who can debug reality, not just read code. The one who can create clarity where everyone else sees noise
How do you think engineers in the second half got there? By writing tons and tons of code to "build those reps" and gain that experience.
The author tries to answer this:
> That process is not optional. It is how engineers acquire and elevate their competency. If early-career engineers use A.I. to remove all struggle from the learning loop, they are hurting their development.
but in a world wherein writing code by hand (the "struggle") is "artisinal" and "outdated", this process being non-optional (which I agree with) is contradictory.
How juniors and fresh grads do that with AI that is designed to give you whatever answer you need in a given moment is unclear to me. I don't see how that's possible, but maybe I'm thinking too myopically.
- chii 6mo ago> I don't see how that's possible, but maybe I'm thinking too myopically. you are thinking too myopically. We have people who can still do maths well after the introduction of the calculator. We have people who can still spell after the introduction of spell check. The junior only need to train without using AI to gain the skills needed - that's called education. If they choose to rely on AI solely, and gimp their own education, that's on them.
- krilcebre 6mo agoYes but currently I don't know of a single company in my area that doesn't make you use AI daily because of the supposedly increased productivity. That means that juniors also absolutely have to use AI, probably sabotaging their learning process in the long run.
- deafpolygon 6mo ago> We have people who can still do maths well after the introduction of the calculator. Arithmetics is a very, very small subset of math.
- fainpul 6mo ago> We have people who can still do maths well after the introduction of the calculator. I assume by "do maths" you mean doing simple calculations, like adding a bunch of small numbers, in one's head. That's because in many situations it's more convenient to do so, than using a calculator. So the skill is preserved / practiced, because a calculator is too cumbersome to use. The skills of most people settle at the equilibrium where it takes the same effort to take out the calculator and focus on typing, as it would to strain the brain doing it without a calculator. > We have people who can still spell after the introduction of spell check. When using spell check to fix your document, you automatically learn to spell. Your skills improve by using the tool. A better analogy to AI would be an email client with a "Fix all and send"-button, where you never look at the output of the spell checker.
- rimliu 6mo agoNo. These tools are very good at creating illusion of learning, without any learning. When you watch them do stuff, you think, yeah I got this. Once they are gone, you realize all your supposed skill is gone too. Getting a skill requires deliberate practice. You can use AI for that, but just using AI is not that.
- californical 6mo agoWhy no? It sounds like you agree with the person you replied to
- prerok 6mo agoThere's an old Latin proverb "Scribere bis legere", which translates to "writing is reading twice". In practice, what this means is that you can read some subject many times, but you would still struggle to reproduce the content by yourself. That is why, when learning, it is not sufficient to just read the material several times.
- ekeke 6mo agoSpot on there’s an easy test. Ask said person who learned something to describe it back to you in their own words. Then watch them fumble :) The second test is - explain it in such simple terms that someone who has barely any knowledge of it can understand it.
- kusokurae 6mo agoWhy is it always so consistently a comparison to a technology of a fundamentally different order? Perhaps what has been lost is the ability to recognise distinct and incommensurable categories.
- xorcist 6mo agoThose are inappropriate examples because they are all deterministic. The whole reason behind the AI movement is the move from deterministic processes, and exact descriptions, to handwavy descriptions and stochastic processes. Of course there are people who do maths after the introduction of the calculator Just like there are more people who program after the introduction of the electronic computer.
- nunez 6mo agoWe also have people who need a tip calculator to calculate 20% of a check and people who can't spell without spell check.
- deleted 6mo ago[deleted]
- kjkjadksj 6mo agoIt is kind of embarrasing but I feel worse at arithmetic than I ever was thanks to calculator reliance. I used to be able to do all sorts of complicated division and multiplication in my head. Exponents, whatever. Now it is like I have a disability. I feel like a first grader. What is 6738 / 37? I got to reach for a calculator now but in 6th grade that would have been a moment with a scrap of paper. Not sure I can even do long division on paper anymore. I can’t be alone with this.
- YZF 6mo agoOne thing worth mentioning is that even before AI only some small subset of engineers have experienced building systems from scratch or inventing new ways of doing things or root causing complex problems or even writing a lot of code. Most software engineering is maintenance or mundane or not productive. Even in a world where there's a lot of AI generated code there can still be people that have enough exposure to doing hard things. Definitely at this point in time where AI can't really do all those hard things anyways - but even after it'll be able to.
- byzantinegene 6mo agoyou don't need to build systems from scratch to acquire problem-solving skills. even routine maintenance problems require to dig into documentation, look at github issues, and do root-cause analysis. These skills are eliminated from reliance on AI and there is no fallback if one never acquired them in the first place.
- netcan 6mo agoMyopic is inevitable, to some extent. It's very hard to project this stuff. Socrates wrote about what was being lost as philosophy was becoming written rather than oral...and he was right. We can't even understand what was lost. Many methods of learning and thinking became entirely lost. You could say they were redundant, and they were. But... writing largely replaced oral traditions. It didn't just augment them. He was that old school coder who had the skills to do philosophy and be an intellectual without writing. Writing was an augmentation for him. But for the new cohort... it was a new paradigm and old paradigm skills became absent. It is very hard to imagine skilled coders becoming skilled without need pressing that skill acquisition. The diligent student will acquire some basic "manual coding" skill... but mostly the skill development will be wherever the hard work is.
- rimliu 6mo agoI'd say that by purging stuff from the brain we are losing thinking itself. Thinking is manipulating ideas and concepts in your head, assembling and linking. The fewer things there is, the more primitive the result. You cannot juggle without object to juggle, connecting the dots result in trivial patterns when you have just a couple of dots.
- phito 6mo agoIt's true for all automation we do get more comfort. We build systems so that we humans have as little struggle as possible, not realising that struggle is the only reason for existence. By eliminating it, we are erasing ourselves from this world.
- kusokurae 6mo agoYou aren't thinking myopically; it's a fundamental contradiction the root of which is in how human brains take in and understand new information. No amount of pontification or bollocks hedging as this and all other "thinkpieces" on this issue do, will change that. It is beyond preference and perspective. There is only doing the very task that produces skills pertaining to that task. Prompting alone or even in dominant is too far from this task. They can only write the code.
- __alexs 6mo agoAlmost none of my operational knowledge came from writing code but a lot sure came from the reading code in the debugging process.
- ookblah 6mo agoyou learn by struggling and slogging through, even as a senior if your shit breaks it's on you to understand why. no LLM will shortcut that process for you (even asking LLMs why something is wrong requires you to actually understand it eventually, aka LEARNING). how that happens is up to the person. i don't understand all this fear projected as if people won't have agency of learning just because LLMs make it easier to do certain things. i don't think it's contradictory at all. half the people here will never have to wrangle the bullshit i dealt with 20 years ago and i'm sure when i was dealing with it there was another 20 years of bullshit before me lol. if you vibe code your app with no regard for the underlying code you will pay the price for it at some point in the future, anybody worth their salt will slow down enough to figure it out the "artisanal" way.
- Rebuff5007 6mo agoI'd argue that the engineers of 20 years ago were better than the engineers of today because they were significantly more resource constrained and for example, would never use a 300mb javascript library for a profile page.
- mleo 6mo agoAs a percentage of good to mediocre, maybe. Engineers of 40 years ago were probably better than engineers 20 years ago. Less of them and more constraints they had to deal with. Democratization of technology makes it easier for more people to use. It applies to programming as much as just using a computer.
- isakmarr 6mo agoDepends how you define "better". I'd argue that modern engineers are better generalists, and engineers 20-40 years ago were better specialists.
- markus_zhang 6mo agoJohn Carmack did praise restraint of resources when he recalled his early days working as a lone contractor and as an employee of Softdisk, when he and the team had to push out games on a very tight schedule. I think this extends to other parts of life, too. I still remember that I fondly played a game over and over again back in high school, when I did not have the Internet and had to borrow CDs from my friends — but when I went into the university and had access to pretty much every game freely on the Intranet, I rarely do that anymore. That’s why I always think an abundance of X may not be the best option for me. That’s why probably includes money, too.
- fehu22 6mo agoAI has not yet aligned with human thinking absolutely but some people create euphoria that it's surpassing human thinking so only after alignment and surpassing AI can think of an outside inview now it is still inside out
- afro88 6mo agoThis has happened in other industries before. Drafting for example when CAD arrived. Entry level wasn't "can draw, willing to learn" anymore, but demanded high domain understanding. So the pathway became compressed learning through study, and field exposure. Study of senior drafter "red lines": what and why they changed the initial drawing, RFI response etc. Reverse engineering good work. Failed design studies etc. SWE equivalents: PRs, code review, studying high quality codebases (guess what: LLMs are amazing at helping here), pair programming (learning why what the LLM did was wrong, how to improve it, etc), customer support, debugging prod incidents, studying post mortems etc We don't hire juniors and throw them boilerplate and tiny bugs while expecting them to learn along the way ad hoc through some pair programming and the occasional deep end. We give them specific tasks and studies that develop their domain understanding and taste, actively support and mentor them, and expect them to drive some LLMs on the side to solve simple issues that still need human eyes on it.
- AgentMatt 6mo ago> We don't hire juniors and throw them boilerplate and tiny bugs while expecting them to learn along the way ad hoc through some pair programming and the occasional deep end. Is that generally the case though? I'm about two years into my first job in the industry and that's exactly my experience, and certainly frustrating...
- yarn_ 6mo ago>We don't hire juniors and throw them boilerplate and tiny bugs while expecting them to learn along the way ad hoc Huh? This is exactly what almost everyone does
- misja111 6mo ago> How do you think engineers in the second half got there? By writing tons and tons of code to "build those reps" and gain that experience. Well this is true, but that doesn't mean that there isn't any other way to acquire this knowledge. Until now, this way of gaining deeper understanding was simply the most practical one, since you needed to write lots of code when starting out as a software engineer. But it's just as well possible to gain knowledge about useful abstractions and clean code by using AI to do the work. You'll find out after a while which codebases get you stuck and which code abstractions leverage your AI because it needs fewer tokens to read and extend your codebase.
- jmalicki 6mo ago> How do you think engineers in the second half got there? By writing tons and tons of code to "build those reps" and gain that experience. It's not by writing syntax that you get there. It's by creating software and gaining the experience of seeing it go wrong. "Good judgement comes from experience. Experience comes from bad judgement." AI just shortens the cycle without needing to type out syntax, so you get even more iterations, faster, and learn the lessons more quickly. Some do not learn from that experience. They were never going to learn without AI either.
- classified 6mo agoYou can lead a horse to water, but you can't make it drink.
- doginasuit 6mo ago> It's not by writing syntax that you get there. Writing syntax is still an important part of the experience. It is valuable because it requires you to spend time immersed in the nuts and bolts that hold software together. I'd compare it to cooking, if you have an assistant or a machine do everything and you never actually touch a knife or stir a pot, you'll lose your touch. But there is also something valuable about covering more ground and the additional experience that brings.
- jmalicki 6mo agoTotally! I mean, the same could be said of painstakingly hand coding assembly language - that today's developers haven't done so is what leads us to bloated electron apps, so there is something lost! But the larger scale system design is stronger than ever. Today, distributed systems, version control, including branching, stacked PRs etc., VMs/containers, idempotency, multimaster ACID databases, all of these things were probably never achievable in the world when the best devs had to spend their time poring over assembly language every day. Losing that skill allowed them more time to build other ones!
- nunez 6mo agoWhy are you focusing on syntax so much? There's more to that when writing code. That's why students learn how to write pseudo-code before picking up a programming language. Learning how to think through implementing a solution to a problem is extremely important. It's exactly this experience that helps engineers grow their scope and understand bigger, more complex system. There's also the tactical components of using programming languages. The only way to know when to use one type of data structure over another, or to debug tricky language-specific behavior is _to actually have used that language._ And it's exactly this knowledge that's being threatened by LLMs given how they are implemented today.
- deleted 6mo ago[deleted]
- tarsinge 6mo agoI dont understand why software engineers insist on keeping the craftsmanship aspect of writing code. Compare to other engineering disciplines, like civil engineering. Engineering was never about going in the field yourself to build things with your own hands. You can become a great civil engineer without building bridges that fail yourself. To me it doesn’t matter that the thing I design is built with a crane or AI. I can design quality control processes too to ensure the thing is built up to standard, I don’t have to build the thing myself to be sure. There is nothing wrong with artisanal code crafting, I appreciate this too, but professionally that’s not engineering. It seems AI is just forcing us to clear the confusion the hard way.
- madibo3156 6mo agoYes, let's build a bridge with AI
- jvanderbot 6mo agoI think the analogy (and it is not to be taken literally) is that of "commoditized processes". Nowadays we don't build bridges to suit the site, we choose sites to accommodate bridges that we basically build identically via a few designs. Connecting back to s/w AI can do the standard stuff ok as long as you test around the outside of it, so you might want to hone your judgment about how you build systems so it uses the stuff AI can do well, vs "building for the site". The gains are productivity. The losses are efficiency (the problem must go through some extra steps to meet the process where it works). Same as any engineering problem at scale.
- xorcist 6mo agoSoftware is blueprint. Can you really become a decent civil engineer if you never created a buleprint for anything? Will large scale construction projects ever be started with AI made blueprints? There's probably more to the whole engineering discipline, soft- and hardware, than you give it credit for here.
- dragochat 6mo agobc software engineering learning is 99% BOTTOM-UP... and that's bc SE education FAILED BADLY... almost nothing of what's useful is thought in schools and nothing of what's thought is useful instead of FIXING education and theory, software engineering marched on forcefully without it now we need to go back and properly fix education, because an intern should absolutely be required to have the "advanced" skills that we imagine in our deluded minds that only "10+ ys of industry experience" should confer, and that are absolutely required to be even a junior AI-augmented SE SE/CS education should be rethought from scratch to distill, purify, and teach in 3ys max the concepts that used to be acquired through 10-30ys of experience - it 100% CAN be done, and we should wake tf up and DO IT instead of complaining about it - "advanced enterprise systems" architecture require nothing more than mid-highschool math and can be thought on symulated systems in sem 1 of year 1, it's just some of the "teachers" would have to actually put in the 80hrs-weeks of work to do it in due time
- palmotea 6mo ago> but in a world wherein writing code by hand (the "struggle") is "artisinal" and "outdated", this process being non-optional (which I agree with) is contradictory. > How juniors and fresh grads do that with AI that is designed to give you whatever answer you need in a given moment is unclear to me. I don't see how that's possible, but maybe I'm thinking too myopically. The contradiction is resolved by your employer pushing professional development into "your own time." And they'll do that by being totally stupid and unaware: they'll push you to maximally use AI tools, but judge you for the skill deficits those tools create.
- bartread 6mo agoDoes AI remove all struggle? I would credit my relative success (compared with many complaints I’ve read) at building software using AI as a helper to the fact that I’ve already solved the problem in my mind before I prompt the AI, and I tell it how I want the problem to be solved. Generally it’s possible to do that in English much more tersely than it is in code. So what I’ve done is the hard (in the sense of problem difficulty) work and simply got the AI to do all the typing for me because I just can’t be arsed any more. The typing isn’t the hard part of software development: just the part that, historically, has taken up a massive chunk of my time in the domains I’ve worked it. I’m not saying this works for everyone in every situation but, as far as I’m concerned, bring it on.
- lokhura 6mo ago>Generally it’s possible to do that in English much more tersely than it is in code. I really doubt this is the case for any decent amount of complexity. English is ambiguous. Programming languages exist because we don't want this ambiguity from natural languages. A sufficiently descriptive spec written in English is barely indistinguishable from just code. We've come full circle.
- bartread 6mo agoIt’s the case because English is wildly more expressive than many commonly used programming languages. And especially when you take into account the mess of front end web development and tooling.
- MarsIronPI 6mo agoPaul Graham might say if that's the case then you need a more expressive language.
- an5ragchoudhary 6mo agoThe tool can only really help you already have something close to the answer you're looking for.