Comment by Gigachad

8 days ago

We are interviewing for a software dev role and we made the first round in person to prevent cheating. The gap between people who learned pre ai vs post is immense. I had a dev with supposedly 3 years experience and a degree in software who wouldn't have been able to write fizzbuzz without AI.

Can’t say you’re wrong but the last anecdote describes many I’ve had to review for jobs long before LLMs. Fizzbuzz is a classic thing that shockingly many devs genuinely cannot do, even at home.

  • Yeah, I've interviewed people like this 15 years ago. Degrees and experience mean nothing in this field. The best predictor I found was personal passion projects. Let them get as nerdy as possible, then you will see pretty quickly where their skills are at and what their limits are. And you will immediately filter out people who just studied CS because they heard you can make good money.

    • Completely agree with this, leetcode has become such a business now of memorization for interviews it’s useless to know if someone memorized a solution or not.

      1 reply →

    • Maybe. There are certainly people in all fields who are book smart and did well in classes but are useless at actually practicing their field (not to mention people who cheated in school and got away with it and aren't even that), and it is worth filtering them out. But I think it is weird that CS expects good workers to have these passion projects. Do we expect civil engineers to build bridges in their back yard on the weekends? Can't someone just be good at their job and have other interests outside it?

      2 replies →

    • I agree, however there are so many interviewers who will still treat that as some softball criteria and insist that unless you "prepare" for an interview by memorizing leetcode you are 100% a faker and liar.

      1 reply →

  • Something that is for sure new is the AI interview cheating tools which listen in on the call and provide answers in an overlay invisible to screen sharing. The only way to deal with it would either be invasive spyware on the applicants computer or asking them to do the interview face to face.

    • Spyware wouldn't help at all because you could just put the AI between the computer and the monitor, for example, or use a VM.

    • A relatively low tech solution could be to give them 2 separate conferencing links, ask them to join each one from a different device, and have the secondary device point the camera and the screen of the primary device.

      2 replies →

  • Why is it important that a dev can’t do fizzbuzz without ai?

    If they can ship code that matches a spec, why does it matter if they’re using ai or not?

    Genuinely curious.

    • > If they can ship code that matches a spec, why does it matter if they’re using ai or not?

      I am perfectly capable of writing specs, and feeding them to 3 separate copies of Claude Code all by myself. Then I task switch between the tmux windows based on voice messages from the pack of Claudes. This workflow is fine for some things, and deeply awful for others.

      Basically, if a developer is just going to take my spec and hand it to Claude Code, then they're providing zero value. I could do that myself, and frequently do.

      The actual bottleneck is people who can notice, "The god object is crumbling under the weight of managing 6 separate concerns with insufficient abstraction." Or "Claude has created 5 duplicate frameworks for deploying the app on Docker. We need to simplify this down to 1 or we're in hell." I will happy fight to hire people who can do the latter work. But those people can all solve fizzbuzz in their sleep.

      People who just "ship code that matches a spec" without understanding the technical details are providing close to zero value right now.

      There is an interesting niche for people with deep knowledge of customer workflows who can prompt Claude Code. These people can't build finished products using Claude. But they can iterate rapidly on designs until they find a hit. Which we can then fix using people with deeper engineering knowledge and taste.

      But if you're not bringing either deep customer knowledge or actual engineering knowledge, you're not adding much these days.

      2 replies →

    • Fizzbuzz is such an incredibly simple problem if you can’t do it I struggle to see how you’d be able to complete any task that requires very basic reasoning and very basic coding knowledge. And if an AI system can do those parts, what am I getting for spending tens of thousands of pounds per year by hiring a person who can’t? Wouldn’t I just tag codex on the tickets?

      I’m not talking about gotcha level stuff here where the first time it didn’t compile because of a bracket or anything, or even first time wrong. They couldn’t do Fizzbuzz in a language of their choice, at all.

      Those that could were always annoyed at having to do such things because how could someone coming for a contract position not be able to do this? Without seeing what a filter it really was.

      7 replies →

    • > If they can ship code that matches a spec, why does it matter if they’re using ai or not?

      The inability to write fizzbuzz strongly implies their inability to understand what they've shipped. Review is some significant portion of the job. Understanding of the product is also part of the job.

      Specs are also in a sense, scaled down, fuzzy, natural language descriptions of a feature. The fuzziness is the source of a bugs, or at least a mismatch between the actual desired feature and what was written down at spec writing time. As such, just matching a spec is just the bare minimum that a good dev should be doing. They should be understanding what the spec is _not_ saying, understanding holes in their implementation, how their implementation enables or hinders the next feature and the next, next feature, etc. I don't think any of that is possible without understanding what was actually implemented.

    • For the same reason it's important your mechanic can identify which parts of a car are the wheel.

      Who cares as long as the car is fixed, right? As long as the mechanic can Chinese-room his way to a working car, why does it matter how much of it he actually understands?

      And why hire the mechanic instead of hiring the Chinese room?

    • First: FizzBuzz is a test to know if you understand the most basic constructs of programming. The kind of thing you learn in the first week of CS101. I forgot what it was, and when I looked at the problem I knew the answer.

      More broadly: In the short/medium term, we still need humans who have the skills to understand software largely on their own. We will always need those who understand software engineering and architecture. Perhaps in 25 years LLMs will be so good that learning Python by hand will be like learning assembly today. But not yet.

      The field is not ready for new practitioners to be know-nothing Prompt engineers. If we do that, we cut the legs out from under the education pipeline for programming.

    • If they’re not a value add over the base AI, they aren’t worth hiring over just using the base AI.

    • To understand the code they are shipping requires some level of proficiency. Their inability to do fizzbuzz without AI calls that into question.

    • If you can’t even write a for loop, how can you verify the ai code you generated isn’t going to wipe the prod database?

    • It’s about deeply understanding what you’re doing. Like as a kid before you knew how to ride a bike, you could sit on a bike and peddling, but until it “clicked” you couldn’t balance and keep going forward stable. Fizzbuzz tests your ability to reason through a problem that seems simple on its face, but is easy to get wrong and/or overthink.

    • How will you know that it produced correct code if you don’t know how to write it yourself?

    • I can see this perspective, but FizzBuzz is such a low bar that so many can pass, I'd greatly prefer to hire someone that can ship code that matches a spec do this challenge.

    • If the job does not require a person to be able to fizzbuzz, it probably doesn't require a person at all.

> I had a dev with supposedly 3 years experience and a degree in software who wouldn't have been able to write fizzbuzz without AI.

If you remove the "without AI" and the end, I've been hearing similar anecdotes about fizzbuzz for years (isn't the whole point of fizzbuzz to filter out those candidates?)

  • Because "the next generation is ruined" is always a popular sentiment. It has been with us for at least two thousand years, and it surely won't go away in our lifetime.

    When this AI era's devs grow older they'll complain the newer generation can't even vide code too.

    • ....Or you know it's actually true some of the times. Standardized test scores have bombed hard across the US in the last decade due to smartphones being wildly present in schools without control. Kids brains are legitimately rotted by a machines running software maximized to destroy the attention centers of their brains for life.

      AI is just the icing on the cake. These kids are so cooked with developmentally stunted brains that they are forced to use AI as a crutch to function.

    • I remember when everyone bemoaned the kids not knowing assembly language. How can anyone understand software if you don’t know assembly?

      “Kids these days don’t work as hard / know as much / value the important things” is as tired as it is universal.

      11 replies →

  • While this is true, it seems undeniable that if you use AI to do everything for you, you will never learn the skills. I'm seeing a massive amount of developers submitting stuff for review and admitting they have no idea how it works and they just generated it.

  • Some percentage of developers before AI were unable to code fizzbuzz. Some significantly higher percentage of them are not able to do so now.

    Saying there have always been bad developers doesn't change that there's a higher ratio of them now.

    No stats to back this up. Just interviews I've done recently and historically.

