New Junior Developers Can’t Actually Code.
-
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.
-
I love asking AI to generate a framework / structure for a project that I then barely use and then realize I shoulda just done it myself
-
Stack Overflow and Google were once the "AI" of the previous generation. "These kids can't code, they just copy what others have done"
-
I've been using (mostly) Claude to help me write an application in a language I'm not experienced with (Rust). Mostly with helping me see what I did wrong with syntax or with the borrow checker. Coming from Java, Python, and C/C++, it's very easy to mismanage memory the exact way Rust requires it.
That being said, any new code that generates for me I end up having to fix 9 times out of 10. So in a weird way I've been learning more about Rust from having to correct code that's been generated by an LLM.
I still think LLMs for the next while will be mostly useful as a hyper-spell checker for code, and not for generating new code. I often find that I would have saved time if I just tackled the problem myself and not tried to reply on an LLM. Although sometimes an LLM can give me an idea on how to solve a problem.
-
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.
-
Same. It can generate credible-looking code, but I don't find it very useful. Here's what I've tried:
- describe a function - takes longer to read the explanation than grok the code
- generate tests - hallucinates arguments, doesn't do proper boundary checks, etc
- looking up docs - mostly useful to find search terms for the real docs
The second was kind of useful since it provided the structure, but I still replaced 90% of it.
I'm still messing with it, but beyond solving "blank page syndrome," it's not that great. And for that, I mostly just copy something from elsewhere in the project anyway, which is often faster than going to the LLM.
-
Agreed. I was hired for my first job due to an impressive demo, and making that demo became my job. I got there, but I produced a ton of tech debt in the process.
-
Really? My kids are hitting the rules hard. In 1st grade, they're learning pronunciation rules I never learned (that's phonics, right?). My 2nd grader is reading the 4th Harry Potter book, and my 5th grader finished the whole series in 3rd grade and is reading at a 7th or 8th grade level.
I did teach them to read before kindergarten (just used a book for 2-3 months of 10 min lessons), but that's it, everything else is school and personal interest. They can both type reasonably well because they use the Minecraft console and chat. They're great at puzzles, and my 5th grader beat me at chess (I tried a wonky opening, and he punished me), which they learned at school (extra curricular, but run by a teacher).
We love our charter school, though I don't think it's that different from the public school.
-
To be fair, YAML sucks. It's a config language that someone thought should cover everything, but excel at nothing.
Just use TOML, JSON, or old-school INI. YAML will just give you an aneurism. Use the best tool for the job, which is often not the prettiest one.
Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.
Antoine de Saint-Exupéry
Kids these days with their fancy stuff, you don't need all that to write good software. YAML is the quintessential "jack of all trades, master of none" nonsense. It's a config file, just make it easy to parse and document how to edit it. That's it.
-
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".
-
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.
-
I let the GPTs do that for me, without worrying that I won’t learn to code YAML for Ansible.
And this is the perfect use case. There's a good chance someone has done exactly what you want, and AI can regurgitate that for you.
That's not true of any interesting software project though.
FAIL some code reviews on corner cases. Fail some reviews on ISO27002 and supply chain and role sep. Fail some deployments when they’re using dev tools in prod. And use them all as teachable moments.
Fortunately, I work at an org that does this. It turns out that if our product breaks in prod, our customers could lose millions, which means they could go to a competitor. We build software to satisfy regulators, regulators that have the power to shut down everything if the ts aren't crossed just so.
Maybe that's the problem, maybe the stakes are low enough that quality isn't important anymore. Idk, what I do know is that I go hard on reviews.
-
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.
-
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.
-
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.
-
Hell, I would copy the question sometimes
-
It's like useful information grows as fruit from trees in a digital forest we call the Internet. However, the fruit spoils over time (becomes less relevant) and requires fertile soil (educated people being online) that can be eroded away (not investing in education or infrastructure) or paved over (intellectual property law). LLMs are like processed food created in factories that lack key characteristics of more nutritious fresh ingredients you can find at a farmer's market. Sure, you can feed more people (provide faster answers to questions) by growing a monocrop (training your LLM on a handful of generous people who publish under Creative Commons licenses like CC BY-SA on Stack Overflow), but you also risk a plague destroying your industry like how the Panama disease fungus destroyed nearly all Gros Michel banana farming (companies firing those generous software developers who “waste time” by volunteering to communities like Stack Overflow and replacing them with LLMs).
There's some solar punk ethical fusion of LLMs and sustainable cultivation of high quality information, but we're definitely not there yet.
-
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.
-
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.