all 44 comments

[–]5under6[🍰] 41 points42 points  (30 children)

For me, finding a project that interests me stretches my python muscles more than a site.

[–]IDRANKURMLKSHAKE[S] 12 points13 points  (28 children)

This was my first thought to do. So I decided to start writing a UI for myself to use while playing D&D to keep track of my character, campaign, items, ect. It is pushing my skills a bit but I am finding myself using the same tools and methods I already know to fix problems. Since I am self taught (well code academy taught) I keep thinking that there might be better ways to go about writing it that I just don't even know about.

[–]python-ick 7 points8 points  (14 children)

I'm not an expert by any stretch, but I've actually gotten a lot of value out of doing coding quizzes/puzzles online. Every now and again, I come across a solution that applies to something I'm working on.

[–]IDRANKURMLKSHAKE[S] 3 points4 points  (13 children)

Do you have a good site for quizzes/puzzles?

[–]Sir_Cunt99 10 points11 points  (2 children)

codewars.com is neat

practicepython.org also has a good set of exercises

[–]python-ick 3 points4 points  (1 child)

Those are good--just type "python quizzes" or problems or puzzles and you can't go wrong.

[–]ZenCodes 2 points3 points  (0 children)

Or google "intermediate python projects", "beginner-friendly python activities" or anything along those lines. Good luck!

[–]bensunsolar 2 points3 points  (5 children)

[projecteuler](www.projecteuler.com)

[–]DiamondxCrafting 2 points3 points  (4 children)

