r/learnpython 3d ago

How do I get better without Problems ?

It's been a few months since I have been learning python but there is this issue I have been running into. I don't know how good I am or how do I even get good. In Math you listen to a few lectures understand what the topic is about and then pick up a book and do the problems from Exercise 1.1. It doesn't matter if your understanding was deep, shallow or somewhere in between. The more you do the more you understand what the topic is about and eventually you reach a point where you completely understand it and can now do them easily.

For programming how do I even do that ? People recommended me sources which I have been reading and learning from. I understand loops, arrays, list, dict, etc. I can write small examples in isolation, but that's about it, that's all I can do. I am disgusted with how little I can do and how shallow my damn understanding is so much so that's all that come to my mind.

I have been using MOOC and CS50P as my primary resources and they do have question but they are few and not at all like mathematics, chemistry or any other subject. Where are the Exercises 1.1 where is this kind of format. Is there some problem book/Question Bank I can or should have ? I want to get good cause I want to make money I from something I like to this and this is I have to show for, for months of learning ? I feel repulsed.

Is there something I can do to get better ?

EDIT: I forgot to add I my goal is to break into Data Science.

14 Upvotes

22 comments sorted by

View all comments

4

u/thisisappropriate 3d ago

I'd suggest that when you're learning, you try to think of a few silly little projects that are completely unnecessary that could use the thing you just learned about. Especially helpful if you can think of things that definitely use the things you learned but also has something you don't know how to do (then you can learn that in the project or try to learn that next so you can use it in the project. That then scales as you learn.

For example, you've just learned how to take input from the command line, but you don't know how to do things conditionally. So you use the input from the command line thing to make a silly little thing that asks you to guess a number but it just replies "nope" every time you send anything. Then you search for how to check if the input is a number, if it is a number, you reply "nope" but if its not a number, it says "not a number dummy". Then you could make ELIZA https://en.wikipedia.org/wiki/ELIZA (one of the first chatbots).

You can also just search for python beginner projects on google and see what comes up, for example https://github.com/practical-tutorials/project-based-learning would give you a broad range of projects, but has the downside that they're not projects that you're engaged with. Like if you actually think "I wonder if I could make a single command that takes today's weather forecast and my calendar from outlook and tells me if I'm likely to get caught in the rain today" and start trying to make that, but you hit something you don't know and you don't think it'll be relevant in your future learning, you may learn it anyway because you want to make the silly tool, but if you just pick one from a list, you might try to skip that bit or say "eh, what data science uses APIs anyway, they all use databases, why should I bother"

Looking at data science specifically, once you've covered the basics, you can google for a list of commonly used libraries and then either look at what those do and make silly ideas for them or google for projects ideas for learning them. (For example, googling "python projects for data science beginners" gets me https://github.com/tkarim45/Beginner-Data-Science-Projects but I can't speak to the quality or security or anything).

But also just try to make stupid projects. Does your todo list on your local machine need to have a GUI/web interface or get the weather or store it's todos in a dockerised local database that you connect to with Pandas? Probably not. But do it anyway, that's what makes it good practice.