I've just finished reading Eric Matthes' Python Crash Course. A book which I found great to learn Python within a short time. The learning process wasn't really hard for me as I was already familiar with programming in other languages. Now I'm done with it and I've just started learning Django since the past few days. Meanwhile, I want to keep practicing Python to avoid forgetting advanced Python topics such as OOP. I've been searching and experimenting different resources these past couple of weeks. I tried some online courses covering real world projects, creating GUI with Tkinter, Implementing useful algorithms, etc. But I didn't find any of them really suitable for what I'm looking for. I even asked GPT (!) for some suggestions and I got to know some famous books such as Python Playground, Python Projects and The big book of small python projects, but I just can't stop feeling uneasy about the issue and finding a good resource for this matter to keep on working on more Python projects beside the Django learning, in order to solidify my Python knowledge and avoide forgetting anything. So I wanted to ask someone who has more experience in Python learning journy. Is there anything you guys wanna recommend me? Any advices?
-
$\begingroup$ It's good to practice, but I don't quite follow how forgetting OOP is a concern. If you understand the fundamental concepts behind OOP, which it sounds like you do, then it's OK to set the tool aside until you need it, then look up necessary syntax when the occasion arises. Expert programmers don't memorize everything. They're good at familiarizing quickly on whatever skills or concepts are needed to do get a task done, building on a reasonably solid fundamental foundation and experience. $\endgroup$– ggorlenCommented Sep 21, 2023 at 2:40
1 Answer
If you want to learn Python (or anything) practice it, and not just on easy exercises. My best advice is to take on a large project, even one that you have done before in another OOP language, if that is in your skill set, and build it in Python.
Even better, let someone else specify the project and give you feedback on your product. Even better, if they are a better Python programmer than you, they can give you feedback on your "mad skilz".
One problem with a language like Python, when you know another language is that you might find yourself writing "misspelled Java" (or whatever). Python requires a different mindset (experience speaking as I have written books in both languages). And to by "pythonic", if that is your goal, requires something more.
But if you want to be an olympic swimmer, then you swim a lot, and not just easy splashing in the pool.
Perhaps one of the books you already have suggests a large project. Even if it isn't a Python book, it might do fine. Write programs and test them. Make them correct. Make them pretty.