I, like many people, found my way into Data Science circuitously via the physical engineering fields (Naval Architecture & Ocean Engineering in particular). As a result, I never took any formal Computer Science courses. As my love for computing and programming has grown over the years, I have always wanted to learn more about how computers work, and specifically about how a dynamic language like Python is actually implemented at its core.
While I know not everyone wants to dive so deeply into the design of languages itself, I found Crafting Interpreters to be an amazing resource. The author, Robert Nystrom, is the creator of the Dart programming language at Google. While the language developed throughout the book is unique to the book as a learning language, its implementation is quite similar to CPython, at least at the foundational level. If you work through the book, you implement two types of interpreters, the latter being a bytecode interpreter written in C (just like CPython).
I cannot recommend this book highly enough for anyone who is interested in diving deeper into the topic of how programming languages are implemented. And if you are curious in particular about CPython itself, Anthony Shaw’s book CPython Internals is also fantastic, albeit more about the practical implementation of CPython than about ground-up implementation.