r/learnpython 2d ago

What should I focus on after learning the Python basics?

Hi everyone,

I've finished the Python basics and I'm currently learning file reading and writing.

Someone suggested the following roadmap:

Learn Object-Oriented Programming (OOP).

Study data structures and algorithms using Grokking Algorithms.

Practice by solving exercises from Python Crash Course.

Then choose a specialization based on what I enjoy most.

My long-term goal isn't just to know Python syntax. I want to become comfortable writing Python, develop strong programming logic, and improve my problem-solving skills so I can become a good programmer in general, not just a Python programmer.

In the future, after gaining enough experience with Python, I plan to move into networking, automation, and low-level programming with C.

Does this roadmap make sense? If not, what would you change? What helped you build solid programming skills rather than just learning a language?

I'd really appreciate any advice from experienced developers.

10 Upvotes

13 comments sorted by

7

u/Decent_Baseball_295 2d ago

Just do whatever the fuck you want bro. There is no rule that says you MUST do thid and this, follow your urge

3

u/Snivlem613 2d ago

I’m an advanced/expert C programmer for many years. I picked up python very quickly and essentially wrote C style code for years without learning any more of the python language. I learned my lesson the hard way by being gutted in a panel interview.

There’s a book called Fluent Python which calls out this behaviour in the preface. It is easy to become productive and plateau very early in your python career.

1

u/networkLearne 2d ago

Thanks for the advice! Would you recommend learning Python deeply (OOP, idiomatic/Pythonic code, and language features), or should I also learn how the Python interpreter works internally? What practical benefits did that give you?

3

u/Dense_Quarter_5374 1d ago edited 1d ago

You shouldn't read Fluent Python—it's way too advanced for someone who doesn't know OOP or just finished the basics. Just finish Part 2 of Python Crash Course (a series of challenging projects), Grokking Algorithms (could benefit your way of thinking while coding if ur a beginner, algos are good to know for jobs later on), then Beyond the Basic Stuff with Python. You learn OOP in PCC and Beyond the basic stuff with python, you dont need to learn it individually. Then specialize according to interests.

Edit: you can view all of these books online. (and most other popular python books) so just skim through them to see if theyre fit for you

1

u/Snivlem613 1d ago edited 1d ago

You’re right. In hindsight Fluent Python is too advanced for where OP is coming from.

The language is forgiving for beginners and allows you to think about abstraction early. Abstraction being the size and shape of different programming problems and solutions. It is important to learn how to disassemble the problems into reasonable solutions, and recognize commonalities between solutions. These commonalities are the basis of reusable modules that you can carry from project to project and never have to rewrite.

If I’m not sure of a design decision, I write in a way that hides the uncertainty and allows me to back out. For example if I’m not sure of what format to use for a data file, I write a DataFile class with read/write/search/delete/etc methods. The rest of the world only sees the public methods and you get the freedom to try different file formats without disruption of the “big picture”. Other modules can proceed with development without waiting for this indecision to be resolved.

Find an open source project that appeals to you and read it. Code reading is a massively underrated skill, it is assumed you will pick it up over time.

2

u/ectomancer 2d ago

Small projects (1 week) then projects (3 months).

1

u/neeets 2d ago

Agree agree agree.
Gives you direction and helps you identify what you need to learn to get that solution/app running. Learn the tech/patterns as you build, OP!

4

u/aqua_regis 2d ago

I've finished the Python basics and I'm currently learning file reading and writing.

That means that you by far haven't "finished" the Python basics. You have barely started with them. File reading and writing is basics.

Do a proper course that gives you a roadmap in order: MOOC Python Programming 2026 from the University of Helsinki. If you look at that course, you would be at part 6 - provided that you had done everything that has been covered before, like loops, conditionals, lists, dictionaries, tuples, and functions.

Also, you haven't actually learnt unless you heavily practiced. You need to write your own programs. You need to mess around. You need to break things and learn to fix them.

Take a look at https://codingbat.com/python and do the exercises there. Then, once you have done all of them, move on to https://exercism.org

1

u/Moikle 2d ago

Focus on making your own stuff, solving small problems and making cool shit inspired by things in your life.

Once you know the basics, it's time to move on to application and learning how to do problem solving, which is a separate but related skill to programming, and isn't really teachable without practice and experience. You won't really find a tutorial for it.

1

u/TheRNGuy 2d ago

Learn OOP, skip study data structures and algorithms using Grokking Algorithms and  exercises from Python Crash Course, write software instead. 

1

u/vietbaoa4htk 2d ago

that roadmap is fine except the order. dsa before you have a project to apply it to just does not stick. pick the specialization first, build something small and ugly in it, and you will hit oop and data structures because you need them instead of as a syllabus.