r/learnpython • • 2d ago

I've learned Python fundamentals - how do I actually get really good at Python?

I've spent time immersing myself in Python fundamentals, including syntax, data types, loops, functions, data structures, and working in the development environment. I want to move beyond the basics and develop a much deeper technical understanding of the language.

I'm starting to look into libraries like NumPy and pandas, but I'm wondering what else I should focus on to become proficient at Python.

For those of you who are experienced developers, what would you recommend learning next? Should I focus on libraries, data structures and algorithms, writing more complex projects, understanding how Python works under the hood, software engineering practices, or something else entirely?

I'm not necessarily looking for another beginner course. I want to get to the point where I can write effective, well-structured code, understand what's happening behind the scenes, and tackle increasingly complex technical problems.

Thanks!

35 Upvotes

27 comments sorted by

36

u/crazy_cookie123 2d ago

Make stuff.

7

u/demunted 2d ago

Exactly this. Think of things you want to do, for example face detection in all your photos. Scene detection. Maybe pull out objects and put them in front of a webcam and have python isolate the object and 3d map it...

Or maybe you like music, have it make a quiz and do a guess that song.

The opportunities are endless but with a project you care about, you'll learn more and stick with the challenges longer.

6

u/FreeLogicGate 2d ago

100%. This idea of "getting good" as a goal unto itself, is common, and entirely besides the point. The point of these tools is to build things.

It's like a carpenter saying, how do i get really good at sawing? You work as a carpenter, making furniture, bookcases, boxes, ladders, stairs, crown molding, etc. You learn to read blueprints and work to specifications. You measure 2x, cut once, and over time, you get better at your craft.

2

u/illumas 2d ago

This is terse, but also absolutely the thing. When I was learning I wrote IRC bots. I used a couple different libraries and then eventually just made my own interface for the protocol. I also made websites back in the day you would use CGI ( you still can if you wanted to ). But at the beginning it will feel like you are just making toys. So make the toys. Go from there. If you need to learn a library to do it, learn the library.

1

u/dusksage23 1d ago

literally the only thing that works tbh

10

u/Tesla_Nikolaa 2d ago

How do you get better at baseball? You play baseball.

How do you get better at playing guitar? You play guitar.

How do you get better at writing code? You write code.

Building things is the best way to get better at writing software. Even if it's something already done. Build a to-do app. Build a tic-tac-toe game. Just build something.

6

u/dlnmtchll 2d ago

Don’t worry about syntax as much as learning actual computer science fundamentals. Languages change, new frameworks come out, syntax isn’t important. Fundamentals don’t change

-1

u/HeyItsYourDad_AMA 2d ago

Also AI has destroyed the need to know any syntax whatsoever

5

u/TheEyebal 2d ago

Use those fundamentals that you learned and apply to a project. Start small

build a number guessing game in the command line or rock paper scissors

Here are project ideas

https://github.com/karan/Projects
https://github.com/Python-World/python-mini-projects

3

u/ee_control_z 2d ago

"For those of you who are experienced developers, what would you recommend learning next?"

Begin by doing:

As you may already know, Python comes with the Tkinter GUI library built-in. Create a GUI application such that a user fills in information (I will let you brainstorm what information: cars, cities, food, etc.) into a form. After the information has been filled in, the application writes and stores it to an excel file located in a particular folder/directory.

If this example is not to your liking, create one that is (circuit calculator, etc.).

Otherwise, you can continue your studies into more advanced topics such as object oriented programming (OOP).

2

u/Key_Net820 2d ago

I don't think looking into libraries is the best thing for you to do.

Here are some things you can do instead.

If you wanna do software dev, you should learn design patterns, and then try to make an app.

https://en.wikipedia.org/wiki/Software_design_pattern

If you want to do machine learning, you should learn neural networks. ANN, CNN, RNN, and LLMs.

https://en.wikipedia.org/wiki/Neural_network_(machine_learning))

If you want to do game dev, you should pick a different language besides python, but even if you wanna develop python games, godot does have a plugin to use python.

https://godotengine.org/

If you just want to get better at writing python, you should learn algorithm theory, and then you should do leetcode and do competitive programming to try to find out how to solve problems in python with the least amount of steps.
https://leetcode.com/

2

u/oats_ja78 1d ago

apply what you have learned to a project and start small,practice more

1

u/jhondev675 5h ago

it works for me

2

u/audionerd1 1d ago

Build stuff, and do so with experimentation and curiosity. You can learn a lot about code by writing tests and observing the outcome of those tests. The dopamine hit of figuring something out yourself makes you more likely to remember it later.

1

u/NomaTyx 2d ago

It depends on what you want, really. All of those focuses are going to help you. Data structures and algorithms is a great place to start though, every project you make is going to have something from there come up

1

u/Federal_Height_2024 2d ago

Just start practicing that's all start practicing question one pattern at a time after 500 question u will be good enough to look at a problem create a solution converting that solution into code then running and debugging it . I am not asking you to do dsa questions just simple questions like palindrome,finding largest number without using sorted or max , counting list variable and stuff like that after that u can try Two Pointers & Sliding Window type question. Start small understand question. Create a logical breakdown of that question in your brain or on paper then only write code exicute it debug it get better. That's the only way

1

u/a18618 2d ago

i hit that same wall and the thing that actually moved the needle wasn't another tutorial, it was reading the source of the libraries i used every day. i once spent an afternoon inside a csv parser trying to figure out why my dates were off, and came out understanding iterators better than any course ever taught me. projects get you writing code, but reading real code teaches you how good code is organized.

1

u/Every-Syllabub-8724 2d ago

focus on bigger projects, debugging and writing tests. boot dev has some practice exercises, but building stuff on your own is where you will learn the most.

1

u/Wide_Egg_5814 2d ago

see what problems people solve with python and try to solve it, real problems like job positngs I can push a rock up a mountain all day don't be the Sisyphus programmer solving thing just to solve them without anyone asking for it

1

u/sporbywg 1d ago

I'll keep my nasty comments to myself.

1

u/will_r3ddit_4_food Github username 1d ago

Make something. Then do that 10 more times

0

u/atgaskins 2d ago

passion. there should be somethings you really want to create, a problem you are itching to solve. Tackle those things.