- cross-posted to:
- technology@lemmy.world
- cross-posted to:
- technology@lemmy.world
Stack Overflow and Google were once the “AI” of the previous generation. “These kids can’t code, they just copy what others have done”
As someone who can’t code (not a developer) but occasionally needs to dip my toes in it. I’ve learned quite a bit from using chatgpt and then picking apart whatever it shat out to figure out why it’s not working. It’s still better than me starting from scratch on whatever it is I’m working on because usually I don’t even know where to begin.
Yeah, and copy-pasting SO answers with no thought is just as bad.
And when copy-pasting didn’t work, those who dared to rise above and understand it, became better. Same with AI, those of the new generation who see through the slop will learn. It’s the same as it has always been. Software engineering is more accessible than ever, say what you will about the current landscape of software engineering but that fact remains undeniable.
Software engineering is more accessible than ever
This is key here. Having it more accessible, we see more people who do not want to learn but still trying to code. But we also see more people who wants to learn and create solutions.
I’m glad that AI is making it easier to enter into new areas of knowledge. I just hope it won’t be used as a crutch too far into people’s journeys.
I’m glad that AI is making it easier to enter into new areas of knowledge. I just hope it won’t be used as a crutch too far into people’s journeys.
Well said. Some of the most talented devs I know use Stack Overflow. It depends on how you use it.
All the devs I know use SO…
True.
I could barely code when I landed my job and now I’m a senior dev. It’s saying a plumber’s apprentice can’t plumb - you learn on the job.
You’re not learning anything if Copilot is doing it for you. That’s the point.
100% agree.
I dont think there is no place for AI as an aid to help you find the solution, but i dont think it’s going to help you learn if you just ask it for the answers.
For example, yesterday, i was trying to find out why a policy map on a cisco switch wasn’t re-activating after my radius server came back up. Instead of throwing my map at the AI and asking whats wrong l, i asked it details about how a policy map is activated, and about what mechanism the switch uses to determine the status of the radius server and how a policy map can leverage that to kick into gear again.
Ultimately, AI didn’t have the answer, but it put me on the right track, and i believe i solved the issue. It seems that the switch didnt count me adding the radius server to the running config as a server coming back alive but if i put in a fake server and instead altered the IP to a real server then the switch saw this as the server coming back alive and authentication started again.
In fact, some of the info it gave me along the way was wrong. Like when it tried to give me cli commands that i already knew wouldn’t work because i was using the newer C3PL AAA commands, but it was mixing them up with the legacy commands and combining them together. Even after i told it that was a made-up command and why it wouldn’t work, it still tried to give me the command again later.
So, i dont think it’s a good tool for producing actual work, but it can be a good tool to help us learn things if it is used that way. To ask “why” and “how” instead of “what.”
That’s true, it can only get you so far. I’m sure we all started by Frankenstein-ing stack overflow answers together until we had to actually learn the “why”
The problem is not only the coding but the thinking. The AI revolution will give birth to a lot more people without critical thinking and problem solving capabilities.
That’s the point.
Along with censorship.
apart from that, learning programming went from something one does out of calling, to something one does to get a job. The percentage of programmers that actually like coding is going down, so on average they’re going to be worse
This is true for all of IT. I love IT - I’ve been into computer for 30+ years. I run a small homelab, it’ll always be a hobby and a career. But yeah, for more and more people it’s just a job.
I am not a professional coder, just a hobbyist, but I am increasingly digging into Cybersecurity concepts.
And even as an “amature Cybersecurity” person, everything about what you describe, and LLM coders, terrifies me, because that shit is never going to have any proper security methodology implemented.
On the bright side, you might be able to cash in on some bug bounties.
To be fair, most never could. I’ve been hiring junior devs for decades now, and all the ones straight out of university barely had any coding skills .
Its why I stopped looking at where they studied, I always first check their hobbies. if one of the hobbies is something nerdy and useless, tinkering with a raspberry or something, that indicates to me it’s someone who loves coding and probably is already reasonably good at it
Nevermind how cybersecurity is a niche field that can vary by use case and environment.
At some level, you’ll need to learn the security system of your company (or the lack there of) and the tools used by your department.
There is no class you can take that’s going to give you more than broad theory.
They never could
Exactly, the jr dev that could write anything useful is a rare gem. Boot camps cranking out jr dev by the dozens every couple of months didn’t help the issue. Talent needs cultivation, and since every tech company has been cutting back lately, they stopped cultivating and started sniping talent from each other. Not hard given the amount of layoffs lately. So now we have jr devs either unable to find a place to refine them, or getting hired by people who just want to save money and don’t know that you need a senior or two to wrangle them. Then chat gpt comes along and gives the illusion of sr dev advice, telling them how to write the wrong thing better, no one to teach them which tool is the right one for the job.
Our industry is in kind of a fucked state and will be for a while. Get good at cleaning up the messes that will be left behind and that will keep you fed for the next decade.
Not that this is very unique to the field, junior anything usually needs at least 6 months to get to a productive level.
Kind of wish we went with more tradesmen-like titles. Apprentice, journeyman, master. Master software developer sounds like we have honed our craft. Junior/senior just seems like a length of time.
It generally is a length of time. Your title depends on the years on the job.
To me, I feel like this is a problem perpetuated by management. I see it on the system administration side as well – they don’t care if people understand why a tool works; they just want someone who can run it. If there’s no free thought the people are interchangeable and easily replaced.
I often see it farmed out to vendors when actual thought is required, and it’s maddening.
i always found this to be upsetting as an IT tech at a former company - when a network or server had an issue and i was sent to resolve it, it was a “just reboot it” fix, which never kept the problem from recurring and bringing the server down at 07:00 the next Monday.
the limitations on the questions i could ask hurt that SLA more than any network switch’s memory leak ever did, and i felt as if my expertise meant nothing as a result.
Of course they don’t. Hiring junior devs for their hard skills is a dumb proposition. Hire for their soft skills, intellectual curiosity, and willingness to work hard and learn. There is no substitute for good training and experience.
Not in any way a new phenomenon, there’s a reason fizzbuzz was invented, there’s been a steady stream of CS graduates who can’t code their way out of a wet paper bag ever since the profession hit the mainstream.
Actually fucking interview your candidates, especially if you’re sourcing candidates from a country with for-profit education and/or rote learning cultures, both of which suck when it comes to failing people who didn’t learn anything. No BS coding tests go for “explain this code to me” kind of stuff, worst case they can understand code but suck at producing it, that’s still prime QA material right there.
We do two “code challenges”:
- Very simple, many are done in 5 min; this just weeds out the incompetent applicants, and 90% of the code is written (i.e. simulate working in an existing codebase)
- Ambiguous requirements, the point is to ask questions, and we actually have different branches depending on assumptions they made (to challenge their assumptions); i.e. simulate building a solution with product team
The first is in the first round, the second is in the technical interview. Neither are difficult, and we provide any equations they’ll need.
It’s much more important that they can reason about requirements than code something quick, because life won’t give you firm requirements, and we don’t want a ton of back and forth with product team if we can avoid it, so we need to catch most of that at the start.
In short, we’re looking for actual software engineers, not code monkeys.
Those are good approaches, I would note that the “90% is written” one is mostly about code comprehension, not writing (as in: Actually architect something), and the requirement thing is a thing that you should, IMO, learn as a junior, it’s not a prerequisite. It needs a lot of experience, and often domain knowledge new candidates have no chance of having. But, then, throwing such stuff at them and then judging them by their approach, not end result, should be fair.
The main question I ask myself, in general, is “can this person look at code from different angles”. Somewhat like rotating a cube in your mind’s eye if you get what I mean. And it might even be that they’re no good at it, but they demonstrate the ability when talking about coffee making. People who don’t get lost when you’re talking about cash registers having a common queue having better overall latency than cash registers with individual queues. Just as a carpenter would ask someone “do you like working with your hands”, the question is “do you like to rotate implication structures in your mind”.
judging them by their approach, not end result, should be fair.
Yup, that’s the approach. It’s okay if they don’t finish, I want to know how they approach the problem. We absolutely adjust our decision based on the role.
If they can extend existing code and design a new system (with minimal new code) and ask the right questions, we can work with them.
I’m just getting started on my third attempt at changing careers from sys-admining over to coding (starting with the Odin project this time). I’m not sure the questions you ask, while interesting, will be covered. Can you point to some resources or subject matter to research to get exposure to these questions? The non coding, coding questions are interesting to me and I’m curious if my experience will help or if it’s something I need to account for while learning.
We stay away from riddles, and instead focus on CS concepts. We’ll rephrase to avoid jargon if you don’t have a formal education, or it has been a while. Here are a few categories:
- OOP concepts like SOLID
- concurrency vs parallelism, approaches for each (generators, threads, async,’ etc), and tradeoffs
- typing (e.g. is a Python strongly or weakly typed? Java? JavaScript?), and practical implications
- functional programming concepts like closures, partial application, etc
- SQL knowledge
- types of tests, and approaches/goals for each
And some practical details like:
- major implementation details of our stack (Python’s GIL, browser features like service workers, etc)
- git and docker experience
- build systems and other dev tools
That covers most of it. We don’t expect every candidate to know everything, we just want to get an idea of the breadth and depth of their knowledge.
Love it. So much to look into. Appreciate your time.
Most hiring managers are looking for unicorns
Sounds nice? What type of place you work at? I’m guess not a big corp
We’re a somewhat big player in a niche industry that manufactures for a large industry. Yearly profits are in the hundreds of millions of dollars, market cap is a few billion, so low end of mid cap stocks. I don’t want to doxx myself, but think of something like producing drills for oil rigs and you won’t be far off.
We have about 50 software developers across three time zones (7 or 8 scrum teams) and a pretty high requirement for correctness and very little emphasis on rapid delivery. It’s okay if it takes more time, as long as can plan around it, so we end up with estimates like 2-3 months for things that could have an MVP in under a month (in fact, we often build an MVP during estimation), with the extra time spent testing.
So yeah, it’s a nice place to work. I very rarely stay late, and it’s never because a project is late, but because of a high severity bug in prod (e.g. a customer can’t complete a task).
deleted by creator
People who would have gone into finance or received an MBA have been going to tech for a decade now. Every one of them pushes out someone who would have been a real developer.
I’ve also had the pleasure of watching a lot of the generation who’s now complaining as they grew through their journey as developers. I think a lot of them are sugar coating their own abilities. I struggled with many a now illustrious developer whole they banged their head against the wall for hours.
Very “back in my day” energy.
I do not support AI but programming is about solving problems and not writing code.
If we are concentrating on tool, no developers and use punched card as well. Is that a bad thing?
You’re right in that the goal is problem solving, you’re wrong that inability to code isn’t a problem.
AI can make a for loop and do common tasks but the moment you have something halfway novel to do, it has a habit of shitting itself and pretending that the feces is good code. And if you can’t read code, you can’t tell the shit from the stuff you want.
It may be able to do it in the future but it can’t yet
Source: data engineer who has fought his AI a time or two.
Of course I use as well on a daily basis for coding and AI is shit.
Again, I in no way support AI, I just think that the argument made in the article is also not good.
Unless AI dramatically improves from where LLMs are today (in ways that it so far hasn’t), as a worker, I’m looking forward to the drastic shortage of experienced senior devs in a few years time.
On the flipside, I’m discouraging people from entering CS. The passionate devs will ignore me anyway, and those that’ll listen won’t stand a chance against the hordes of professional BS “devs” that’ll master AI and talk much prettier than them.
Don’t get into CS unless you’re passionate about the craft. If you’re passionate, you’ll succeed in pretty much regardless of the field.
Recently my friend was trying to get me to apply for a junior dev position. “I don’t have the right skills,” I said. “The biggest project I ever coded was a calculator for my Java final, in college, a decade and a half ago.”
It did not occur to me that showing up without the skills and using a LLM to half ass it was an option!
that s the point of being junior. Then problems show up and they are forcing them to learn to solve them
Poisoning AI with backdoored code is surely a real risk now? I can see this getting quite nasty.