If you're starting to learn ZK or cryptography, getting familiar with a finite field library is important. One that we use extensively in our courses is the galois library for Python. It's excellent for learning.
Combined with another library such as py_ecc, which implements elliptic curves, it's possible to write Groth16 and PLONK from scratch. But it's also very useful for simply experimenting with polynomials, roots of unity, interpolation, NTTs, and many other concepts in finite fields.