If you only learn to program in Jupyter notebooks, it’s possible that you’ll develop bad coding practices.
It’s somewhat counterintuitive to object oriented programming and can discourage OOP practices.
Most jupyter notebooks and their output are not easily reproducible. Even if you don’t have cells that use randomization, if the original creator only ran some cell a few times and then just kept the state without running it in subsequent runs, the next person who runs it won’t be able to reproduce it running it from scratch.
You may run a notebook always skipping a cell, while the next person to run it doesn’t skip that cell. You’ll end up with different output.
Cells executed in different orders give you different output. You can override the linear run of cells in jupyter.