The single biggest barrier to learning machine learning used to be the two days you spent before writing any machine learning. Install Python, discover you already had three Pythons, choose an environment manager, fight the driver version against the framework version against the toolkit version, and eventually reach a state where a GPU is visible from a Python process. A large number of people who wanted to learn this subject gave up at exactly that point, and there is no way to know how many. This removed that entirely.
You open a link, you write code, there is a GPU. That is genuinely the most democratising thing that has happened to machine learning education, and any criticism I make below is downstream of it being free and working. The ubiquity compounds the benefit. Nearly every course, every library tutorial, every paper with a demo, and every blog post with runnable code provides a notebook that opens here.
Someone learning the field can go from reading about a technique to running it on their own input within a minute, repeatedly, across dozens of sources, without ever configuring anything. That loop is enormously valuable for learning and no local setup can match it. Sharing is the other genuine strength. Sending a colleague a link to a running environment with the code, the outputs and the explanation in one document is a good way to communicate a piece of analysis, and it is much better than sending a script and a list of instructions.
And the paid tiers are reasonably priced. If you need a decent GPU for a few hours a week, this is cheaper and less trouble than any cloud instance you would provision yourself. Now the frustrations, which are real. Sessions end.
You are on a free tier, the runtime disconnects, and everything in memory is gone. Your trained model, your loaded data, your intermediate results. This happens at the least convenient moment and it happens often enough to be a defining feature of the experience. The paid tiers reduce it and do not eliminate it.
Allocation is opaque. What hardware you get on the free tier depends on availability, on your recent usage, and on factors nobody publishes. Two people running the same notebook can get very different performance, and neither is told why. Compute units on the paid tiers are similarly hard to reason about, because different accelerators consume them at very different rates, and working out how far your monthly allowance stretches means doing arithmetic that should be presented to you.
Now the deeper criticism, which is about habits rather than the product. Notebooks encourage a way of working that does not survive contact with real software. Cells run in whatever order you click them, so state accumulates in ways that do not correspond to the document you are reading. A notebook that works perfectly in your session will fail for someone else running it top to bottom, because it depends on a variable defined in a cell you later edited.
That class of bug is genuinely hard to see, because the evidence of your own execution history is invisible in the file. Dependencies are installed with a command at the top of the notebook and are not pinned, so the same notebook runs differently in six months. Code lives in cells rather than in modules, so it cannot be imported, tested or reused. There is no version control worth the name, since the file format diffs badly and the outputs are stored inside it.
None of this matters while you are learning. All of it matters the moment your work is something a colleague depends on or a system runs on a schedule. I have seen production analysis pipelines that were a notebook someone ran manually every Monday, and the trail leading there always starts with somebody learning entirely in this environment and never being shown the alternative. The right use is as an on ramp.
Learn here, because the friction is zero and the friction elsewhere is what stops people. Then, once you know what you are doing, learn a local environment, a proper dependency setup, version control and how to structure code into modules, because that is what the work actually requires. Treating the notebook as the destination rather than the entrance is the mistake, and the environment does nothing to discourage it. My three point six is for a free tool that removed the biggest barrier in the field and taught an enormous number of people, marked down for disconnections and opaque allocation that make it unreliable for anything sustained, and for encouraging a working style that everybody eventually has to unlearn.