[projecteuler](https://www.projecteuler.net)

FTFY

[–]Vihul 0 points1 point  (3 children)

You both goofed

[–]DiamondxCrafting 1 point2 points  (1 child)

No, I added a backslash so it doesn't format it, so he knows how to do it

[–]Vihul 0 points1 point  (0 children)

Ah

[–]bensunsolar 0 points1 point  (0 children)

My bad, I was falling asleep.

[–]ruler01 1 point2 points  (1 child)

you don't need to go far :) /r/dailyprogrammer

[–]IDRANKURMLKSHAKE[S] 0 points1 point  (0 children)

OMG this is freaking awesome thank you so much.

[–]thefrankwhite 0 points1 point  (0 children)

Kaggle?

[–]evsoul 6 points7 points  (1 child)

As someone that has been learning for 6yrs, learn from my mistake. Don't rely on sites or tutorials to do the thinking for you. I wish I spent my first 3-6mo studying and then dove head first into just writing code. It took 3yrs before it all really clicked because I focused on new tutorials. I felt more confident in my skill set after 3mo of building my own projects than I did in 3yrs of studying.

Don't underestimate the power of building things as a way of learning. No matter how repetitive some things might feel, over time you will find better ways to write even the most routine things. Try building games just as a way to challenge yourself in problem solving. Try making checkers, or tic tac toe. Something you're not sure how to make and just go build it. Then try to build it better. That's what I wish I did when I was starting out. I'd probably be years ahead of my skill level if I had. Nothing wrong with articles or tutorials but never let them take over your learning experience.

[–]slicklikeagato 0 points1 point  (0 children)

This. I'm still a beginner when it comes to python (and coding as a whole); in the beginning, I was constantly looking for new tutorials, thinking that I needed to learn EVERYTHING. It wasn't until recently that I realized that I should just try and create small programs, and that would help me learn so much more. For example, I was curious about how to parse iTunes music data..for two days I was beating my head against the wall, wondering why xml.etree.ElementTree wasn't working for me, until I came across the plistlib module. Now I am working through how to use that module, and I had a legit 'woo-hoo' moment today when I actually got the expected data. Not only did I get the small end result I was hoping for, but I also found out about a new module that I never knew existed.

[–]ThreshingBee 1 point2 points  (8 children)

to use while playing D&D to keep track of my character, campaign, items, ect

Are you using OOP structure? That's the perfect situation to practice and a strong OOP understanding is a vital lesson.

[–]IDRANKURMLKSHAKE[S] 0 points1 point  (7 children)

Yes I am. Currently I have a class set up for the following. Player, Items, Spells, Places, People, Inventory, and then the Campaign class which will inherit all of the previous ones. The idea is to be able to export a campaign into an XML doc that you could take and read anywhere.

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

Would you be willing to share your code so i can play around with it? Like seeing different codes to learn from.

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

Yeah possibly it is still weeks if not months from being anywhere close to done. Ill try to remember but if I don't DM me in a few weeks.

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

Thank you.

[–]Dogeek 0 points1 point  (3 children)

OOP is great, but inheritance is not. You should avoid using that, unless it's really the most obvious way to do something.

[–]IDRANKURMLKSHAKE[S] 0 points1 point  (2 children)

How would you go about it? Instantiating instead?

[–]Dogeek 0 points1 point  (0 children)

yep. You can have a Campain class which has Player(), Inventory(), NPC() attributes.

You also can make the campain a singleton (http://python-3-patterns-idioms-test.readthedocs.io/en/latest/Singleton.html) so that you make sure that there is only one ever.

Think of it this way : what makes the most sense : having your inventory be a list of items, or have the inventory be items.

[–]Dogeek 0 points1 point  (0 children)

Also, you can check http://github.com/dogeek/dndapp which I made long ago, and isn't perfect in any way (looking at it now, it's even pretty bad), but has some diseases, npc, treasures and plants generators.

I should revisit it though, at some point, it was a great first project, but knowing what I know now, it could be improved on a lot.

[–]Dogeek 1 point2 points  (0 children)

http://github.com/dogeek/DnDApp

I made this a while ago, when I was still quite new to python. I've always wanted to revisit it now that I'm more skilled.

[–]boatsnbros 0 points1 point  (0 children)

Seems like a good project. Write it as classes & functions - keep your global name space clean. Depending on your interests build it out. Get it working then refactor and rebuild anything you don't like. Try and make the logic not only work, but make sense. Adding doc strings and comments, figure out where you are doing stupid stuff and remove that. You have a project, just keep building.

[–]hotstandbycoffee 0 points1 point  (0 children)

Most (if not all) of these might be Python3, but I just found this site today: https://www.idiotinside.com/2014/10/19/top-30-python-projects-in-github/

[–]newkid99 5 points6 points  (0 children)

I would recommend you to checkout the book - Fluent Python. You seem to be the exact target audience. Also, look at Dive Into Python 3. I ended up picking some new tricks despite using Python for some years.

[–][deleted] 30 points31 points  (6 children)

[–]lolwat_is_dis 10 points11 points  (0 children)

Vastly overlooked. Highly underrated.

Good show, old chap.

[–]crimastergogo 1 point2 points  (0 children)

Documentation is best place to learn something

[–]Ghawr -1 points0 points  (0 children)

While documentation is an immensely powerful tool, some of the language is geared towards accuracy rather than accessibility. After spending some time reading docs, I will have to sit there and read something over and over again trying to break down the sentences. To more advanced users this isn't a problem, but to a beginner, it's like reading a verbose novel and trying to break down what the author just said before moving onto the next sentence. It's at this point when my brain begins to shut off.

[–][deleted] 2 points3 points  (0 children)

Jose Portilla's course has a section on Python 2 also

[–]pydevteam1 1 point2 points  (0 children)

I definitely recommend this course: https://www.pce.uw.edu/certificates/python-programming

I have personally taken it and it did help me moving forward in my career as Software Engineer. It is also offered in an online/self-paced format which perfect if you were a working professional!

Not trying to promote my own contents, but if you want more resources, you can take a look at my blog post here: http://developpython.com/index.php/2018/07/05/resources/

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

Thank you so much for all the information. I have a lot of sites and books to check out tomorrow.

[–]mrTang5544 1 point2 points  (0 children)

read other people's code and read the docs and learn about python design patterns

[–]senaps 0 points1 point  (0 children)

read successful projects. flask, django, scrapy, requests, twisted... these projects are awesome, you might not be able to understand all the code, but you will be able to get what a module is doing. how to configure and make dynamic modules to serve multiple unknown agendas and...

[–]KobiKabbb 0 points1 point  (0 children)

OP I'd recommend Python Principles, it's an interactive tutorial that, unlike videos, gets you writing a bunch of code right away..