Hours + Hours of reading and a lot of trial-and-error. The loop was so long and sooo slow. Now it's instant. As if your very first Google search just solved the problem for you immediately.
Hours + Hours of reading and a lot of trial-and-error. The loop was so long and sooo slow. Now it's instant. As if your very first Google search just solved the problem for you immediately.
But that's how you learn...
We've all accepted that code-generation has been required and accepted for decades.
https://gcc.gnu.org/bugzilla/buglist.cgi?chfield=%5BBug%20cr
I count 500+ of them.
the generalists win overall, except of course for specific cases where specialists are great
You could probably replace me with a minimum wage worker to do some manual testing and copy-paste errors from the console into the LLM, and still be fine.
Let's see how long it is before the next round of layoffs, I guess. For now, the money's fine and the work's boring but ok.
But, no, the LLMs rewarding expertise line is pure cope. Software is not really skilled labor any more.
(obviously, throwaway -- I'm not interested in potentially advertising this to my employer)
Perhaps for your task of closing Jira tickets that’s true - but the you have a decision to make: wait until you’re eliminated or try to anticipate where future competitiveness comes from.
It's largely going to come from interpersonal skills and being likeable enough to be the face of the projects and companies. Technical skill is rapidly dropping in value.
That's so far from being true it's like saying that humans are currently an interplanetary, post-scarcity species.
LLMs debug extremely well, generate code well enough, and do high level design acceptably, but fail in weird ways, so my actual work these days (outside of delegating to the LLM) is mostly manual testing. I need to give them nudges sometimes, but a year ago they needed constant nudges. In another year, I expect that it'll be good enough that pasting in a bug report with the right jargon will be all the nudging I need to get something that customers will accept if it gets shipped. They're already close.
It's obviously going to remain pretty manual without some breakthroughs, but it's largely not work that needs a ton of intelligence or skill. The world hasn't caught up with software development being a few steps up from burger flipping, so I'm still getting paid well to do it, and I'll keep collecting that paycheck as long as it lasts. But learning about code is rapidly becoming relatively valueless.
I wish it was different, I actually enjoyed getting paid to learn, but I play with the cards I'm dealt.
The people who make the tools that generate your assembly instructions need to learn it. Just like the people who make the browser rendering engine and push CSS forward still need to learn it.
The people who don't need to learn asm never needed to learn it. If you wouldn't code in asm now, you wouldn't have ever.
This " logic" is so irrational.
Someone has to know it. And to advance it to the next level requires domain level expertise. Or are we allowing LLM's to determine the next CSS snapshot/version/level/whatever?
Pre-AI I'd say I've gotten over the hump 3 times with CSS, only to lose it again by the next time I had to use it in volume.
No, of course not. Because all of that got abstracted to higher-level instructions decades ago.
It's very useful that there's an intermediary that knows how that stuff works so I can build things without thinking about it in excruciating detail the whole time, I can dip down lower and learn stuff when it's relevant (like cache access and nested arrays) but I can also not do that in many situations.
There's also the argument that you can do engineering without understanding the underlying science as seen in th pyramids, the beautiful old european churches, etc
I want a green lawn and big bushy shrubs in front of my house. Do I need to know the intricate biology of my soil and habitat? No, of course not. I just do the surface-level things that make the lawn and shrubs thrive.
And others want the green lawn and big bushy shrubs, but don't want to learn all of the surface level things to make their lawn thrive so they hire a service to do it for them. And there's nothing wrong with that - not everyone enjoys the yard work, but they still want the thriving lawn and shrubs... and they are happy to write a check to OpenAI... err...Lawn Doctor every month to get that result since the time they save by not dealing with their lawn, they can pursue things they do want to do.
Not everyone wants to (or needs to) learn every detail along the way of getting the results they want.
The one who learns about x86 registers is much more likely to continue to evolve
This reduces the cycle time on issues and reduces bugs and performance regressions. If I pitched that last sentence to your boss, chances are he'd take it.
Yeah, I have a pretty good idea of how we go from code -> IR registers -> x86 registers and how the underlying hardware has more registers than that, etc.
As for SPARC and POWER, I have not yet gotten my hands on one! But as someone who writes compilers for fun I did learn about most of that, yes.
I write C# in my dayjob, and having written high-ish performance C++ and Rust for a couple years before that, and because of all the curiosity-driven projects I've done (like writing useless compilers), I did learn a lot.
This has helped me massively in my job, especially when optimizing our C# sensor data ingestion backend to process hundreds of thousands of measurements per seconds with explicit backpressure etc. it was great fun because I know what I'm doing.
I'm not trying to "uhm actually" you, but when you call yourself a software engineer, I do expect that you know some of these things after some years in the industry. The only way you wouldn't is a lack of curiosity, or because you genuinely had no idea that you CAN learn these things.
I think the main point is, if you're building frontend web apps, you should probably know how HTML, CSS, and JavaScript interact to some decently high level. Can you look stuff up on the margins via AI, or StackOverflow, or whatever? Sure.
If you're building <something else>, you should probably know the core tools and concepts at the appropriate level to build them.
No we do not need to know every aspect of CPU branch prediction and whatnot to make a webpage.
Having to read through a structured resource describing something to figure something out has intrinsic value that an LLM is not going to provide you with.
This is obviously not the case. There are mountains and mountains of boring, unimportant stuff that LLMs can do for us now.
For example, at work I can now make a nestJS dashboard without having any idea what nestJS is. I can just tell the LLM what I want, and it makes it so. This allows me to make my tool useful to people without having to become an expert on something unimportant.