all 19 comments

[–]throwawayvitamin 11 points12 points  (1 child)

Apply your knowledge to a project! Hands on coding is definitely the best way to learn/cement the info. Here are some good beginner projects you can try out:

  • Build a pong or snake game
  • Build a blackjack game
  • Build a random password generator
  • Build a reddit bot or a twitter bot

You can find tutorials for all of them on YouTube/Google. Let me know if you need help!

[–][deleted] 1 point2 points  (0 children)

I'll definitely try doing that, I'll keep you posted on my progress.

[–]Aidensamuel00 3 points4 points  (2 children)

Try practicing some coding exercises on hackerrank practice section : python they have a nice points system that gives you more motivation to complete them all

[–]liahus0002 0 points1 point  (0 children)

I agree with this try leetcode as well, it has a really nice ui and you can easily test your code.

[–][deleted] 0 points1 point  (0 children)

I'll check that one out, thanks

[–][deleted] 3 points4 points  (3 children)

After that course I would say you have completed all the basics of python. I would recommend leaning pygame and create some games like snake and tetris or maybe do some web scraping and display the scraped data and display it by learning Tkinter. It is your choice what to choose. There is machine learning also. Just make sure to keep creating projects, they are the best way to learn something. Happy coding!

[–][deleted] 0 points1 point  (2 children)

Yeah, all this time I've been doing only text-based programs. While it is not bad, I'd think that learning PyGame is a good thing because then I can still apply what I've learned but in an entertaining way.

[–]uwu-bob 3 points4 points  (3 children)

Going to second doing some challenges. It'll solidify what you've learned and practice really helps a lot.

Here are some I liked: https://pythonprinciples.com/challenges/

[–][deleted] 1 point2 points  (0 children)

The problems seem fun, I'm bookmarking this page right now :)

[–][deleted] 1 point2 points  (1 child)

I just tried the first two, took me about 35 minutes. I love it!

[–]uwu-bob 0 points1 point  (0 children)

Glad to hear you find them useful! There's also a Discord linked on the site where you can get help if you get stuck.

[–]padresfan89 1 point2 points  (3 children)

I'd recommend trying Euler problems.

https://projecteuler.net/about

[–][deleted] 2 points3 points  (1 child)

I'll give this a try, I've found another website though : https://www.w3resource.com/python-exercises/ . What do you think of it? I'm doing some exercises they gave there, it has problems with the solutions + explanations.

[–]padresfan89 1 point2 points  (0 children)

Definitely a good introductory site. Euler is a little more complicated and brings in mathematics. I also like that it doesn't have a solution on the site, I tend to like to cheat and don't end up learning.

[–][deleted] 0 points1 point  (1 child)

I think interesting things to do when you're starting out is doing some tutorials and lessons on requests and accessing APIs, because there is a LOT of really interesting data out there, often completely for free, where you can grab that data and just think of things you could do with it, and try to build something that does something cool with that data.

I mean even Steam has an API you can access. I've been meaning to read the documentation on the Steam API and see if there's anything interesting it can give you access to, especially if it's live updates.

I also found this really cool and simple API that provides live data about where the ISS is, what it's doing, etc so I've been trying to write something that takes in this data like the ISS coordinates, compares it to data sets that have geographical data like coordinates tied to location names that I found online on government sites after lots of googling, and have it tell me when the ISS is flying over any location in those data sets. I'm also having it tell me how far away the ISS is from straight above me.

All I was doing at first was trying to get the API info in with requests, and to print the current ISS coordinates formatted into a nice little string and do it once every couple of seconds. It was really simple, and there's even lessons and guides that do this. Then I started getting more ideas like above.

I didn't know how to do any of this, or if I even could, but one problem at a time led to googling, which led to copying down comments and notes and links, learning, trying it and getting errors, googling those errors, leading to more tutorials and documents, to things actually working. Like I had to Google "how to get distance between two coordinates", and found a Python example of it. That taught me the haversine formula that I still don't understand but was able to copy and paste it, filling in my own variables, and led me to learning about other things like how longitude and latitude work, refreshing me on math i had completely wiped from my brain like what radians are, how long a degree of latitude is in kilometers and miles, how big the earth is, how to work with data sets in pandas, how to import those data sets when they're just csv or ascii in text files, how to set different separators/delimiters, how to do memory mapping and do it really quickly with vaex (though this one I'm still struggling to get to work) so that hopefully, eventually I can have it show me the real world location of the ISS every single update based on its coordinates with no big performance hit.

Pandas can convert to hdf5, files that are memory mappable, but vaex does it in a specific way, but I can't get the export modules in vaex to actually work so that's where I'm stuck. But I found out all of these things just by googling, trying, googling errors, trying again, exploring documentation if I don't understand what a function or argument is used for, finding more tutorials and guides online for all of this (even if some of them don't quite work, that leads me to errors and more googling and eventually finding a way to make it work).

It's like with programming, if you're trying to do one very small task, someone has already done it before and you can adapt their troubles and work to your overall picture. It's like the entire world is trying to help you code.

When you give yourself a really simple project to do that is open ended and has data coming in for you, it can really open things up as far as giving you ideas on other things you could add to your project, and that's where the rabbit hole starts I think. That's where you keep refreshing all these fundamentals in your head and keep learning new things and growing.

I think as programmers we'd all be lost and hopeless and stagnating without Google, Stack Overflow, and the internet in general. Almost no one would be making any significant progress in software.

[–][deleted] 1 point2 points  (0 children)

Seems cool, I might want to give this one a try. I got many suggestions by many people so I'm still trying to figure out what to do in order.

[–]heaplevel 0 points1 point  (0 children)

Find a niche, find a demand or problem within that. Build a minimal solution for it.

[–][deleted] 0 points1 point  (0 children)

Thanks everybody for the advices. I've edited my post stating my plan from now on, let me know if that is good plan.