I work as a QA tester and can handle SQL and simple scripting fairly comfortably, but I have little formal programming experience. My job gives me access to a large codebase, mostly written in C# and TypeScript. I mainly test developers' changes and occasionally fix small bugs using my own reasoning or help from an AI tool. The codebase feels overwhelming, especially the syntax, arrows, and figuring out what happens next when following the code. I can sometimes understand the general idea at first glance, but much of the code is still confusing. What would be the fastest practical way to learn the fundamentals and become better at reading and modifying this code?
3 Answers
Start with a beginner-level C# course or book rather than jumping straight into the company codebase. Without the fundamentals, reading unfamiliar code is like trying to read a book in a language you have never studied. Once concepts like variables, methods, classes, loops, conditionals, and objects make sense, the syntax will feel much less intimidating.
Pick one small feature that you already test and trace a single request through the code. Use the debugger, set breakpoints, and step through it line by line while watching the values change. Following a real workflow is often more useful than reading random files, and you will gradually recognize common patterns and understand how the pieces connect.
An AI coding assistant can be useful as a supplement, especially if you are allowed to use it with that code. Give it a small section and ask for a detailed explanation of each statement, the inputs and outputs, and any unfamiliar syntax. Do not rely on it as the only teacher, though—first try to understand the code yourself, then use the explanation to check your assumptions. Your SQL experience already gives you useful logic and data-flow skills; you mainly need to learn how those ideas are expressed in C# and TypeScript.

That makes sense. I think I have been trying to learn the language by staring at production code, which is probably making it harder than necessary.