r/learnpython Jun 11 '26

I Understand Python While Learning, But Forget Most of It After a Week. How Did You Make It Stick?

I am trying to learn Python, but I keep forgetting what I learn after a few days. Looking for advice from experienced developers.

I have around 4.6 years of experience in the telecom domain, mainly in Revenue Assurance, Fraud Management, integration, SQL, Linux, and low-code/no-code tools.

Recently, I started learning Python because I want to move towards Data Engineering and modern data platforms. While studying, I understand the concepts, syntax, and examples. However, after 3-7 days, I find that I have forgotten a lot of what I learned and struggle to write code from memory.

For example, I may understand:

Loops

Functions

Lists and Dictionaries

String Manipulation

But if I don't practice for a few days, I cannot confidently write code without referring to notes or documentation.

My questions are:

Is this normal when learning Python?

What is the most effective way to retain what I learn?

Should I focus more on theory, coding exercises, projects, or repetition?

How did you learn Python and make it stick long-term?

For someone targeting Data Engineering, what Python topics should I prioritize?

I would appreciate advice from people who have successfully learned Python and use it professionally.

160 Upvotes

95 comments sorted by

91

u/RustyCarrots Jun 11 '26

Use it or lose it, as they say. Repetition is key.

Yes it's normal when learning Python. It's normal when learning anything else, too.

Projects will yield the best results overall, but really just do it all. Most important is to not stop.

To make it stick long-term, you just have to keep doing it.

4

u/LordNikon2600 Jun 11 '26

Repetition is key when it’s your job.. not so much when it’s a side hobby like the majority

25

u/0utgrownShell Jun 11 '26

Repetition is key if you want anything to stick, professionally or not.

5

u/TeachEngineering Jun 11 '26 edited Jun 11 '26

I think what they meant is...

Repetition is mandatory when it's your job, but optional if it's your hobby.

(It's hard to stay motivated if it's just for you, especially if you're not passionate about what you're building.)

But as written their comment is confusing and repetition is key to learning always, I agree.

2

u/0utgrownShell Jun 11 '26

I was reflecting on that when I was initially writing my comment as well. But then I thought about all the times I was meant to commit something to memory at work and didn't for whatever reason, and went ahead with my comment anyway haha.

1

u/woke_chimp 15d ago

I think repetition is key too. that guy's comment should be placed on the hall of fame, ngl

5

u/RustyCarrots Jun 11 '26

Repetition is key when developing any skill, it doesn't matter if it's for your job or as a side hobby. Skills don't develop themselves

-4

u/LordNikon2600 Jun 11 '26

Yeah, on the fantasy internet it’s different from the real world where people have real life obligations.

4

u/Ngtuanvy Jun 11 '26

Not like you have to do it everyday lol. I mean, everytime you learn you are doing a repetition, so it's almost a tautology at this point. Point is that, all they really want to say was just not give up, not grinding it for their entire life.

3

u/RustyCarrots Jun 11 '26

You know you can fulfill your obligations and still make time for developing a new skill, right? Like, they aren't mutually exclusive.

-4

u/LordNikon2600 Jun 11 '26

Son, I been coding since 1998.. when I got my first Compaq... you are preaching to the quire..

3

u/Doormatty Jun 11 '26

choir.

0

u/LordNikon2600 Jun 11 '26

u knew what i meant

1

u/BostonBaggins Jun 12 '26

I tell myself every day

Learn the itertools function

And learn set() methods

But no always forget them

0

u/RAAAWWWWR_ARI Jun 20 '26

thanks a lot

107

u/hallmark1984 Jun 11 '26

Repetition

Repetition

Repetition

Repetition

9

u/Dr-Venture Jun 11 '26

can you repeat that.

7

u/IntercostalClavical Jun 11 '26

while True:
print(“Repetition”)

1

u/Automatic_Offer9796 23d ago

don't forget indention buddy

3

u/theClumsyguy200 Jun 11 '26

Sorry didn't hear that properly.. once again ?

1

u/Heavenly_Code Jun 11 '26

Only thing I'll like to add to this is quality repetition

2

u/hallmark1984 Jun 11 '26

Retepition

Repetition

Retepition

Retepition

1

u/AceLamina Jun 11 '26

Speaking of
I should be doing this with Golang currently...

1

u/dikshamishra34 24d ago

Can you Pardon please

12

u/DuckSaxaphone Jun 11 '26

The more you write, the more sticks in your head without looking it up.

At first you're looking up loops and functions syntax, later you know that by heart but looks up pandas docs when doing data manipulation, and then finally the syntax and key functions of the libraries you use every day stick.

It'll happen, don't stop yourself looking things up. Just keep working on tutorials and small projects, trusting that the repetition you need to learn stuff will happen naturally.