I developed for 15 years. I don’t think I can do with AI anymore. Why would I even want to do that? It’s like telling a car driver to build an engine.

  • It's more like asking a driver the laws for when traffic lights are out. It's not something that comes up often, but it's not completely outside the scope of the task either (I arguably don't even drive a car that has an engine).

  • As a car driver, you should understand a little about how your car works. What if you get a flat tire? At the very least, you should know not to drive on that flat tire.

    Software is full of leaky abstractions

I first did fizz buzz about 10 years ago fresh out of college. Now, after 10 years in full stack and fully vibe coding, I forgot basic python syntax. An interview like yours would have false positives if you are checking for syntax because well, its like looking up spelling, I just ask the AI for the syntax inline.

  • > I forgot basic python syntax

    If you cannot write "basic syntax" for any language then you are not a programmer, and certainly not a software engineer? This is not a value judgement, it's ok (probably good tbh) to not be a programmer. But you are wasting everyone's time by interviewing for a programming position in this case.

    • Personally, I forget syntax all the time. There's always a warm up period after I switch languages, and it takes me longer to be start writing good, idiomatic code.

      Like sure, I can probably write some python, but will it be pythonic? I might still be Java-minded for a while, trying to OOP my way into solutions.

      Earlier today I needed to write some PHP and couldn't remember if it used length, count, or size. I had to look it up. I've been doing this for 20 years.

      3 replies →

    • Not true. I can clearly program, have been programming and remembered syntax for about 10 years, and during that 10 years saw the rise and application of tools like IDE and AI improving and accelerating the experience.

      As I have been using the AI natural language-as-an-interface coding tools I have gone into the IDE to actually write code a lot less. I read more; and reading is not the same skill as writing. I couldn't remember the syntax as much and by what I mean is some of the simple things like in python to iterate over an object is it an iteritems() or is there a dot between or things like that, and can I do a for index, key in array, and do I need to do like array() to do that. And this is because I always did used to code between languages and alternate fast between javascript, typescript and python and earlier in my career I used to have to remember this (because googling coudl take too long), over time and now I can easily have autocomplete and even AI llm tell me, so I don't remember or waste my energy remembering what the exact syntax is. In my head it's just "I know I need to loop through this, do it in the language Python wants to hear" and why would I bother remembering? so naturally I've forgotten the simple things.

      I could clearly, definitely do the programming position, the only ones wasting time IMO are the ones checking if I can remember verbatim things like "spelling" when we all live in a day and age of spellcheck and tools. No one wastes time trying to remember for all words because it's silly. Or maybe encyclopedias and trivia games are the better analogy, sure it's a party trick, but how does it help you do the job better? it arguably does not, and the ones who have not learned to adapt their interviews to the tools are the ones wasting time.

  • Which part of the syntax for fizzbuzz can you not recall from memory? The for loop? Printing to std out? The modulus operator?

    There’s almost nothing to forget? I’m just struggling to understand.

  • You would not have been a good fit for this position in that case.

    • Maybe I would have done well to define "basic".

      If I can do well beyond the requirements of the work position, and the issue is how they are testing my fit is not an accurate representation of the work and tools and environment I'd have access to while doing the work, then its not about "fitting" the position but instead an indication of a poor job fit process.

