New Junior Developers Can’t Actually Code.
-
How is it more efficient than reading a static page? The kids can't read.
They weren't taught phonics, they were taught to guess the and with context clues. It's called "whole language" or "balanced reading"Holy shit just like an LLM
-
I'm a little defeatist about it. I saw with my own 3 eyes how a junior asked ChatGPT how to insert something into an
std::unordered_map
. I tell them about cppreference. The little shit tells me "Sorry unc, ChatGPT is objectively more efficient". I almost blew a fucking gasket, mainly cuz I'm not that god damn old. I don't care how much you try to convince me that LLMs are efficient, there is no shot they are more efficient than opening a static page with all the info you would ever need. Not even considering energy efficiency. Utility aside, the damage we have dealt to developing minds is irreversible. We have convinced them that thought is optional. This is gonna bite us in the ass. Hard.I work at a software development school, and ChatGPT does a lot of damage here too. We try to teach that using it as a tool to help learning is different from using it as a "full project code generator", but the speed advantages it provides makes it irresistible from many students' perspective. I've lost many students last year because they couldn't pass a simple code exam (think FizzBuzz difficulty level) because they had no access to internet, and had to code in Emacs. We also can't block access to it because it starts an endless game where they always find a way to access it.
-
This post did not contain any content.
As someone who has interviewed candidates for developer jobs for over a decade: this sounds like “in my day everything was better”.
Yes, there are plenty of candidates who can’t explain the piece of code they copied from Copilot. But guess what? A few years ago there were plenty of candidates who couldn’t explain the code they copied from StackOverflow. And before that, there were those who failed at the basic programming test we gave them.
We don’t hire those people. We hire the ones who use the tools at their disposal and also show they understand what they’re doing. The tools change, the requirements do not.
-
This post did not contain any content.
Even before LLMs I saw junior developers w/o parent supervision do things which were so wrong, anybody self taught with just a few weeks of experience wouldn't do them. LLMs made all of this so much worse, and by now I see people with senior titles which I wouldn't hire as student assistants, which are unable to pull of a fucking CRUD service w/o totally blowing it.
By now, I am convinced it is a race to the bottom. Most software companies don't understand shit about software development. The whole corporate system is strongly incentivized for churning out lots of trivial code (SCRUM, MicroServices, etc.) and most people in the system profit:
- Your manager? More juniors and more code means higher headcount e.g. more importance/power for the manager
- Your company? Higher headcount for projects and so called architects means more billable hours
- Juniors which couldn't code if their life depended on it? Nice relaxed jobs for the intellectual lazy with mostly above average working conditions
- Overall for companies: Juniors are easy to replace/fire and control, another win for them.
- Hiring all the time juniors is actually one of the signs for startups, that they are making progress/growing, which will be part of their evaluation
- Don't get me started on SCRUM and just creating tickets, so that tickets can be processed and we get traction/our burn down chart shows progress.
It goes on and on.
Worst thing is, having a small team of really good developers is actually BAD for companies/managers/start ups. A lot of times governments/big companies will not deal with small companies, because they might be out of business soon etc.
I would be very happy for hints/tips of companies which have hard problems, appreciate seniors/good technical knowledge and pay decently.
-
I work at a software development school, and ChatGPT does a lot of damage here too. We try to teach that using it as a tool to help learning is different from using it as a "full project code generator", but the speed advantages it provides makes it irresistible from many students' perspective. I've lost many students last year because they couldn't pass a simple code exam (think FizzBuzz difficulty level) because they had no access to internet, and had to code in Emacs. We also can't block access to it because it starts an endless game where they always find a way to access it.
Damn, I forgot about the teaching aspect of programming. Must be hard. I can't blame students for taking shortcuts when they're almost assuredly swamped with other classwork and sleep-deprived, but still. This is where my defeatist comment comes in, because I genuinely think LLMs are here to stay. Like autocomplete, but dumber. Just gotta have students recognize when ChatGPT hallucinates solutions, I guess.
-
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…
-
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.
-
I'm forced to use Copilot at work and as far as code completion goes, it gets it right 10-15% of the times... the rest of the time it just suggests random — credible-looking — noise or hallucinates variables and shit.
Forced to use copilot? Wtf?
I would quit, immediately.
-
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.
Sounds nice? What type of place you work at? I'm guess not a big corp
-
As someone who has interviewed candidates for developer jobs for over a decade: this sounds like “in my day everything was better”.
Yes, there are plenty of candidates who can’t explain the piece of code they copied from Copilot. But guess what? A few years ago there were plenty of candidates who couldn’t explain the code they copied from StackOverflow. And before that, there were those who failed at the basic programming test we gave them.
We don’t hire those people. We hire the ones who use the tools at their disposal and also show they understand what they’re doing. The tools change, the requirements do not.
I think that LLMs just made it easier for people who want to know but not learn to know. Reading all those posts all over the internet required you to understand what you pasted together if you wanted it to work (not always but the barr was higher). With ChatGPT, you can just throw errors at it until you have the code you want.
While the requirements never changed, the tools sure did and they made it a lot easier to not understand.
-
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 are want to learn and create solutions.
-
What are you guys working on where chatgpt can figure it out? Honestly, I haven't been able to get a scrap of working code beyond a trivial example out of that thing or any other LLM.
ChatGPT is perfect for learning Delphi.
-
Yeah those job hoppers are the worst. You can always tell right away what kind of person those are. I've had to work with a "senior" dev who had 15 years of experience and to be honest he sucked at his job. He couldn't do simple tasks, didn't think before he started writing code and often got stuck asking other people for help. But he got paid big bucks, because all he did his entire career was work somewhere for 2-3 years and then job hop and trade up. By the time the company figured out the dude was useless, he went on to the next company.
Such a shitty attitude, which is a shame because he was a good dude otherwise. I got along with him on a personal level. And honestly good on him for making the most he can, fuck the company. But I personally couldn't do that, I take pride in my work.
Maybe if people were paid more it wouldn't be such an issue.
-
I'm a little defeatist about it. I saw with my own 3 eyes how a junior asked ChatGPT how to insert something into an
std::unordered_map
. I tell them about cppreference. The little shit tells me "Sorry unc, ChatGPT is objectively more efficient". I almost blew a fucking gasket, mainly cuz I'm not that god damn old. I don't care how much you try to convince me that LLMs are efficient, there is no shot they are more efficient than opening a static page with all the info you would ever need. Not even considering energy efficiency. Utility aside, the damage we have dealt to developing minds is irreversible. We have convinced them that thought is optional. This is gonna bite us in the ass. Hard.Make the junior put it to the test John Henry style. You code something while they use gpt and see who comes up with a working version first
-
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.
-
This post did not contain any content.
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 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.
-
This post did not contain any content.
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.
-
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.
-
This post did not contain any content.
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.