How can I learn programming more effectively instead of just following tutorials?
Asked by
MellowCedar27
I've been learning Python, Dart, HTML, and CSS for a while, but I'm worried that I'm only going through the motions and forgetting everything afterward. My usual process is to find a video, type the example code once, write notes in a Markdown file, and then move on.
I'm currently making notes in Obsidian, but I'm not sure they're detailed or useful enough. For example, my notes explain Python lists, indexing, and methods, along with a few copied examples. I understand the general explanation while reading it, but I don't always feel capable of using the concept independently later.
How should I change my learning process so I actually understand and retain what I'm studying?
Answers
Build something you personally care about, even if it seems simple or a little ridiculous. Motivation makes it much easier to push through confusing errors and unfamiliar concepts.
Keep the project small enough to finish. A command-line task manager, a text game, a budget tracker, or a file-organizing script can teach you a lot. Youโll naturally encounter questions about functions, conditionals, data structures, and modules, and solving those questions gives the information a reason to stick.
Reply to this answer
You probably donโt need to stop learning from videos entirely, but donโt let them be the main activity. Use a structured course with exercises, and actually complete the problems before looking at solutions.
Courses that include written explanations, practice problems, and gradual projects can provide more structure than watching disconnected tutorials. Make pseudocode before coding, use the official documentation when you get stuck, and avoid relying on AI to solve the exercises for you.
Reply to this answer
Your process is a reasonable starting point, but it mostly involves watching, copying, and recording information. The missing part is applying it without the tutorial in front of you.
After learning about lists, invent small exercises: create a list of names, print it, remove an item, insert another one, replace an item, and print the result after each change. Try to remember the solution first, then consult your notes or the documentation only when necessary.
Once that feels comfortable, make slightly larger challenges, such as asking the user for names until they press Enter, or creating a menu that lets them view, add, and remove names. Small, self-created problems are much more useful than repeatedly copying examples.
Reply to this answer
Notes are useful as a reference, but they arenโt proof that youโve learned something. Try closing the tutorial and explaining the idea in your own words, then write a fresh example from memory. After that, test yourself with a variation that wasnโt shown in the lesson.
Also watch for small accuracy issues in your notes. For example, Python uses True and False with capital letters, and lists are mutable sequences rather than simply a general container for any values. Writing and running your own experiments will reveal details that passive note-taking can miss.
Reply to this answer
Add your answer
Answers are reviewed before publication.
MellowCedar27: Iโm currently trying to build a command-line task app in Python and am practicing by adding functions as I go. Iโm also trying to understand what if __name__ == "__main__": is used for.