Are No-Internet Coding Assessments Still Testing the Right Thing?

questions nobody thought to ask

I recently started getting back into LeetCode after not seriously touching it for a couple of years.

Something surprised me. A lot of the questions that used to feel difficult actually seem easier now. Not necessarily because I became better at LeetCode, but because a few years of working as a software engineer changed how I look at problems.

Breaking a problem down, thinking about edge cases, choosing the right data structure, spotting where something can go wrong. Those parts feel much more natural now.

The annoying part is that I sometimes know exactly what I want to do, but I can't remember the syntax to do it.

How do I initialise this collection again? What was the C# method for this? Does Dictionary have this function or am I remembering something from JavaScript? What is the exact LINQ syntax?

These are usually things I would resolve in seconds at work.

Except in a coding assessment with no internet access, suddenly they matter a lot.

Are we testing programming or memory?

This got me thinking about whether completely offline coding assessments are still a good way of measuring developer capability.

Historically, I can understand the idea. Remove Google, Stack Overflow, documentation, and everything else, then see whether the candidate can actually solve the problem themselves.

But modern software development doesn't really work like that anymore.

Even before AI, developers constantly used documentation, IDE autocomplete, Stack Overflow, GitHub issues, and search engines. Nobody realistically remembers every API, library function, command, and piece of syntax they use.

Now we also have tools like ChatGPT, Claude, Copilot, and coding agents.

You could argue that AI has caused cognitive offloading, and I think that's probably true to some extent. There are definitely things I used to remember that I now immediately ask an AI about.

But cognitive offloading isn't necessarily a bad thing.

I don't need to spend as much mental capacity remembering syntax, so I can spend more of it thinking about architecture, debugging, requirements, edge cases, or how different parts of a system should interact.

There is also simply a limit to how much one person can remember.

As our tools get better, the amount of software one developer can understand and build keeps increasing. Expecting someone to simultaneously retain every low-level detail of everything they work with feels increasingly unrealistic.

The assessment probably needs to evolve too

I don't think this means coding assessments are useless.

A developer should still understand fundamentals. If someone cannot explain why they chose a hash map, reason about complexity, debug their own code, or work through a problem without blindly accepting an AI-generated answer, that is a real problem.

But there is a difference between testing whether someone understands programming and testing whether they remember that the C# method they wanted was called TryGetValue.

Maybe the better assessment isn't "here is a blank editor with no internet, good luck."

Give candidates access to language documentation. Give them autocomplete. Maybe even give them controlled access to AI, then evaluate how they use it.

Can they recognise a wrong answer? Can they explain the generated code? Can they adapt it when the requirements change? Can they debug something that looks correct but isn't?

Those increasingly feel like more realistic tests of modern software engineering.

I'm still going to grind LeetCode because passing interviews means playing by the rules that currently exist.

But after coming back to it, I'm starting to wonder whether some of those rules are measuring the skills we actually care about anymore.