This subject area is something that I have found needs intuition, luck (aka other's solutions) and visualisation for me to process the deeper elements. I found reading Gleik's book first, then Sayama (who also supplies useful Python code) a nice preparatory. Of course, the assumption of strong LA and Calculus is taken as read. Writing code helps make clear descriptions that seem, but are not, concretised in one's mind. The code is made available to use in both script and Jupyter notebooks. There is also some other code I modified from Sayama. I don't like the animation he uses and so rewrote for FuncAnimation in matplotlib. I like scripts for specific tasks for a lot of reasons, but in this case for the reason one can create individualised notebooks if you want using the %load
magic.
Of all of the code within, my favourite is the beautiful mayavi animation of the Lorenz system.