En 30 secondes
Berman tries a hands-off coding style inspired by Andrej Karpathy, using Windsurf and voice input to build a login page and Tetris. He then attempts a reinforcement-learning player; the video includes repeated errors, a manual edit and a weak final player.
- 1The experimentBerman tries a hands-off style inspired by Karpathy.
- 2Authentication remains unverifiedA button appears after troubleshooting, but the complete security flow is not tested.
- 3Iteration and manual editsTetris controls need fixes and direct code changes.
- 4A weak trained playerThe agent eventually plays but loses.
À retenir
- Natural-language requests can produce working prototypes, but iteration is still needed.
- A visible login form does not establish a secure authentication implementation.
- The Tetris feature requests required fixes and a manual code edit.
- The first AI player was a random placeholder; the later trained player performed poorly.
- Skipping code review is an experiment for disposable projects, not evidence of production readiness.
Lire le texte remanié, chapitre par chapitre
What is vibe coding?
Berman introduces the experiment and builds a login page.
I explore what Andrej Karpathy called vibe coding: describing what I want and letting an AI write the code, often without inspecting its changes. His example concerned a throwaway project; this experiment does not establish that unreviewed code is appropriate for production.
I use Windsurf, Superwhisper and initially o3-mini to build a login page. The assistant creates a Flask project, and I follow its terminal instructions to set up the environment and run it.
When the environment produces errors, I paste the messages back and accept the proposed changes. A basic username and password screen appears, but seeing a form does not verify that authentication is secure or complete.
I request Google authentication, encounter missing packages and environment issues, and eventually get the app running again. The Google button still does not appear, showing that generating code is not the same as completing the requested feature.
I ask the assistant to fix the missing button and switch to Claude 3.5 Sonnet when I want to share a screenshot. A button appears after further changes, although the page still has a broken image; the video does not validate the complete login flow.
Building Tetris
He adds a preview and controls, then works through bugs.
Next I ask for a Python Tetris game. After installing requirements and starting the program, I verify that a piece can complete a line, then request a preview of the next piece.

The preview is missing on the first run, so I describe the problem and request another fix. The next version shows the preview and also adds a score, which I check by clearing a line.

I add pause and end-game buttons, but their positions overlap the board and the pause cannot initially be reversed. I report the issues and eventually copy and adjust suggested code manually, despite the goal of minimizing direct coding.
Training an AI player
He troubleshoots training and integrates a weak game-playing agent.
I ask for an AI that learns to play. The first result is a random-move placeholder rather than a learning system, so I switch models and ask again. The assistant proposes a deep Q-network using Stable Baselines3.
Training initially fails because of an import issue and then an observation-shape mismatch. I paste the errors back for fixes; after another run, training messages and rewards begin to appear.
After training, the game still has integration problems, including a circular import and a failure to locate the saved model. Further prompting gets the assistant to find the saved file and add an AI play mode.
The agent finally plays, although it performs poorly and loses. I am impressed by the prototype, but the recording also shows troubleshooting, manual edits and incomplete verification rather than a flawless one-prompt build.
Sur la même chaîne
25:50EN
32:20EN
0:22EN
45:08EN
0:32EN
1:02EN