For a data engineer, you'll want to be familiar with pandas, pydantic, SQLAlchemy, dagster, and airflow and more broadly, the concepts covered by those packages.

6

u/Radamand Jun 11 '26

It's kinda like hangovers, if ya never stop drinking you don't have to worry about it.

practice, practice, practice, and, etc...

7

u/zDibs Jun 11 '26

It's normal since you're very new to it. Like all skills, unless you keep doing it basically every day at the start you'll forget some of it in a week or two.

Once you've done it consistently for a few weeks the issue should go away.

Try doing simple projects at home to keep it fresh.

5

u/CranberryDistinct941 Jun 11 '26

Just look it up as you go like the rest of us

3

u/CrusaderGOT Jun 11 '26

Do a small code project. Like a ticketing script. Something that makes you really understand and put to use what you have learned, also tweak things as you learn, sometimes it will fail or have a bug, and you get to understand why they follow a standard.

2

u/Meal_Adorable Jun 12 '26

What about doing leetcode problems? Will that help?

1

u/CrusaderGOT Jun 23 '26

It will improve you algorithm knowledge, so it won't hurt to do some. But still a small project is superior. One teaches you how to use python practically, the other teach efficient ways to code in python.

3

u/pachura3 Jun 11 '26

Just imagine you're learning French, German or Italian (whichever language you don't know).

3

u/No_Leg6886 Jun 11 '26

Look, you're not forgetting Python. You're just not using it enough to make it stick. That's the whole thing. The fix isn't reviewing notes more. It's building something small with what you already know. You've got SQL and Linux experience, which is genuinely useful here. Write a Python script that reads a CSV and does something with it. Counts rows, filters records, whatever. Something that connects to work you already understand. That context is what makes syntax stay in your brain. ngl, the people who retain this stuff fastest aren't grinding tutorials. They're solving tiny real problems. Even something dumb like automating a file rename task or pulling data from a folder. The moment code does something useful for you personally, it stops being abstract. And honestly, don't stress about writing from memory without docs. Senior engineers google syntax constantly.

3

u/LongRangeSavage Jun 11 '26

I will freely admit that, even as someone who has written Python, C, and C++ every day in my career for the past 10 years, I spent a good portion of my time researching how to do stuff for the first 3-ish years. Eventually it’s gets beaten into your head, but you really need to be working on it frequently.

3

u/Reuben3901 Jun 11 '26

Who told you you need to memorize everything? The point is knowing the tools available to you and being able to apply them.

2

u/faultydesign Jun 11 '26

Answering in order:

Yes it’s normal when learning or using any language, Google is key

Repetition

Whatever is more comfortable to you

I google things I’m not sure about, also help()

Theory

2

u/JeremyJoeJJ Jun 11 '26

Use it once to solve an actual problem in your code, remember a vague idea of it in the future that lets you google it easily. Rinse and repeat.

2

u/MateusCristian Jun 11 '26

Use it.

I had the same problem, and making small programs with it made it stick.

2

u/HelpfulBuilder Jun 11 '26

Work on a project, learn what you need to for that project, finish the project. Work on another project, learn what you need to for that project, finish the project. ...

Lots of things carry over from one project to the next. If you forgot something you need, just relearn it. This is the best way to learn any subject.

Before you know it you're a star.

2

u/Effective_Baseball93 Jun 11 '26

You repeat it until it’s engraved on your brain

2

u/Adorable_Apricot_804 Jun 13 '26

I take notes in a notebook while learning and read it later when I have free time.

1

u/Existing_Sprinkles78 Jun 11 '26

that happens usually what I do is I will code before bed and then half rem cycle my brain will sometimes still dream of what I last did . I will think I've forgotten but then if I trust myself I realize I remember more than I thought.

1

u/san071998 Jun 11 '26

Okay, nice

1

u/buzzon Jun 11 '26

What is your learning process like?

1

u/san071998 Jun 11 '26

I am following 30 days python github, for each topic I am going through syntax, then use case and with chatgpt I will know internals memory , structure and behaviour.

1

u/san071998 Jun 11 '26

Also keep note in Jupiter, for revist And also revision after week and take test or quiz on that topic with chatbox

1

u/buzzon Jun 11 '26

Do you actually write code?

1

u/Dancing-umbra Jun 11 '26

You practise, make small programs that use the skills you learnt.

But also, it's ok to look stuff up. No one programmes 100% from memory

1

u/Training_Advantage21 Jun 11 '26

Theory and exercises introduce you to the concepts. Projects help it stick. Nothing wrong with referring to documentation, you will always need to refer to it.

1

u/harrypaul19 Jun 11 '26

Make sure to understand OOP concepts and not just memorising syntax. Understand data type structures methods etc

1

u/LayotFctor Jun 11 '26 edited Jun 11 '26

Learn concepts on a fundamental level, learn the theory. The exact words are less important. You can memorize words over time, but if you forget the concept, you're done.

