Personally I think that with anything moving along at the speed Jeremy does in part 2, that you should be treating it as a uni lecture, ie: it’s a guide for what you need to go away and teach yourself at a slower speed. He does say a couple of times that he’s trying to cram in enough to keep you busy for months, so don’t expect to watch the videos and understand everything at the end.
For each part I’d go off on separate tangents. Once you’ve got a basic working library you can look at the object model from a software development point of view and see if you can make that better. Can you design a better callback/hook system? Can you come up with a better way of “doing data” than dataloaders/databunches etc. You may or may not end up coming to the same conclusions as Jeremy and Sylvain but you’ll learn some stuff along the way about other ways of doing things and why they made the choices they did and you’ll probably end up learning stuff which will be useful to you in the future. You may come up with some more efficient or easier for the end programmer.
Go off in directions which interest you. If you’re good with plotting and you want to go and implement some of the stuff they’re got in tensorboard, do it. If you you’ve seen something which looks sketchy, read some papers about better ways of doing it and try them.
I agree with what you say about running J’s code vs doing it yourself, but don’t just run his code. At the start of the course I was cutting and pasting his stuff across to mine bit by bit, then running it, kicking it, changing params, reading pytorch docs, articles about the maths etc, then moving on to the next function. If you don’t end up understanding this stuff all the way down then IMO there’s very little point to part 2.