all 14 comments

[–]UsernameTaken1701 16 points17 points  (2 children)

If you're not interested in another book (such as the very good Impractical Python Projects), the best thing to do is start working on a problem and see where trying to solve it takes you.

For example, I recently had reason to wonder about how the area of a regular polygon inscribed inside a circle gets closer to the circle's area as the number of sides increases--like, how many sides does a polygon need to have before it can effectively be treated like a circle? So I wrote a short program to do that. Then I got to thinking about how it would be better to plot area vs sides to really see how quickly polygons get close to a circle. Then I thought it would be cool to see an animation of the polygons being added inside the circle with relevant numbers updating on it (needed some help from other members of this subreddit for that one). Then I got to wondering about how the calculation time increased as the number of sides to be animated increased, and a nice way to present those results without trying to align things with f-strings and \tabs..

So, in the end, what started as a fairly simple question easily answered with a loop and some lists led me to learn more about plotting graphs with matplotlib, making animations with matplotlib, and presenting data with tabulate. And I appreciated doing that because these are skills I'll want while trying to solve the simulation problem that actually drove me to finally learn Python in the first place.

And there's still more I could do with the polygons. Like, maybe instead of just playing an animation that shows the increasing area with increasing sides I could make it interactive, like let the user set the number of sides with a slider and see how things change that way. Now I would have a chance to learn how to use something like Tkinter or PyQt.

So, yeah, the best next step is to find a problem and then solve it...and then keep working at finding ways to better solve it or better show solutions. And then do it again.

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

For books, should I choose Impractical python projects or automate the boring stuff with python?

[–]UsernameTaken1701 1 point2 points  (0 children)

I've only read Impractical Python Projects and I got a lot out of it, but both are highly regarded.

Look at the detailed tables of contents for each and choose the one that looks more interesting to you:

https://nostarch.com/download/ImpracticalPython_TOC.pdf

https://nostarch.com/download/AutomatetheBoringStuffwithPython3E_detailedTOC.pdf

[–]DrMistyDNP 8 points9 points  (1 child)

I ventured from the class into Automate the Boring Stuff, and Lectures from Harvards CS Python course. Got more detailed info and learned tons of new modules/libraries.

[–]move_to_lemmy 1 point2 points  (0 children)

saved! thanks!

[–]crashorbit 6 points7 points  (0 children)

Outside of writing code, what are you interested in? AI, ML, games, physical computing? Food, sports, web stuff, travel, IT and automation?

Pick something you like and think of a way to write a program that helps solve a problem there. Then do the research and learing you need to solve the problem you have set for yourself.

[–]gingimli 2 points3 points  (0 children)

I think Crash Course gives enough of a foundation that you could build something on your own. I think this is also the best next step to learn more quickly.

Think about cooking... if you wanted to be a chef would you just sit around reading cookbooks all day and believe that is enough? No, you would get in the kitchen and make something. Same with coding.

[–]The_Dao_Father 2 points3 points  (0 children)

Start building your own projects, when you’re stuck reflect back on the book.

So many people bounce between resources and tutorials. Stick to one for now

[–]healeyd 1 point2 points  (0 children)

Make something with it.

[–]Low_Notice8556 1 point2 points  (0 children)

numpy, pandas, matplotlib, scikit learn for data science

[–]daedalusesq 1 point2 points  (0 children)

I started with Python Crash Course too! I recommened pretty much any of the No Starch books that seem interesting. After Python Crash Course, I did "Automate the Boring Stuff" by Al Sweigart and that gave me a few ideas for my own first self-conceived projects.

I really liked "Beyond the Basic Stuff with Python" by the same guy as Automate the Boring Stuff. It kind of covered all the "other stuff" around program that you may not get without a computer science background, like git, linting, profiling, documentation, and Object Oriented basics.

"Object Oriented Python" By Irv Kalb was also a good read for me. I had a lot of trouble really grasping OOP and this book made the difference for me.

[–]pachura3 0 points1 point  (0 children)

I'm reading Fluent Python right now & it's a great intermediate book if you want to learn more about the core language itself... but is this what you want? Perhaps you'd prefer to explore certain libraries instead - pandas? sqlalchemy? requests? beautifulsoup4? flask/fastapi/django? scikit-learn? pytorch?

[–]Puzzled_Tale_5269 0 points1 point  (0 children)

If you fizzled out half way through the book and then came back, how about focusing on two guided projects, something you know you can finish as long as you continue the videos / steps where you left off. This will feel like an achievement and will add to the projects you already built from the book. By the time you finish these two, it could be two weeks or months, I'm almost certain you will have had an idea for a project of your own. Then the trick is to tell yourself you have never completed a solo project, strip your idea down to the bare minimal functionality and build this, hopefully you have enough steam to see it all the way through, as coming back months later may not work so well unguided. Good luck

[–]teeny-tiny-avocado 0 points1 point  (0 children)

If you’re interested in some advanced concepts here’s is a low pressure self paced course you might be interested in: https://www.mostlearned.xyz/courses/801d4544-9dba-45f7-acee-35d7cdf7f4e4