I'm a computer science student building my first Python web app and I'm following Flask's official tutorial to create a blog. I understand the overall structure and what the application is supposed to do, but I don't understand every line, keyword, or imported module yet. Is that normal when learning, or should I stop and study each detail before continuing?
5 Answers
There’s a difference between learning code you only partly understand and shipping code you can’t explain or troubleshoot. During exploration, it’s normal to have unanswered questions. Before other people depend on the application, make sure you understand the important behavior, security implications, and failure cases well enough to maintain it.
A good way to learn is to get the tutorial working, then deliberately change things and observe what breaks. Modify the routes, templates, inputs, or output and form a prediction before running the program. When your prediction is wrong, investigate why. That process builds a much stronger understanding than just reading every line passively.
It’s fine to continue while some details are unclear, but don’t become permanently comfortable with gaps that matter. If you’re using Python syntax, standard-library features, or Flask mechanisms that you’ll need to maintain and debug, make a note of them and learn them progressively. You’re not expected to understand everything instantly; the goal is to become able to understand it when the situation requires it.
Yes, that’s completely normal, especially when you’re going through an unfamiliar codebase for the first time. As you gain experience, more patterns will become intuitive, but you’ll always encounter unfamiliar libraries, syntax, and design choices. The important part is to keep track of the pieces you don’t understand and return to them when you have time.
You don’t need to understand every implementation detail of every imported package. Software is built in layers of abstraction, and even experienced developers rely on libraries they haven’t studied internally. As a student, try to understand the Python language, Flask concepts, and the overall flow of the application. Don’t simply accept generated code without checking it, though—tools that explain or generate code can help, but they shouldn’t replace your own learning.

Code-explanation tools can be useful for breaking down unfamiliar sections, but verify their explanations just as carefully as you would verify the code itself. If an explanation seems inconsistent or overly magical, investigate it using the official documentation or knowledgeable people.