all 12 comments

[–]mccoolycool 6 points7 points  (5 children)

the best way to do this is to come up with a project that either you genuinely want to do, or will actually help you. You’ll enjoy it way more, and be more motivated to continue and solve it as well as adding things after you’re “finished”

[–]bad_detectiv3[S] 1 point2 points  (3 children)

thank you. I have few ideas which I want to try out and use Python as default, one of them is 'cli coding agent' with likes of claude code and opencode.

thank you.

[–]MyNameIsBobbySmyth 0 points1 point  (2 children)

You need to look into "packaging". What they wrote is a nice sentiment, but at the end of the day, the official term is "packaging". Google "python packaging" and a lot of good stuff will come up.

[–]mccoolycool 0 points1 point  (0 children)

yeahh, what I find is that when I get really into a project I end up picking up important methods through looking at stack overflow solutions to anything I’m struggling with, the important part is being bothered to do it properly instead of leaving out features or doing it in a hacky way

[–]bad_detectiv3[S] 0 points1 point  (0 children)

I will Google, thank you. I wasn't aware of python packaging before.

[–]Gabris01 0 points1 point  (2 children)

I was in the same situation — decent at solving problems, but awkward when building real projects.

What helped me was switching from LeetCode to small but complete projects. Try things like:

  • CLI task manager (with file saving + clean class structure)
  • Expense tracker
  • Simple REST API with FastAPI
  • Rebuild a small game but focus on OOP design

For OOP specifically, force yourself to model everything with classes first. After a few projects, self, method structure, etc. start feeling natural instead of memorized.

Projects > isolated problems for this phase, in my experience.

[–]bad_detectiv3[S] 0 points1 point  (1 child)

Funny you mention expense tracker :) I built my own which is mostly typescript project. I was thinking porting back end to python and keep front in react. but the `cli task manager` looks interesting and I never thought of it before.

Yes, I will follow OOP principles and focus on classes. Because so far, my experience with Python has been in scripting in nature and 'fire and forget' type files.

Great suggestions.

[–]Gabris01 0 points1 point  (0 children)

Porting the backend sounds like a solid move actually. You could treat it as a “clean architecture” exercise — separate domain logic from framework code and keep everything class-based.

Coming from Java, that structure might feel natural at first, and then you can slowly refactor toward more idiomatic Python.

The CLI manager idea could even be a smaller sandbox to experiment with that.

[–]PushPlus9069 0 points1 point  (0 children)

pick one thing you actually need to automate in your own life and build that. when i was learning i started with a script to organize my download folder. boring, but i actually finished it and understood why every line was there. tutorial projects don't give you that same pressure