New Junior Developers Can’t Actually Code.
-
This post did not contain any content.
They never could
-
you know, the show Goblin Slayer had a scene where the older wizard was teaching the younger wizard about magic and the older one said something that stuck with me. Keep in mind I'm paraphrasing here.
young wizards often believe that they are magic casters because they can cast magic, and that's all they have to do. they don't realize that a wizard is supposed to be solving problems for their party with magic.
I think this is similar to the new and old devs of today. Old devs are solving problems with software, new devs are writing software to write software. it's pretty apparent with the current state of node and python package libraries in contrast to more matured ruby and java libraries.
doesn't matter IMO, software development is dying because the younger devs don't want to solve the problems anyway and just want to rewrite things in new languages or frameworks. they think they're solving the problems, but they're just trading them for different ones.
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.
-
This post did not contain any content.
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.
-
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.
-
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.
Well said. Some of the most talented devs I know use Stack Overflow. It depends on how you use it.
-
Of course, there are different opinions, but here's my take (as a Swede, but not an expert in politics/history):
The issues didn't start during the last decade. In the 90's, it was politically decided that schools wouldn't be nearly as centrally managed by the state as they had been, instead municipalities would handle most school-related politics and administration locally. It was also decided that parents are allowed to choose more freely where to send their kids. This weakened public schools. Moreover, legislation was introduced (in the 00's I think but I'm not sure) that allows for-profit private schools, which historically AFAIK had been prohibited.
Parents usually don't have to pay anything extra to send their kids to private schools, and for each private school pupil more tax money flows into the private instead of public schools. The private schools are of course incentivized to attract children from families that are well off, since they tend to perform better (boosting the school's score and thus reputation), have parents that can e.g. drive them from a longer distance, and just generally have less issues and so cost and complain less. For instance, it's been reported that some private schools refuse (openly or through loopholes) e.g. special needs pupils since the tax money paid to the school for them isn't worth the cost (and "bad PR", no doubt) of actually giving them a proper education.
Sweden has also had a high rate of immigration the last decades. Immigrant parents understandably tend to not be as savvy about the school system and have less time/resources for getting their kids to "nicer" schools further away. Immigrant kids also tend to require more attention, both due to needing to learn Swedish and because psychological problems, e.g PTSD, are more common among many immigrant groups. Also I haven't seen any studies on this, but IMO the private schools' advertisements (on billboards etc) tend to be very geared towards "white" kids/parents with no immigrant background.
In 2007 a tax benefit for "homework help" among other things was introduced, halving the price parents have to pay for private tutors at home. This again benefits families that are well off and lets private companies in education siphon tax money.
All this means a cycle of segregation seen in so many countries. Public schools are burdened with students that require more resources, while private schools do everything they can to snatch up low-maintenance pupils. This makes private schools seem to perform better and gives public schools bad reputations. Racism and class discrimination also plays into all this of course.
It also doesn't help that teachers' salaries and social standing have decreased, partly due to the same general pattern.
Thanks for the reply, i've seen those patterns as well, kinda sad.
-
I don't think phonics are the most critical part of why the kids can't read.
It's proven that people who read primarily books and documents read thoroughly, line by line and with understanding, while those that primarily read from screens (such as social media) skip and skim to find certain keywords. This makes reading books (such as documentation) hard for those used to screens from a young age and some believe may be one of the driving forces behind the collapse in reading amongst young people.
If you're used to the skip & skim style of reading, you will often miss details, which makes finding a solution in a manual infinitely frustrating.
Skip & skim could also stem from the fact that this how a mind used to everpresent ads reads. It's like an adblocker built into your brain.
-
This post did not contain any content.
Has anyone else clicked the chat.com url in the article …
-
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 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.
-
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.
Most hiring managers are looking for unicorns
-
I don't think phonics are the most critical part of why the kids can't read.
It's proven that people who read primarily books and documents read thoroughly, line by line and with understanding, while those that primarily read from screens (such as social media) skip and skim to find certain keywords. This makes reading books (such as documentation) hard for those used to screens from a young age and some believe may be one of the driving forces behind the collapse in reading amongst young people.
If you're used to the skip & skim style of reading, you will often miss details, which makes finding a solution in a manual infinitely frustrating.
It's not that phonics is integral, but rather if reading is a guessing game that's just one more barrier to reading, and they read less, and what they do read they skim over and potentially ignore foreign words
-
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.
-
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.