I finish programming courses but retain nothing… how did you learn effectively?
Posted by Aymaneoo@reddit | learnprogramming | View on Reddit | 65 comments
I’ve been learning programming through online courses and video tutorials I understand everything while I’m watching… but when I finish the course, it’s like everything disappears I can’t remember how to build anything on my own — it feels like the knowledge just evaporates.
Has anyone else experienced this?
How did you fix this problem and find an effective way to actually learn programming?
Any advice or personal stories would really help
hgrzvafamehr@reddit
I'm learning programming right now too and have experienced this.
Answer this question:
Can you become a painter by watching someone else painting an excellent painting?
You can only get the ideas behind it and knowing what path you should go. It is the act of practicing that will make you great painter.
When you watch a tutorial, you skip many parts like trying to understand the whole problem that is going to be solved. The teacher does it for you. Then you skip the part that is about breaking a big problem to small pieces. Again, the teacher does it for you. You also skip the part about thinking "How am I going to solve each of these small pieces?". Guess what, the teacher does it for you.
Now when you go to write some syntax you need to remember small details that again the teacher does it for you.
All in all, you may learn what is a Loop, what is a function, what is a class or what is OOP about etc. but you have no clue about where to use each of these or even how to implement a proper one of these.
Start with small project. tiny ones, you can ask AI to give you basic problems to solve and make it harder as you progress. Keep in mind if you let AI solves it for you (be it the problem or bug) you again will skip many important steps in training your mind muscles.
DrakMVP@reddit
I personally like watching a general course that teaches me the basics of a language and start building projects alone with use of google searching. After that I watch project based courses to see and learn best practices
vbpoweredwindmill@reddit
I watch a video at 1.5 speed basically speed reading or skimming. My guess would be 10% knowledge from this.
Then I watch it at normal speed, copying the code & paying attention, and try to figure out what's going on. My knowledge would be at like 50% of that particular subject.
Then I ask an LLM to come up with exercises for that specific bit of knowledge and go through them.
This would take me up to around 90% and to a useful level of competency.
By the end of it I have a solid grasp of the theoretical and the practical.
I also have a couple of my own projects that I'm slowly growing as my knowledge grows.
This in my opinion is the last 10%.
nikglt@reddit
What you’re doing is like reading a manual on how to build a car from the ground up and expecting to know how to do it by the end. If you don’t get practical, you will never learn. Practice the code, from the very basics and slowly advance to further subjects when you feel you that the learned topic was drilled to your mind.
recontitter@reddit
Build your own simple programs, memorize common methods, check references when forget what ones do and what parameters it takes (MDN). Rinse and repeat. That’s what I do. It’s a memory retention and logical thinking game, plus some planning for larger programs.
Responsible-Ship-489@reddit
Yeah, I’ve been there too, I’d finish a whole course, feel like I got it, then forget everything once I tried to code on my own.
We actually made Runtric to fix that exact problem. It mixes short lessons with hands-on coding and AI tutor feedback, so you learn by doing instead of just watching. It’s been helping people (including us) actually retain what they learn.
TacticalConsultant@reddit
You can try https://codesync.club/lessons, where you can learn coding by building apps & games. At the end of a course, there's an interactive code editor where you can practice by making changes to the code and see how the change is reflected.
bpleshek@reddit
You have to practice. You have to do a project. And then do another one. If you don't, you won't retain it. It is a language. Just like Spanish. If you don't use it, you'll forget how to.
crustyrustacean@reddit
It's pretty simple. Do the work. You can't learn to program passively.
I've just come off a weeks long therapy session with Claude. Ridiculous, I know, but the thing with it is it's not judgmental (well, after a week I think it was heading that way, but I digress).
I started this today: https://github.com/crustyrustacean/shut-up-and-build
You're most likely not doing Rust, but do something similar in your language of preference.
20 projects, that's my goal.
Start a log of what you learned, you'll thank yourself in the future.
Total-Box-5169@reddit
This is learnt by doing, it has being like that since forever.
barkingcat@reddit
One way professional programmers evaluate their work is the amount of planning/design, documentation, and code deletions as a proportion of code written.
As in when writing code, the good programming teams will plan ahead, rewrite more often then write, and at the end of the day, only commit maybe 10-20 lines of code for a small chunk of work.
Writing code is not like making noodles or dumplings. You have to think about it and rewrite it until you express what your design says.
If you're not learning designing, planning, and learning to review and critique code and design, you aren't really learning programming.
AdministrationNo7733@reddit
Code every. silly. little. thing in your life. I just wrote something small to help decide what toilet paper pack to buy after inputting sheet dimensions, sheet count, ply count, roll count and pack cost.
RareDestroyer8@reddit
Thats up to you to figure out. I, myself, can retain quite a bit by just watching long youtube tutorials. Then if I really want to solidify it, I read the documentation/official guide.
f3ack19@reddit
How can you say you finished learning if you didn't learn anything? Watching !== learning
ksmigrod@reddit
My approach to low-level programming tutorials:
About notes: do not copy whole code sections, instead use pseudo code to note the order of operations, and names APIs used. Have API reference handy, learn to read and understand documentation rather than rely on StackOverflow.
Ssingleaspringle@reddit
People say "practice" but it's hard to practice a tool without making a product of that tool. Don't practice examples. Do projects instead. Make a functional requirements list for a script or an app and discover ways to meet all of the requirements. This way you will learn what solutions apply to which problems in programming and learning how to code will be a side-effect of that. It will take many tries. Maybe start off from a youtube tutorial to create a minimal application and then add your functionalities to that. This way you will also learn how to organise your code to be modular etc. Good luck :)
Effective_Yogurt_978@reddit
Practice what you’re watching. Pause where needed, open your editor (or even a piece of paper) and write code. The more you practice, the better you’ll retain.
Gold-Strength4269@reddit
What materials do you have? Find the stuff that applies to your job and study those.
Take your time also, retaining information is a slow process that speeds up with prolonged exposure
Obeydon@reddit
Being a programmer is not just about being fluent in writing the code. You will eventually learn to write code to an extent, still having to look up other pieces of code you haven't written before. Then as you move on to another project you will forget the code that you learnt to write because you had to focus on another language or other aspect of coding, and you will have to re-learn it again. After re-learning your code over and over again you soon realize that the learning never stops, and that being a programmer is truly about having the ability to obtain information, the patience to learn, the creativity of problem solving, and the understanding of how a system should work. Don't worry about the code.
Weak-Guarantee9479@reddit
Don't wait until the end of the course to test out whether you've retained anything; test it out as you go along.
I'm a big believer in 'encoding' the information you get. Say I'm familiar with using the Sinatra framework ( basic web framework for Ruby ) and I get some light exposure to Express ( basic web framework for JS ). I may read a whole bunch about how Express works but the part that will stick with me is it's similarity to Sinatra and I can expect to have to do the same things.
I write comments all the time explaining why the line below is necessary. That's the part that you're generating actively as a RESPONSE to the information that you are provided.
The knowledge that I get is kind of like leaves from a tree. Unless I create the trunk and branches ( the mental framework of my understanding ) then there's no place for the leaves.
So much of the other information in your life is reinforced by it's association with dozens if not hundreds of other pieces of information. So learning needs to be ACTIVE, and the activity often looks like struggle, confusion, making mistakes, going down dead-ends, feeling lost, etc. That's part of the process and if you go down the happy path of absorbing a lot of text without enough interaction then it's all going to float away into the ether.
sandspiegel@reddit
By building a lot of projects. You have to actually do the things you learn in theory. The only way you will learn. Start with small projects like rock paper scissors and then move to more complex ones. After a while try to code something that is actually useful to you. To give you an example I developed a Timetracker app that I use everyday. It tracks the time I spend with programming, creates stats etc. For storage I use a simple JSON file as I didn't know anything about databases back then. I learned a lot with every project I did. I learned very little by just watching a YouTube tutorial. Of course you need to know the theory to code anything but once you know the basics well enough start building projects as soon as possible where you use these basics.
Ab_Initio_416@reddit
PearFuture7879@reddit
I don't know about the other, i'm still new to this coding stuff but for me i learn "the order or structure of the code (syntax)" first, after that i go straight to "how to build simple project in......" and then learn the basic from that project. If i found something i dont understand from the tutorial, im opening new tab to learn about that particular information. So im memorizing important tag and learn it while building something, rather than bombard my brain to learn every single code in existence.
It feels more rewarding when i can build something and seeing it work rather than just watched the tutorial and literally copy paste what the tutor are doing.
Oh, repetition is key. learning how to code literally like learning new language, you learn important word and keep repeating it till you know how to turn that word into a sentence, and a sentence itu paragraf.
Fun-Conversation8475@reddit
You need to actually fix coding problems or do small projects, it’s ok to research whilst you do them and even to ask chat gpt if x or y thing is possible, but don’t let it code for you. Just let it steer u in the right direction. Ultimately to actually ingrain coding concepts and when to use what, and how to get what done best how, you need to have done a lot of coding so you’ll have applied those things already multiple times. It’s practice.
elg97477@reddit
Build stuff. Find a problem you want to solve and solve it.
LordBertson@reddit
It sounds like you are just going through courses. Programming is wonderfully simple to actually put in practice, you only need a computer and a bunch of time. Why not just write some piece of software by yourself without the structure of a course?
Crypt0Nihilist@reddit
You have to do the exercises, then pull apart the code you've written in the exercises to see what happens when you change things. See if you can repurpose it or build on it. Then move on.
You can't passively learn programming.
I always say that your learning ought to be directed towards something. First to and introductory course to learn the syntax, but even at that point have your own personal project in mind, relate everything to that and start building it. Once you've finished the intro course, further learning ought to be directed towards your project. If you know enough then crack on an research the bits you don't know. If you still don't know enough about the entire domain your project is in, take a beginner / intermediate course in that domain and repeat.
FitBread6443@reddit
helsinki mooc python course seemed pretty hands on, probably the best course imo even better than udemy, also be sure to setup and use vscode from the start
plastikmissile@reddit
You can't learn programming by watching/reading. You need to constantly apply it. You need to type in the code in the course (no copy paste), then you need to practice it by writing your own code. It can just be a variation on what's already in the lesson, and don't be afraid to experiment.
Difficult-Field280@reddit
Yup. Once you start you gotta keep doing it. Like any other language, it sticks better if you use it. Do other courses, build practice projects, whatever. The more you code the better you will be at it.
code_tutor@reddit
Are you doing programming? Or just watching?
subject_usrname_here@reddit
Practice.
jqVgawJG@reddit
You learn a craft by doing, not by watching videos about it
BenjayWest96@reddit
You don’t have a learning programming problem, you have a learning problem. There’s a reason universities have a 1 hour lecture and then usually a 2 or 3 hour lab session.
Once you have watched your video about a topic or concept you should then be spending 2-3 times as long actually applying it. That means building something (that’s different to the tutorial you just watched) in the case of programming.
It’s like trying to get better at baseball by watching videos. You might learn better techniques but until you hit the nets and apply it, you’re not actually learning.
Limp_Milk_2948@reddit
Programming is learned through practice. Syntax is learned through repetition that comes with that practice.
saito200@reddit
Anki
OldFcuk1@reddit
Have you tried to build something on your own? Or do you get this feeling because you cannot quote it like a poem? You are not to remember programming courses by heart. Knowledge will apply itself when you tackle a programming problem, not follow an emotion like you were in poem.class.
aqua_regis@reddit
You understand a book when you read it, but could you write one?
These are two completely different skills, just like reading/watching tutorials and actually creating your own programs.
You cannot learn if you don't start doing your own projects.
I'll leave some comment from a former, similar post here:
Honestly, most of it is down to practice. Use sites like Exercism for ample practice exercises.
There are several books commonly recommended:
And finally, I'll leave some of my comments to previous, similar posts, as this is a very frequently discussed topic:
orfeo34@reddit
Try adventofcode in december, they are nice little exercices.
csabinho@reddit
Or any other time of the year. The old ones are still available. You won't make it to the leaderboard anyway.
rustyseapants@reddit
What programming courses did you finish?
Dziadzios@reddit
Start actually coding. Make a small project, you can google up stuff when necessary.
MisterBicorniclopse@reddit
Best way is to start your own simple project and add what you want. How about starting a simple python program that tells a story in the console? Have the user input a name and that can be the player. Anything you think of along the way that can be added, Go ahead and spend the time adding it. Also reminder that your goal is to learn how to code, not just write the code. So spend as much time as you can trying to figure out every little bit on your own, using docs and google, but not using ai to just tell you the solution
sigmasad1@reddit
You need to learn like you learn in school by giving tests, practicals,making projects and discussing with people about what you learnt so far to enhance more of it etc.
healeyd@reddit
Perhaps I'm in the minority, but I've never understood all of these courses that just push endless exercises without any context. It's not a great way to learn, and it's utterly dreary.
You should try to build something like a simple app or game. As you do this you will hit problems that you can then research in context.
For example, one of my first was a kludgy 'pong' attempt, but I learnt loads from it.
"How do I set up a screen area? Now, how do I draw a bat on screen? Now, how do I draw two at opposite sides of the screen? Now, how do I make them move? Okay so now adding and moving the ball makes sense, but now how do I make it collide with the bats?" etc, etc.
nraw@reddit
Building. Learn what you need to build.
OrriSig@reddit
Try futurecoder.io, best programming tutorial that ive ever used and its amazing
paqu93@reddit
For me, the most effective method was reimplementing popular algorithms and then developing solutions to my own problems. Nowadays, you can even use AI as a reviewer.
Historical-One-4479@reddit
I have also completed the angela yu web development course and now I am building a task manager.
Although I use ai but I review the code by myself and try to understand. There will be lots of things you will learn by making the projects.
At this time my project is working 100% but I only have knowledge of 50% of the code base.
The webSocket I used for live collaboration, I didn't know about it. But now I will understand it.
The application is the only way you would grasp the concept and understanding of the flow of the project.
SeveralSalad9538@reddit
As with everything in life, practice, practice, and practice again.
nameond@reddit
Haha, good way for getting used to cheat sheets, tutorials and documentation
Beginning_Mud_787@reddit
Personally, I divide things into theory and practice, by applying what I’ve learned after each key concept. 1) Theory: A note-taking app works well here. You only write down the core concepts or draw diagrams, linking ideas together. For example, to learn CSS, you first need to understand HTML. You structure the information so that each core concept has its own “chunk” of condensed notes. These help you store what you've learned in a high-level context and remember it longer. 2) Practice: As others have already mentioned, you then need to apply the core concepts yourself. Choose an IDE of your choice and start coding hands-on. After learning each key concept, it's best to immediately try it out yourself. If there are important commands that are easy to forget, write them down in a README.md. Push the whole thing to Git – that way you can refer back to it in future projects. Repeat steps 1 and 2 until you’ve learned all the core concepts. After that, you can start bringing in your own ideas and try to implement them. That’s when you’ll see what you’re still missing.
Comprehensive_Mud803@reddit
You haven’t learnt anything. You watched done stuff, but that’s not learning.
Only practice will bring results.
d-k-Brazz@reddit
Write code
A lot of code
Every day
Bad code (yes, your code is expected to be bad).
You have to write 1000 lines of bad code, before you end up with 10 lines of ok code
This is how brain learns, there are no shortcuts
PoMoAnachro@reddit
You learn by figuring out solutions to problems yourself, not from watching other people solve problems.
Watching others sure makes you feel like you understand, but it is about as beneficial as going to the gym to watch someone else lift weights. You're not out here trying to memorize all possible solutions by watching them (impossible!), you're out here trying to build your mental muscles.
I was lucky to start learning before the age of online tutorials. Learning from a book and then having to try things out and debug them on my own without outside help was the best learning environment you can get, I feel.
Shot_Set_2038@reddit
Wait, did you only watch it without trying it?
Im also start learning python started yesterday so im not sure if i will forgot it but im a guy full of curiosity so i keep trying every code i learn and experimenting. i encounter lot of syntax error yesterday.
I guess you need to watch while doing code. its fun for me discovering i can do.
My Vision? i guess to create some automated door that will scan the owner Iris once detected by sensor.
Tobacco_Caramel@reddit
make stuff?
DinsonGames@reddit
You need to start making stuff
michaelpaoli@reddit
Practice. Practice, practice, practice.
Prestigious_Water336@reddit
Remember in school after you learned a concept they made you apply it and use it.
Same thing here
apply and use the concepts your learning
kuzidaheathen@reddit
Build shit. When ever I want to learn a languages basics I build a game. The game must cover all the badics i want to learn and by the time i finish it i must have a good enough grasp to know where i lack Pong is usually my go to build.
RootConnector@reddit
You have to apply the knowledge, ideally in a way that you enjoy and are interested in. Think of a small project you've always wanted to do and refer back to the course script as often as necessary.
Aglet_Green@reddit
you need to stop or pause the course as often as necessary, perhaps even every paragraph or sentence, then go to the keyboard and start typing away. Copy whatever the guy on the screen is doing, then deliberately tinker and change it to see what happens. For example, if he teaches you how to print "Hello World!' then go do that, then see if you can figure out how to print out "Goodbye Moon!" That's how you learn- by doing, and by thinking about what you're doing.
MagicalPizza21@reddit
You have to actually do some programming to get good at it.
Crocoduck1@reddit
By writing applications. Really the only way for me too. You need to create and CEMENT neural pathways. That takes a lot of doing over and over again sometimes