I wonder if you’re filtering for the right things.

We usually hire for problem solving capabilities and not so much for technical know-how.

That’s at least how I read your comment.

  • Ultimately in a software development role you need both technical know how and problem solving capabilities.

    This situation in particular was a React role so there is an expectation that when you list React as one of your skills on your resume then you know at least the basics of state, the common hooks, the difference between a reference to a value vs the value itself.

    These days you can do a surprising amount with AI without knowing what you are doing, but if you don't have any clue how things work you'll very quickly run in to problems you can't prompt away.

  • Isn't wiring coding solving a problem? If the candidate can't do that then even if they use AI for coding how are they going to review the code properly?

Meh. Before AI I've had "senior" colleagues with 10 and 8 years experience each, doing pair programming for 2 days straight, and in that time they hadn't managed to checkout a new branch in git.

It's not even that they got distracted, they sat there trying, for 2 whole days, with concerned colleagues giving them hints like "have you tried checkout -b"... They didn't manage!

How the hell do you work for a decade in this business without learning even the most basic git commands? Or at least how to look them up? Or how to use a gui?

Incompetent devs is not a new thing.

  • It is ok to work somewhere that does not use git. But how do you not figure out how to do the basics given 30 mins and an Internet connection?

Don't worry, i never thought I would see someone unable to write fizzbuzz, but it happened 9 years ago.

Also how many people work with linux and can't tell you what 'ls -alh' is doing is staggering (lets ignore the h, even al people struggle hard).

People working with docker for YEARS and don't even understand how docker actually works (cgroups)...

Interviewing was always a bag of emotions in sense of "holy shit my job is save your years to come" and "srsly? how? How do you still have a job?"

Isn’t this like interviewing accountants but prohibiting use of calculators or spreadsheets?

I don’t care what someone can do without the tools of their trade, I care deeply about their quality of work when using tools.

  • We would still expect an accountant to know the formula to arrive at the expected result if they did not have a calculator at hand

  • You absolutely need to have some basic level of abilities if you are going to be operating AI coding tools for software that is going to have paying users.... I use these tools very very heavily I'm not against them at all and I don't scrutinize every single line of code that they write but it is very often that I catch it doing some brain dead stuff and if I didn't have a decade plus of experience I wouldn't know that it was brain dead.

    • I think we're rediscovering management from first principles. The main selling point of AI is that it writes code faster than you could. Checking it line by line undoes most of that benefit. In the same vein, there's no real benefit to leading a team if you plan on supervising every task.

      But here's the thing: for humans, this is manageable because we've come up with a number of mechanisms to select for dependable workers and to compel them to behave (carrot and stick: bonuses if you do well, prison if you do something evil). For LLMs, we have none of that. If it deletes your production database, what are you going to do? Have it write an apology letter? I've seen people do that.

      So I think that your answer - that you'll lean on your expertise - is not sufficient. If there are no meaningful consequences and no predictability, we probably need to have stronger constraints around input, output, and the actions available to agents.

      7 replies →

  • Calculators and spreadsheets cannot autonomously create a double-entry bookkeeping system for a small business and prepare their taxes. AI can. Poorly, but it can.

    Everybody knows calculators and spreadsheets are adjuncts to skill. Too many people believe AI is the skill itself, and that learning the skill is unnecessary.