Wow, the text generator that doesn’t actually understand what it’s “writing” is making mistakes? Who could have seen that coming?
I once asked one to write a basic 50-line Python program (just to flesh things out), and it made so many basic errors that any first-year CS student could catch. Nobody should trust LLMs with anything related to security, FFS.
Nobody should trust LLMs with anything
ftfy
also any inputs are probably scrapped and used for training, and none of these people get GDPR
also any inputs are probably scraped
ftfy
Let’s hope it’s the bad outputs that are scrapped. <3
Eh, I’d say mostly.
I have one right now that looks at data and says “Hey, this is weird, here are related things that are different when this weird thing happened. Seems like that may be the cause.”
Which is pretty well within what they are good at, especially if you are doing the training yourself.
you are part of the problem
That is about the most generic statement possible, with nearly zero knowledge of what I’m doing on yours.
So… What problem? Feel free to enlighten me.
I wish we could say the students will figure it out, but I’ve had interns ask for help and then I’ve watched them try to solve problems by repeatedly asking ChatGPT. It’s the scariest thing - “Ok, let’s try to think about this problem for a moment before we - ok, you’re asking ChatGPT to think for a moment. FFS.”
Critical thinking is not being taught anymore.
Has critical thinking ever been taught? Feel like it’s just something you have or you don’t.
Critical thinking is essentially learning to ask good questions and also caring enough to follow the threads you find.
For example, if mental health is to blame for school shootings then what is causing the mental health crisis and are we ensuring that everyone has affordable access to mental healthcare? Okay, we have a list of factors that adversely impact mental health, what can we do to address each one? Etc.
Critical thinking isn’t hard, it just takes time, effort.
I have the impression that most people (or maybe it’s my faith in Humanity that’s at an all time low and it’s really just “some people”) just want pre-chewed explanations given to them rather than spend time and energy figuring things out themselves - basically baby pap as ideas food rather than cooking their own ideas food out of raw ingredients.
Certainly that would help explain the resurgence of Populist sloganeering and continued popularity of Religion (with it’s ever popular simple explanations of “Deity did it” and “it’s the will of Deity”)
In my mind, it’s really just entitlement. Something along the lines of, “well, I don’t know the answer and why should I have to know if someone else is going to figure it out.”
In a tired way, I understand it. Everyday I just want some of my time back for myself. If I’m always the one who has to work through all the problems for my ideas just to be ignored then I’m just going to be perpetually frustrated. So if my ideas are half baked and the solutions i barf up aren’t to your liking, well, figure it out yourself.
Not to say that I am this way. I don’t get frustrated when my ideas are ignored. I do get frustrated, though, when others eat up half baked ideas knowing they are just that.
Sorry, if what I’ve wrote so far has gotten a bit confusing. I’ll wrap it up and say, it’s entitlement. People don’t want to think for themselves because it’s time consuming. They think the world should order itself in a way that fulfills their needs with minimal effort on their part. Except, to understand how the world would be ordered for that to be reality, they can’t comprehend because no one has really figured that one out. So they fall back on god and gods an easy out because, duh, he’s god.
Critical thinking, especially Skepticism, does not make for good Consumers or mindless followers of Political Tribes.
British primary schools used to have something called ‘problem solving’ it was usually a simple maths problem described in words that required some degree of critical thinking to solve. e.g. A frog is at the bottom of a 30m well, it climbs 7m each day but in the night it slides 3m back down in its sleep. You can’t just calculate 30/(7-3) because it doesn’t account for the day the frog gets over the top and thus doesn’t slide back down in its sleep.
Not the most complex problem but pretty good for kids under 10 to start getting the basics.
Nah, it’s something you’re lucky enough to learn coincidentally or you don’t. And if you found out too late in life, you might be too stubborn to learn it at that point.
deleted by creator
I had a chat w/ my sibling about the future of various careers, and my argument was basically that I wouldn’t recommend CS to new students. There was a huge need for SW engineers a few years ago, so everyone and their dog seems to be jumping on the bandwagon, and the quality of the applicants I’ve had has been absolutely terrible. It used to be that you could land a decent SW job without having much skill (basically a pulse and a basic understanding of scripting), but I think that time has passed.
I absolutely think SW engineering is going to be a great career long-term, I just can’t encourage everyone to do it because the expectations for ability are going to go up as AI gets better. If you’re passionate about it, you’re going to ignore whatever I say anyway, and you’ll succeed. But if my recommendation changes your mind, then you probably aren’t passionate enough about it to succeed in a world where AI can write somewhat passable code and will keep getting (slowly) better.
I’m not worried at all about my job or anyone on my team, I’m worried for the next batch of CS grads who chatGPT’d their way through their degree. “Cs get degrees” isn’t going to land you a job anymore, passion about the subject matter will.
Outsourcing killed a lot of the junior and even mid-level career level opportunities in CS and AI seems on track to do the same.
The downside is that going into CS now (and having gone into CS in the last decade or so, especially in English-speaking countries) was basically the career equivalent of just out of the starting line running full speed into a brick wall.
The upside is that for anybody who now is a senior techie things have never been this good because there are significantly fewer people at that level than there is need for such people, since in the last decade or so a lot of people haven’t had the chance to progress in their careers to that point.
Whilst personally this benefits me, I’m totally against this shit and what it has done to the kids entering my career.
Yup, and that’s why I’ll discourage people from entering my career, not because it’s a bad gig and it’s going away, but because the bar for competency is about to go up. Do it if you’re passionate and you’ll probably do well for yourself, but don’t do it if you’re just looking for a good job. If you just want a good job, go into nursing, accounting, or the trades.
I think it’s even worse than just the bar for competency going up: even for a coding wizard going into the career, it’s a lot harder to squeeze through the bottleneck which is getting an entry level position nowadays unless they have some public proof out on the Net of how good they’re at coding (say, commits in open source projects, your own public projects, or even Youtube videos about it).
This is something that will negativelly impact perfectly capable young developers who have an introvert personality type (which are most of them in my experience, even in domains such as Hacking) since some of the upsides of Introversion are a greater capacity for really focusing on on things and for detailed analysis - both things that make for the best programmers - and self publicising isn’t a part of the required skillset for good developers (though sooner or later the best ones will have to learn some “image management” if they end up in the Corporate world)
I’m a bit torn on this since on one side salesmanship being more of a criteria determining one’s chances of getting a break at the start of one’s career as a developer is bad news (good coding and good salesmanship tend to be inverselly correlated) but on the other side a junior developer with some experience actually working with other people on real projects with real users (because they contributed to existing open source projects) has already started learning what we have to teach fresh-out-of-Uni developers to make them professionals.
it’s a lot harder to squeeze through the bottleneck
Eh, I think that’s overblown. As someone involved in hiring, we go through a ton of crappy candidates before finding someone half-decent, and when we see someone who actually knows what they’re doing, we rush them through the process. The problem is that we’re not a big tech company, we’re in manufacturing, but we do interesting things w/ software. So getting on at one of the big tech companies may be challenging, but if you broaden the scope a little, there are tons of jobs waiting. We’ve had junior positions open for months because the hiring pool is so trash, but when we see a good candidate, we can get an offer to them by the end of the week.
We don’t care too much about broader visibility (though I will look at your code if you provide a link), we expect competency on our relatively simple coding challenges, as well as a host of technical questions. We also don’t mind hiring immigrants, we’ve sponsored a number of immigrants on our team.
introversion
As an introvert myself, I totally get it. I got my job because a recruiter reached out to me, not because I was particularly good at following up with applications. And that’s why I tend to tell people to not get into CS. I encourage them to take CS classes if they’re offered, but not to make it a career choice, and this is for two reasons:
- manage expectations of the future of CS - junior jobs are likely to contract a bit w/ AI
- thin the field so it’s easier to find the good candidates - we have to go through 5-10 candidates before we find someone we like
I see. That does change the idea I had about things a bit.
It’s been a while since I was last hiring.
I wasn’t aware that the problem nowadays in the West (or at least the US) was an excess of people who don’t really have a natural skill for it choosing software development as a career.
That kind of thing was one of the main problems with outsourcing to India maybe a decade ago: the profession was comparatively very well paid for the country so it attracted far too many people without the right skills resulting in a really low average quality of the programmers there - India had really good programmers just like everywhere else but then had a ton of people also working as programmers who should never had gone into it, so the experience of those having to deal with outsourced programming in India usually was pretty bad (I remotelly was a technical lead for a small outsourced team in India from London, and they were really bad whilst, curiously, the good programmers from the Indian Subcontinent I worked with had emigrated from there and were working in London and New York).
And that’s not even getting into how flooded the sector is with the hundreds of thousands being laid off for the past few years
And that’s what I’m blaming the low quality of applicants on recently. We looked for almost two years for a FE lead, and then they ended up being super toxic a few months in (they blew up in a meeting w/ some remote teams that came to town to visit). Even decent junior devs are hard to find it seems.
So it seems a lot of these layoffs are cutting out the less skilled devs, but given that we’ve been able to hire a few great people in the last year, there is some good talent getting caught in the cross-fire as well.
Altering the prompt will certainly give a different output, though. Ok, maybe “think about this problem for a moment” is a weird prompt; I see how it actually doesn’t make much sense.
However, including something along the lines of “think through the problem step-by-step” in the prompt really makes a difference, in my experience. The LLM will then, to a higher degree, include sections of “reasoning”, thereby arriving at an output that’s more correct or of higher quality.
This, to me, seems like a simple precursor to the way a model like the new o1 from OpenAI (partly) works; It “thinks” about the prompt behind the scenes, presenting only the resulting output and a hidden (by default) generated summary of the secret raw “thinking” to the user.
Of course, it’s unnecessary - maybe even stupid - to include nonsense or smalltalk in LLM prompts (unless it has proven to actually enhance the output you want), but since (some) LLMs happen to be lazy by design, telling them what to do (like reasoning) can definitely make a great difference.
And that’s why I’m the one that fixes the PC when it breaks… because even good programmers may even consider the pc to be magicboxes if they’ve never turned a screwdriver in their life…
My experience with ChatGPT goes like this:
- Write me a block of code that makes x thing
- Certainly, here’s your code
- Me: This is wrong.
- You’re right, this is the correct version
- Me: This is wrong again.
- You’re right, this is the correct version
- Me: Wrong again, you piece of junk.
- I’m sorry, this is the correct version.
- (even more useless code) … and so on.
All the while it gets further and further from the requirements. So you open five more conversations, give them the same prompt, and try pick which one is least wrong.
All the while realising you did this to save time but at this point coding from scratch would have been faster.
I interviewed someone who used AI (CoPilot, I think), and while it somewhat worked, it gave the wrong implementation of a basic algorithm. We pointed out the mistake, the developer fixed it (we had to provide the basic algorithm, which was fine), and then they refactored and AI spat out the same mistake, which the developer again didn’t notice.
AI is fine if you know what you’re doing and can correct the mistakes it makes (i.e. use it as fancy code completion), but you really do need to know what you’re doing. I recommend new developers avoid AI like the plague until they can use it to cut out the mundane stuff instead of filling in their knowledge gaps. It’ll do a decent job at certain prompts (i.e. generate me a function/class that…), but you’re going to need to go through line-by-line and make sure it’s actually doing the right thing. I find writing code to be much faster than reading and correcting code so I don’t bother w/ AI, but YMMV.
An area where it’s probably ideal is finding stuff in documentation. Some projects are huge and their search sucks, so being able to say, “find the docs for a function in library X that does…” I know what I want, I just may not remember the name or the module, and I certainly don’t remember the argument order.
AI is fine if you know what you’re doing and can correct the mistakes it makes (i.e. use it as fancy code completion)
I’m not a developer and i havent touched code for over 10 yrs, but when i heard about my company pushing AI tools on the devs, i thought exactly what you said. It should be a tool for experienced devs who already know what they’re doing…
Lo and behold they did the opposite… They fired all the senior people and pushed AI on the interns and new grads… and then expected AI to suddenly make the jr devs work like the expensive Sr devs they just fired…
Wtf
Yeah, it makes no sense. AI is at best a replacement for junior devs and interns.
AI is like having an intern you can delegate to. If you give it a simple enough task with clear direction, it can come up with something useful, but you need to check.
That sums up my experience too, but I have found it good for discussing functions for SQL and Powershell. Sometimes, it’ll throw something into its garbage code and I’ll be like “what does this do?” It’ll explain how it’s supposed to work, I’ll then work out its correct usage and solve my problem. Weirdly, it’s almost MORE helpful than if it just gave me functional code, because I have to learn how to properly use it rather than just copy/paste what it gives me.
That’s true. The mistakes actually make learning possible!
Man, designing CS curriculum will be easy in future. Just ask it to do something simple, and ask your CS students to correct the code.
AI created 17 Security Corporation™️s in response to this comment.
I like using it like a rubber ducky. I even have it respond almost entirely in quacks.
Note: it’s a local model running for free. Don’t pay anyone for this slop.
What llm did you use, and how long ago was it? Claude sonnet usually writes pretty good python for smaller scripts (a few hundred lines)
It was ChatGPT from earlier this year. It wasn’t a huge deal for me that it made mistakes, because I had a very specific use case and just wanted to save some time; I knew I’d have to troubleshoot grafting it into my function, but even after I pointed out that it was using depreciated syntax (and how to correct it), it just spat out the code again with even more errors and still using depreciated syntax.
All LLMs will fail like this in some way, because they don’t actually understand what they’re generating (i.e. they have no mechanism for self-evaluating the veracity of their statements).
This is a very simple one, but someone lower down apparently had issue with a script like this:
https://i.imgur.com/wD9XXYt.png
I tested the code, it works. If I was gonna change anything, probably move matplotlib import to after else so it’s only imported when needed to display the image.
I have a lot more complex generations in my history, but all of them have personal or business details, and have much more back and forth. But try it yourself, claude have a free tier. Just try to be clear in the prompt what you want. It might surprise you.
I appreciate the effort you put into the comment and your kind tone, but I’m not really interested in increasing LLM presence in my life.
I said what I said, and I experienced what I experienced. Providing me an example where it works is in no way a falsification of the core of my original comment: LLMs have no place generating code for secure applications apart from human review, because they don’t have a mechanism to comprehend or proof their own work.
Removed by mod
It’s already hard to not write buggy code, but I don’t think you will detect them by just reviewing LLM code, because detecting issues during code review is much harder than when you’re writing code.
Definitely. That’s what I was trying to drive at, but you said it well.
Oh geez…who could have seen this coming?
Oh wait, every single senior developer who is currently railing against their moron AI-bandwagoning CEOs.
Middle and upper management are like little children - they’ll only learn that fire hurts by putting their hand in it.
But are the shareholders pleased?
I’ve been laughing at this quote for 5 minutes straight
It’s so good
He knows he’s right
Also: I code sometimes, and all of my code is of masterpiece quality. I cannot debug my own code, I ask for outside help and we have to dismantle the NT kernel to find out what’s gone wrong
Good. This is digital Darwinism at its finest. Weeds out the companies who thought they could save money by relying on a digital monkey instead of actual professionals.
deleted by creator
I always claimed in job interviews to be good at debugging, but there are no certifications for debugging and there’s really no way for an interviewer to verify such a claim. So even though it is an incredibly important skill, companies just do not look for it. There is also the hilariously misguided belief that good coders do not produce bugs so there’s no need for debugging.
There is also the hilariously misguided belief that good coders do not produce bugs so there’s no need for debugging.
Yeah, fuck this specifically. I’d rather have a good troubleshooter. I work in live events; I don’t care if an audio technician can run a concert and have it sounding wonderful under ideal conditions. I care if they can salvage a concert after the entire fucking rig stops working 5 minutes before the show starts. I judge techs almost solely on their ability to troubleshoot.
Anyone can run a system that is already built, but a truly good technician can identify where a problem is and work to fix it. I’ve seen too many “good” technicians freeze up and panic at the first sign of trouble, which really just tells me they’re not as good as they say. When you have a show starting in 10 minutes and you have no audio, you can’t waste time with panic.
Good programmers (and I don’t mean just at the coding level) make less bugs exactly because they want to avoid bug fixing as much as possible.
They still have to do debugging - and hence have to be good at it - just less often than if they didn’t invest any time into figuring out ways of working that reduce the rate of bugs in their work (and, again, this is at more levels than just coding).
I think that misconception of “good coders do not produce bugs” in anchored in the totally wrong idea that it’s at all possible to make code without bugs - the way I see it the path to being a “good coder” must go through being good at debugging and just wanting to avoid doing it as much because how how much more time it takes to have to go all the way down to using the debugger to find bugs than doing things like at least some analysis upfront of the program requirements, using proper naming conventions to reduce the likelihood of the kind of bugs that comes from confusing variables and structuring you code so that you don’t get lost or don’t forget things (especially for code you don’t see for months and later come back to having forgotten the logic you were following with it).
I’ve done some programming without proper debuggers (embedded stuff in shitty shit microcontrollers, shader programming) and it’s a total PITA.
There is also the hilariously misguided belief that good coders do not produce bugs so there’s no need for debugging.
i’m terrified of people who think this way. my experience has been that they are much less inclined to check for bugs in their code and tend to produce much buggier code
The pain in the arse which is debugging is what motivated me to, as my career progressed, improve my coding, improve my software design, improve my systems design, even improved my software development process and standards and eventually that even extended to getting those I worked with to also improving those things as I sometimes ended up having to debug their bugs.
Debugging definitelly makes better techies, IMHO, mainly because of the lengths people will go to in order the avoid having to do it.
“When asked about buggy AI, a common refrain is ‘it is not my code,’ meaning they feel less accountable because they didn’t write it.”
That’s… That’s so fucking cool…
Amazing
Lmao my job announced layoffs a few months back. They continue to parade their corporate restructuring plan in front of us like we give a fuck if shareholders make money. My output has dropped significantly as I search for another role. Whatever code I do write now is always just copy pasted from AI (which is getting harder to use…fuck you Copilot). I give zero fucks about this place anymore. Maybe if people had some small semblance of investment in their company’s success (i.e.: not milked by shareholders and beaten to dust by shitty profit driven metrics that take away from the core business), the employees might give enough fucks to not copy paste shitty third party code.
Additionally, this is a training issue. Don’t offload the training of your people onto the universities (which then trap the students into an insurmountable debt load leading them to take jobs they otherwise wouldn’t want to take just to eat and have a roof over their heads). The modern corporate landscape has created a perfect shitstorm of disincentives for genuine effort and diligence. Then you expect us to give a shit about your company even though the days of 40 years and a pension are now gone. We’re stuck with 401k plans and social security and the luck of the draw as to whether we can retire or not. Work your whole life for what? Fuck you. I’m gonna generate that AI code and enjoy my 30s and 40s.
A workforce trapped by debt, forced to prioritize job security and paycheck size over passion or purpose. People end up in roles they don’t care about, working for companies they have no investment in, simply to keep up with loan payments and the ever increasing cost of living.
“Why is my organization falling apart!?” Fucking look up from the stupid fucking metrics that don’t actually tell you anything you dumb fucks. Make an actual human decision and fix the wealth inequality. It’s literally always wealth inequality.
“People work in roles they don’t care about, for companies they have no investment in, to pay loans they shouldn’t have.”
That sounds like a fight club quote lol. I know you didn’t say “loans they shouldn’t have” but the cost of college is just stupidly high. It doesn’t have to be free but come on.
It doesn’t have to be free but come on.
I beg to differ! My degree was free for all intents and purposes, and no, it didn’t take away from the challenge or the quality of education. I cried blood tears in order to graduate but it was worth it.
Chuck Palahniuk leaking into my writing like the carrot out of the protagonist’s ass in Guts.
15 years ago I got a job where I wasn’t allowed to do anything. I hated it. I wanted to learn and be valuable and be valued. I left that job.
I worked for a bank and then Red Hat and I loved what I did and burned myself out trying to make them happy. Only to find out they still didn’t value me.
I switched jobs two years ago and increased my pay 30% overnight and back to a job doing nothing. And I’m totally fine with it now. I have a family and I focus on them and during work, if they don’t have anything for me to do I make my own happiness.
Fuck corporations. I’ll take your money, I’ll never again kill myself as I’ll never be valued anyway. Jobs aren’t worth it. People are.
I told my manager that I’ve been burned and can’t make myself work hard for another company again. She’s leaving so there’s no vested interest in the company for her. But yeah, fuck these cunts.
Similar trajectory for me, but I’m now being micromanaged on the daily. We got a new CIO recently who is micromanaging his direct reports and our culture has evaporated overnight. The shit is indeed rolling down hill and the writing is on the wall to leave. I know it’s not just me either. There will be an exodus when rates get cut and hiring picks up again. This place is fucked.
But that’s the key. If you can find something and lay low with minimal annoyance, hang onto that for as long as you can.
You are my spirit animal.
Are you also finding copilot to be less helpful of late? The other day it couldn’t follow the simplest of instructions
For me it’s the “Stop responding” button. Sometimes I’ll neglect something in my prompt, such as the fact that I’m stuck on ES5 javascript in my job (ServiceNow). It’ll spit out ES6+ with let declarations or something like that, and I have to go back and qualify my limitations. So I click stop responding. What used to happen was that it would stop and allow for additional prompting. Now it’s just like a client side trick. It hides the output but the server is still returning shit in the background, so if I try to re-prompt or add context it finishes what it was originally saying first, then tacks the new answer onto the old one without pause, separation, or human readable formatting that would indicate that there is a new output. It’s an awful experience.
I’ve been using perplexity.ai but my company thinks its agreements will stop Microsoft from training their AIs on our proprietary data, so I have to be more careful with perplexity than Copilot.
Me and my team take our site down the old fashioned way. Code copied from some rando on the internet.
Reminds me of the time that I took down the corporate website by translating the entire website into German. I’d been asked to do this but I hadn’t realized that the auto translation Plug-In actually rewrote code into German, I thought it was just going to alter the HTML with JavaScript at runtime, but nope. It actually edited the files.
It also translated the password into German which was fun because it was just random characters so I have no idea what it translated into.
That’s fucking hilarious
Same happened with people using the Cloud To Butt extension which replaced every ‘cloud’ with ‘butt’ even for codes. Hilarity ensued.
I do have that extension installed. Never been bit so far. I don’t copy and paste anymore than a couple of lines at a time.
It’s pretty much the same as AIs do - copy and past random code from Stackoverflow - but they do it automatically.
Good old
curl|sh
Copy pasting random snippets from search results and chatgpt until something works is how I do my job.
“until something works" At least you’re doing a better job than some people.
Some leave it at will ai told me so. And they don’t know better and put that into prod!
This must sound terrible. So high pitched
Maybe so high pitched it’s out of the hearing range of most humans
And none of the forced tech support “AI” replacements work. And the companies don’t give a shit.
I’ve had this argument with them a few times at work. They are definitely going to replace this all with AI. Probably within the next year and no amount of us pointing out that it won’t work and they’ll end up having to bring us back, at 3x the rate, seems to have any effect on them.
I’m probably going to have to listen to a lot of arguments about this strawberry thing tomorrow.
Anyway whatever, severance is severance.
I was once in a similar position: company merger and they decided to move support offshore. We got 6 months lead notice and generous severance paid out as long as we stayed to the end. Fast forward a year and they took 85% customer approval to 13%. We got hired back at 1.5x our old pay rate, so not quite the 3x you mentioned. Hoping this works out similar for you in the end.
As stated in the article, this has less to do with using AI, more to do with sloppy code reviews and code quality enforcement. Bad code from AI is just the latest version of mindlessly pasting from Stack Overflow.
I encourage jrs to use tools such as Phind for solving problems but I also expect them to understand what they’re submitting and be ready to defend it no differently to any other PR. If they’re submitting code they don’t understand that’s incredibly unprofessional and I would come down very hard on them. They don’t do this though because we don’t hire dickheads.
Shift-left eliminated the QA role.
Now we have AI generated shit code, with devs that don’t understand the low level details of both the language, and the specifics of the generated code.
So we basically have content entry (ai inputs) and extremely shitty QA bundled into the “developer” role.
As a 20 year veteran of the industry, people keep asking me if I think AI will make developers obsolete. I keep telling them “maybe some day, but today’s LLMs are not it. The AI bubble is going to burst, and a few legit use cases will make it through”
Bad code from AI is just the latest version of mindlessly pasting from Stack Overflow.
Humans literally can not scan all of SO to make a huge copypasta.
It takes much more time, effort, and thought to find various solutions on SO and patch them together into something that works well.
Yeah but… i asked chatgpt once how to style something in asciidoctors style.yml. It proposed me html syntax (some inline stuff can be done with html tags in asciidoctor, if output is html). After the usual apology, it suggested some wrong yaml. Third try, because formatting was wrong, it mixed them both.
I mean, sure, some niche usecase in a somewhat obscure (lots of moving parts) lightweight markup. But still, this was a lesson.
this has less to do with using AI, more to do with sloppy code reviews and code quality enforcement.
They are the same picture.
More specifically: the same kind of decision makers are behind both.
We used to have these shit developers and I accepted a lot of bad code back then – if it actually worked – because otherwise “code review” is full-on training, which is an entire other job from the one I was hired to do.
The client ditched that contracting firm, and the devs I work with now are worth putting in time on code review with – but damn, we got hella shit code in our codebase to deal with now. Some of it got tossed, some of it … we live with.
Computer write shite code and the human still gets blamed.
edit: we have become gods
The human turned the code in. They deserve 100% of the blame.
If I was still in a senior dev position, I’d ban AI code assistants for anyone with less than around 10 years experience. It’s a time saver if you can read code almost as fluently as you can read your own native language but even besides the A.I. code introducing bugs, it’s often not the most efficient way. It’s only useful if you can tell that at a glance and reject its suggestions as much as you accept them.
Which, honestly, is how I was when I was first starting out as a developer. I thought I was hot shit and contributing and I was taking half a day to do tasks an experienced developer could do in minutes. Generative AI is a new developer: irrationally confident, not actually saving time, and rarely doing things the best way.
I’ve found they’re great as a learning tool where decent docs are available. Or as an interactive docs you can ask follow up questions to.
We mostly use c# and it’s amazing at digging into the MS docs to pull out useful things from the bcl or common patterns.
Our new juniors got up to speed so fast by asking it to explain stuff in the existing codebases. Which in turn takes pressure off more senior staff.
I got productive in vuejs in a large codebase in a couple days that way.
Using to generate actual code is insanely shit haha It is very similar to just copy pasting code and hacking it in without understanding it.
You make a good point about using it for documentation and learning. That’s a pretty good use case. I just wouldn’t want young developers to use it for code completion any more than I’d want college sophomores to use it for writing essays. Professors don’t have you write essays because they like reading essays. Sometimes, doing a task manually is the point of the assignment.
What setup are you using for junior devs to be able to query your codebase?
I was talking more generally about LLMs here
Even worse than it being wrong, is that by nature of the tool it looks right.
Eh, I’m a senior dev, and I don’t ban it (my boss, the director, does that for me lol; he’s worried about company secrets leaking).
In fact, we had an interview for a senior dev position, and the applicant asked if they could use AI, and I told them to use whatever tools they normally would for development. It shouldn’t come as a surprise that they totally botched the programming challenge because of it (introduced the same bug twice, then said they were very confident in the correctness of the code…), and that made it so much easier to filter them out from our hiring pool. If you’re going to use a tool in an interview, you better feel confident with it. If that dev had solved the problem significantly faster than our other applicants, I would’ve taken that to my boss to have the team experiment with it. We target budget 30 min for our challenges, and our seniors generally finish in under 20, and it took them more than our allotted time to get the code to actually run properly (and that’s with us pointing out certain mistakes the AI generated).
But no, I haven’t seen an actually productive use of AI for software development, beyond searching for docs online (which you can totally do w/ Bing or Google w/o involving our codebase). You may feel more productive because more code is appearing on the screen, but the increase in bugs likely reduces overall productivity. We’re always looking for ways to improve, but when I can solve the same problem in my bare-bones editor (vim) faster than my more junior colleagues can with their fancy IDEs, I really don’t think AI is going to be the thing that improves our productivity, actually understanding logic will. If someone demonstrates that AI does save time, I’ll try it out and campaign for it.
Anyway, that’s my take as someone who has been in the industry for something like 15 years. Knowing your tools is more important, IMO, than having more tools.
I had my suspicions before but the moment I realized for certain Elon Musk couldn’t run a software company was when he judged people by lines of code written.
Ew, I would hate to be in charge of code reviews at an org like that.
The proper metric is success of the actual product. We have our engineers give estimates, then hold them to those estimates and evaluate based on consistency of on-time releases and number of production bugs. At the end of the day, predictable, high quality delivery is usually more valuable than faster time to market, unless you’re in a startup or something and just need to get early adopters on-board. Judge QA by defects discovered in production and devs by defects found by QA and in production. It’s really not that hard.
The one time some manager voiced such an idea, I very overtly in front of everybody offered to make “loop unrolling” software working at the source level (compilers already do it at the Assembly level in some cases for performance) for me and my colleagues to really boost that code line count (while totally screwing maintenability).
Mind you, all devs in that meeting were loudly against measuring performance by code lines, but I like to think that suggestion of mine really hammered down the coup the grace on that “brilliant” idea.
Not trying to defend him, but I thought the reasoning behind doing that was to get the least obedient people to leave the company so that there won’t be a delayed push back from the employees.
In my experience working for almost 3 decades in software development, passive-agressive shit from upper management just causes the best people to leave (as they’re the ones who easilly find better jobs) leaving behind mainly a mix of the incompetent and those who never worked anywhere else (who are either already incompetent or will become so, as only ever having worked in just one company is far too narrow professional experience for anything beyond junior/mid level - you need to have seen more than one way of doing things to understand certain higher level concerns and choices in software development).
Yeah and I’d say these people left are exactly those Elon wants, he doesn’t want white guys in their 50s, he wants obedient young guys.
Sound like a variant of the good old saying “pay peanuts, get monkeys” only using a stick and threats instead of payment.
Mind you, it does sound like the kind of think somebody with his kind of personality - narcissistic shameless and dishonest salesman - would think it’s a great idea.
deleted by creator
I’ve worked as a freelancer (specifically as a Contractor) in Software Development for over a decade and more often than not I ended up having to work with some existing code base, having to deal with the design choices, coding style and bugs of somebody else, often multiple somebody elses.
There’s nothing quite as “entertaining” as having to deal with 3+ different code and design styles in the same code base because all previous developer thought their own way of doing things was the superior way so just added one more layer of their style (not just coding but, worse, software design) on top of what was already there increasing the mess, rather than work within the existing structure and style and doing some refactoring.
Anyway, in my experience having to read, understand and work with existing code that you yourself did not made is way more time costly and less pleasant than actually doing your stuff from scratch.
See? AI creates jobs! Granted, it’s specialized mop up situations, but jobs!
It’ll be even more interesting in the future! Every now and then a T1000 will lose all hydraulic fluids right out it’s prosthetic anus and they’ll need someone there with a mop and bucket! Our economy lives on…
If by economy you mean some of us are needed to mop up hydraulic ass-juices at gunpoint I suppose you’re technically correct. At least they have to feed us, right?
…right?
Having spent most of my career working as a senior contractor, which often meant landing on code bases with 3+ layers of fuckups, I can only imagine how painful it will be to end up having to clean and fix AI generated code, since that doesn’t even have a consistent coding style or pattern of design errors and bugs.
How come the hallucinating ghost in the machine is generating code so bad the production servers hallucinate even harder and crash?
I’m not sure how AI supposed to understand code. Most of the code out there is garbage. Even most of the working code out there in the world today is garbage.
Heck, I sometimes can’t understand my own code. And this AI thing tries to tell me I should move this code over there and do this and that and then poof it doesn’t compile anymore. The thing is even more clueless than me.
Randomly rearranging non working code one doesn’t understand… sometimes gets working code, sometimes doesn’t fix the bug, sometimes it won’t even compile anymore? Has no clue what the problem is and only solves it randomly by accident?
Sounds like the LLM is as capable as me /s
Sometimes you even get newer and more interesting bugs!
As a senior dev, this sounds like job security. :)
You know you’re Sr. when it doesn’t even bother you anymore. It amuses you.
My boss comes to me saying we must finish feature X by date Y or else.
Me:
We’re literally in this mess right now. Basically, product team set out some goals for the year, and we pointed out early on that feature X is going to have a ton of issues. Halfway through the year, my boss (the director) tells the product team we need to start feature X immediately or it’s going to have risk of missing the EOY goals. Product team gets all the pre-reqs finished about 2 months before EOY (our “year” ends this month), and surprise surprise, there are tons of issues and we’re likely to miss the deadline. Product team is freaking out about their bonuses, whereas I’m chuckling in the corner pointing to the multiple times we told them it’s going to have issues.
There’s a reason you hire senior engineers, and it’s not to wave a magic wand and fix all the issues at the last minute, it’s to tell you your expectations are unreasonable. The process should be:
- product team lists requirements
- some software dev gives a reasonable estimate
- senior dev chuckles and doubles it
- director chuckles and adds 25% or so to the estimate
- if product team doesn’t like the estimate, return to 1
- we release somewhere between 3 and 4
If you skip some of those steps, you’re going to have a bad time.
Can confirm. At our company, we have a tech debt budget, which is really awesome since we can fix the worst of the problems. However, we generate tech debt faster than we can fix it. Adding AI to the mix would just make tech debt even faster, because instead of senior devs reviewing junior dev code, we’d have junior devs reviewing AI code…
LLMs are not supposed to understand, they are supposed to pretend to understand.
You have to be hallucinating to understand.
I’ve licked the frog twice! How many does it take?
A-one. A-two-hoo. A-three… *Crumch*
I take it that frog hadn’t been de-boned.
“AI” is just good for simple code snippets. (Which it stole from Github repos).
This whole ai bs needs to die already, and the people who lie about it held accountable.