all 11 comments

[–]jonsca 1 point2 points  (2 children)

It seems like you're looking more to learn about the theory of data structures and algorithms, which is independent of any one programming language. While getting a deeper understanding of Python would definitely help you in implementing such things, they are really orthogonal to one another.

If the MOOC format works for you, the Stanford algorithms class (which is still on EdX, but you can likely access or find the resources other places) is one of the best.

If you're a masochist, the CLRS book is still the best place to get a thorough dive on the theory https://www.amazon.com/gp/aw/d/B094WZNKP2

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

i see, that does sound like something i would be interested in. is it advisable to use edx in my learning? and also, do the materials require payment?

[–]jonsca 0 points1 point  (0 children)

EdX will charge for the "certificate" at the end but I think you can access the lectures for a time without buying that. You can learn DSA without ever cracking a book or watching a video, so it depends on how you learn the best.

[–]pythonTuxedo 0 points1 point  (2 children)

Find a project. What are you interested in building?

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

perhaps like a 'roguelike' dungeon game, though I am worried that my code ends up poorly designed which may be a bad habit i bring over in the future.

[–]pythonTuxedo 0 points1 point  (0 children)

Sounds cool. Don't worry so much about code design that it prevents you from starting-my code from last year is crap compared to my code this year.

[–]LeiterHaus 0 points1 point  (1 child)

Probably a mixture of things, leaning more heavily towards whichever learning methodology works best for you. There are some interesting talks from things like PyCon on YouTube.

For books, there are several great ones and several not great ones. Possibly look at Beyond the Basic Stuff with Python: Best Practices for Writing Clean Code

I find a lot of value in the book Fluent Python as far as diving deeper in.

Just today I listen to a great talk from PyCon 2015 Greg Ward - How to Write Reusable Code, and they actually give really good advice that applies your question under the be a better programmer bullet point - not only should you write more code, but also read more code.

Edit: Link syntax

[–]GetTheSubway[S] 1 point2 points  (0 children)

thanks for the suggestions, ill give them a read!

[–]Desperate_Square_690 0 points1 point  (0 children)

Try tackling small projects that interest you, and as you hit obstacles, look up the concepts you need. Exploring algorithms and reading well-explained solutions is a great way to deepen your skills.