Programming Blockchain with @jimmysong was awesome. It was formatted in this way: Learn, Code, Repeat. Nearly everything we learned we immediately coded afterwards I noticed this format almost forced the information to stick in my brain. List of things learned:
Learned finite fields and elliptic curves. Then coded a python library implementing both. Public key cryptography, mathematical groups, and how to create Bitcoin addresses
An awesome benefit of Segwit that I didn’t know about is that in addition to fixing transaction malleability and increasing transaction throughput, it is also a way to allow smooth future upgrades to Bitcoin.