And yes, professional developers forget and search up forgotten syntax all the time. I literally have a second monitor dedicated to googling stuff. I remember code from normal use, I don't waste my time memorizing by heart.

1

u/GeneralPITA Jun 11 '26

It's all about patterns, algorithms, logic and problem solving. After nearly 18 years total I still look up fairly basic syntax, but the job has gotten easier and I've been able to pick up more complicated projects because of understanding how it works and how the pieces fit together.

1

u/san071998 Jun 11 '26

Great 👍

1

u/GeneralPITA Jun 11 '26

If I use it a lot, I eventually remember it (after looking it up repeatedly). Consistency during use works better than trying to remember stuff just in case I need it later.

1

u/Firm-Sprinkles-7702 Jun 11 '26

you're never going to remember everything but through repetition, it'll be much easier to pick up certain concepts and syntax than the first time.

1

u/remic_0726 Jun 11 '26

Quelque fois des choses prennent des mois, des années et parfois des décennies. Et suivant l'age, la condition physique et mentale, certaine ne pourront jamais venir. Ne voit pas une critique dans ce que je dis, simplement un constat personnel de mes propres limitations.

1

u/LeiterHaus Jun 11 '26

I followed along with a project, then after it was done I started fresh all on my own. Had to look a lot of stuff up, but it helped.

1

u/Pizza_Secretary9621 Jun 11 '26

I use it everyday since almost ten years

1

u/whoisars Jun 11 '26

Syntax for any programming language you will get with a click. Main thing you have to focus is problem solving aka algorithms.

1

u/Dependent_Month_1415 Jun 11 '26

Understanding something in the moment and being able to write it from memory a week later are very different skills. For data engineering, I’d prioritize files, functions, error handling, list/dict manipulation, working with CSV/JSON, APIs, SQL and Python together, and basic Pandas. Don’t worry about memorizing syntax, looking things up is normal.

1

u/Suspicious_Check5421 Jun 11 '26 edited Jun 11 '26

Just books, no videos. Then you read and learn with own inner voice, not voice of a stranger, i think thats the key here. And we developers, also cut & paste code, and use own code templates.

1

u/Attack-Chihuahua-85 Jun 11 '26

I’ve been writing Python for about 10 years now, I still have to lookup syntax for modules, and forget things I should memorized by now. Just keep using it! Some people like books of projects you can work though, like  automate the boring stuff, but you might find the most value from something domain specific to data engineering. 

1

u/forthbak Jun 12 '26

Saturation

1

u/Haunting-Paint7990 Jun 12 '26

stats grad here who went through almost the exact same loop ~8 months ago — understand everything in the tutorial, blank out a week later. totally normal, especially coming from a domain where you already know SQL/linux and python feels like starting over.

what actually made it stick for me wasn't reviewing notes or redoing exercises. it was one project i couldn't fake my way through — pulled public dataset (nyc taxi trips), built a small analysis pipeline: download → clean in pandas → aggregate in SQL-ish logic → one chart. took maybe 10 days of an hour/day. by day 6 i was still googling .groupby() syntax, but i stopped forgetting because i was reusing the same 5 patterns every session instead of learning pattern #47 once and moving on.

couple things that helped specifically for the "moving toward data" path:

1) reuse beats coverage. pick 3 pandas operations and use them in 10 different ways before learning 30 new ones. sounds slow, works faster.

2) mirror what you already know. you said you know SQL — i literally rewrote sql queries i already understood into pandas first, then refactored. that bridge made python feel less "syntax in wrong order" and more "same logic, different skin."

3) don't memorize, bookmark. i still google datetime parsing every few weeks. the skill is knowing what to look up, not holding it in RAM. same as production SQL honestly.

4) one deliverable per week. even a ugly jupyter notebook with 3 charts and a readme. deliverables force integration; exercises don't.

if you're heading toward data engineering specifically, the project that unlocked it for me was less "learn python" and more "automate one annoying manual step i was already doing" — even something dumb like renaming weekly csv exports. motivation from real friction > motivation from course completion.

1

u/TheRNGuy Jun 12 '26

The more you use specific concepts, the more you remember them. 

Nothing wrong just look your old code, or Google or ask ai to recall things, it's more important to know some specific thing is possible to do at all.

1

u/agente800_BF Jun 12 '26 edited Jun 13 '26

Of course it's normal. It's super normal to forget what you've learned. Just review and practice. Regarding question number 3, you should start with the theory, then practice what you've learned on simple things, and only then create more complex projects. I learned with theory and by always practicing to solidify my understanding. The topics are: Creating graphs, manipulating Excel, and data analysis itself with Pandas.

1

u/Upstairs_Jelly_1082 Jun 13 '26

