I never understood the point of games that emulate the programming experience. Whenever I play them I feel like I'm wasting my time and I could be making something real.
You're absolutely right, it is extremely hard to emulate the programming experience via such games. If you break down the skills you need in most (with obvious caveats) programming related jobs - reading others' code, explaining your code to others, designing, documenting, brainstorming, breaking down problems, etc, etc, it is difficult to train for those. In the abstract, it makes sense to practice those skills since for many programmers there isn't anything exciting happening day-to-day, and there is a lot of grunt work maintaining existing code bases.
In most physical fields (athletics being an easy example) there is an amazing amount of carry-over from training into performance. Training being where you build up skills and performance being when you apply said learned skill to the performance. But in more abstract and cognition-heavy fields its muddy and vague.
This is where modding scenes shine, you learn a language because you wanna edit a game. My IT career comes entirely from wanting to run my own private WoW server, the open-source ones were written in C++ so I started with that, might not have been the best first language but at least it was something. Now I work with DevOps.
I did manage to run a server with about 140 peak online simultaneously where the USP was a unique PvP experience with cross-faction battlegrounds (to my knowledge my implementation was the first open source one), respawns in FFA areas and such for classic (1.12.1) WoW.
None of this was ever really "real", but it taught me a fair deal about both computers, programming, running a community and life in general.
The open-source project for running WoW servers I used was "cmangos"(gh).
I've played a couple of these games (Opus Magnum, EXAPUNKS). What I liked about them is that they distill the experience of software engineering to "just the fun problem solving" part.
In these games, you don't write RFC, set up CI for your project, do code reviews or battle old dependencies. It's just you, a clear goal and all the right tools to reach it - somewhat similar to assembling Lego (or Ikea furniture) but with the fun of problem solving added.
Making something real would definitely net you a more satisfying end result, but maybe wouldn't be as entertaining. Obviously this depends a lot on what you find fun in programming and how smooth your real projects go!
If an exercise kit is well done, it condenses experience. Think of a mathematics exercise book - gradual progress from basics to limit revealing tricks and consolidating artfulness exercise by exercise. It's doable.
Also, I don't particularly love the act of writing code itself, I like the results (problems getting solved or fun things happening) of which there are none in most of these games.
Interestingly it seems it's the exact opposite for games simulating other kinds of jobs. I hate driving, I do it to get somewhere and nothing else. But trucking simulators? Endless fun and relaxation. Same thing with chopping onions, which I only do to make a nice meal. But in a burger joint simulator? I'll gladly slice tomatoes for two hours!
Zachtronics games don't emulate the horror of the ACTUAL programming experience. They distill away a ton of the most tedious, frustrating aspects (and the just-less-relevant-to-most-programmers'-interests ones, like UI design) and let you focus on the funnest parts: system design and optimization.
In fact, I would argue there is no more efficient, effective, or pleasurable way to practice system design skills specifically than games like Factorio, Shapez.io, Mindustry, and the Zachtronics catalog