I have about two years of Python experience and regularly use pygame-ce for the games I build. I've started reading through its source code because I enjoy using it, but much of it is written in C, and I only have a little C++ experience. When I find an issue, I can sometimes understand what's going wrong, but I often have no idea how to begin fixing it. Is studying and potentially contributing to a project like this a reasonable way to learn, or am I getting in over my head?
3 Answers
Your own small games can also be useful learning material. Making their source available lets you revisit your decisions, improve the code over time, and gives other learners something approachable to study. You don’t need to begin by tackling the hardest part of a large library; build confidence with projects you understand, then take on increasingly unfamiliar code.
This can be a very useful way to learn, but don’t expect to understand an entire mature project immediately. Work through tutorials or smaller projects that explain not only how to build something, but why the design decisions were made. Keep repeating the basics while gradually expanding into testing, debugging, memory management, and other concepts. Over time, you’ll also build the vocabulary needed to search for explanations and understand how larger codebases are organized.
You’re not stupid for trying. Open-source code can be difficult even for experienced developers, especially when it involves a language or low-level concepts you haven’t learned yet. Start with small, understandable parts, follow the code gradually, and treat every confusing section as something to investigate. Even if you don’t fix the issue right away, you’ll learn from exploring it.

That makes sense. I was able to locate the issue, but the actual fix looked completely beyond me, so I wasn’t sure where to start.