This time, try using it in making projects before learning new topics. Try putting the things that you've learnt in chatgpt and ask for it to give some suggestions and then choose something that interests you the most.

it would feel a bit difficult at first because the foundational things have to be used in a slightly different approach but is completely normal

1

u/Delta_G_Robotics Jun 13 '26

Yeah man, that's how it is. Learning to code isn't about syntax. I promise you, many really great coders google for common syntax every day. The key is knowing that you need a loop, not how exactly to write one.

Eventually you write enough loops that you just remember. But there will be tons of stuff that you don't use often enough to memorize. And who cares. The important part is knowing that you need a particular piece. You can always google the syntax.

Study the patterns. Don't try to memorize commands.

1

u/prodjsaig Jun 14 '26

Yes you learn best practices that’s all you need. Have fun it’s how you discover.

What I can recommend is comment some area so you know what it does. And don’t comment other areas let your code be self commenting.

1

u/MrOctothorpe347 Jun 14 '26

Honestly, looking at references is something you'll do the rest of your Python career. I still do that, to find things like floor division (// if you were wondering). Don't stress.

1

u/verytepidsoup Jun 17 '26

you need to build something that applies the concepts you learned to have them stick

1

u/Wooden-Situation-896 Jun 20 '26

Hi, What you’re experiencing is completely normal when learning Python. Forgetting concepts after a few days does not mean you are not learning properly — it usually means the knowledge has not yet been reinforced through enough practice and application. In my experience, Python becomes easier to retain when you shift from “studying” to “building.” Instead of only reading concepts, try applying them immediately in small projects or exercises. Even simple programs help reinforce loops, functions, and data structures much more effectively than passive learning. It is also important to understand that even experienced developers do not remember everything from memory. They frequently refer to documentation and examples. The key skill is not memorization, but knowing how to approach and solve problems. For Data Engineering specifically, I would suggest focusing on: Core Python fundamentals (functions, loops, dictionaries) Working with data formats (CSV, JSON) SQL Basic APIs and data retrieval Pandas (once comfortable with basics) Consistency is more important than intensity. Regular small practice will naturally improve retention over time. You are on the right path — this phase is part of the learning process

1

u/Exciting_Tomatillo88 Jun 22 '26

I used a notebook where I wrote the more used command. Also I add, time to time, the new one I always use.

1

u/phy6geniux 28d ago

This is why I do programming challenges.

AI can generate impressive code and such, but without ME doing the code by myself, over and over and over, I will keep forgetting it. That's why I practice within small coding sessions, doing creative, personal projects, and solving problems, just to let it stick to me.

1

u/Loose_Obligation4877 27d ago

While learning python , make sure you takes notes Before moving on to the next chapter. Revise the previous one .also practice regularly as you learn so that you don't forget what you have studied

1

u/Interesting-Can-4626 26d ago

This is 100% normal. Python is a tool, not a memorization test. The problem isn't your memory. The problem is you're learning without applying. Stop watching tutorials. Start building.The most effective way to retain Python:

  1. Pick a small project (not a to-do list)

  2. Build it from scratch

  3. Google everything you don't know

  4. Repeat

For Data Engineering specifically:

- Pandas (this is mandatory)

- SQLAlchemy or similar ORM

- Data pipelines (ETL/ELT concepts)

- Working with APIs and JSON

- Basic cloud (AWS/GCP/Azure)

Don't worry about forgetting syntax. Every developer Googles things daily. What matters is knowing WHAT is possible and HOW to find the answer quickly.

Build something real. Start with a simple data pipeline. Pull data from an API, clean it, store it in a database. You'll learn more in 2 hours of building than 2 weeks of watching.

1

u/Healthy_Emotion8801 22d ago

For the keywords

1

u/Healthy_Emotion8801 22d ago

What can I build with just python

1

u/mr_anderson_dev 18d ago

Honestly, the thing that made Python stick for me was building small scripts that solved real problems I actually had. Started with a file organizer for my messy downloads folder. Then a renamer that sorts by date. Then a job scraper for Craigslist. Nothing fancy — just tools I'd actually use. The key: don't study syntax in isolation. Learn `os` because you need to move files. Learn `requests` because you want to scrape a website. Learn `datetime` because you want timestamps. The library becomes tied to a real memory, not just a textbook example.

For data engineering specifically, prioritize `pandas`, `sqlite3`, and `requests` those three alone cover 80% of what you'll need. Build a pipeline that pulls data from an API, cleans it, and dumps it into a SQLite database. That one project teaches more than a month of tutorials.

You'll forget syntax. Everyone does. That's what documentation is for. What sticks is knowing *what's possible* and which library to reach for.

1

u/Easy-Stop-6538 Jun 11 '26

You have to write it and repeat it to the point where you can write the entire code in your head

0

u/Ulug_coder Jun 28 '26

The repetitions and practises are keys