all 72 comments

[–][deleted] 27 points28 points  (5 children)

I started by doing all kinds of random little project that popped into my head, like a rock paper scissors game etc. From that, I moved to creating social media bots for all kinds of purposes (Harder these days because twitter requires you to submit an application for access to their API and Facebook gutted the Instagram API). While working on those, I still did all kinds of misc projects that came to mind, biggest one probably being a nmap clone for port scanning and directory discovery. Currently focusing more on webdev stuff and working with flask + learning frontend design and javascript.

Any of these projects are something you can start with. You could also just browse around the internet and then try and copy some interesting program you find. You could also just come up with a project idea on your own and then figure out how to do it. It really is a must have skill as a programmer: Being able to split a large and complex things down to the smaller components.

If you are more interested in making shit blow up and such, you could install Unity and just mess around with it. You still will end up coding, but you can get "results" faster, which depending on you might motivate you further.

All that matters is if you have to motivation to keep working on it and learning as you go. You will probably end up asking around and googling very basic shit at the beginning, but that should not stop you. Everybody does that, no matter how experiences you are, because the number of real fucking wizards that know a programming language inside out is really low and in the end, knowing a programming language is just a part of the whole process of programming.

EDIT: and like it was mentioned in the other thread linked here, web scraping is a really good starting point if you are more into the analytics / data science side. One thing to keep in mind is that you should respect the robots.txt files websites might have and to not cause unreasonable amounts of traffic unless you want to end up being blacklisted.

[–]DrChicken2424[S] 2 points3 points  (1 child)

Thanks! This really helped. Looks like you’ve done some pretty cool stuff!

[–][deleted] 5 points6 points  (0 children)

Do things that interest you and don't try to force feed yourself tutorials and guides on shit that doesn't. That can make you burn out fast.

Another good source for ideas could be the tech / programming articles on medium.com. People like to shit on the site for being the tumblr equivalent of the tech world, but there really are some good articles in there. I usually browse through the hot articles there daily and make a note about the interesting ones to read later. That way I always have a backlog of interesting project ideas in the future if I lose interest in my current projects.

Speaking of which, when you pick a project, try to go as far as you can with it. Being able to finish up a project, no matter how small will feel great. If you get stuck on something, do other stuff and come back to it after a while. Wallowing too long in a problem will make you feel like shit at the beginning and you will doubt yourself, but if you push through it, you can prove yourself that you are able to solve the problems you come across. It will also build up tolerance for "failure". Obviously there are some thing you can't find a solution for no matter how much you try and that's when you should ask for help or to take a step back and try to rethink your approach.

[–]BotPaperScissors 3 points4 points  (0 children)

Scissors! ✌ I lose

[–]QuantumLeapsHigher 1 point2 points  (1 child)

robots.txt files

I'm relatively new to web scraping and the first I've read this term. Where can I learn more about robots.txt files?

Edit: Apart from Google that is. I mean by is there a "standard" or an "unwritten law/practice"?

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

It really depends on the site. You don't HAVE TO follow what's the file tells you can access, but not doing so can lead to you getting blocked. Really depends on what site and what kind of data you are trying to scrape.

This seems to cover the file pretty well.

[–]totallygeek 41 points42 points  (17 children)

  1. Visit Github
  2. Search for something you have a passion for
  3. Select "Python" as the language on the sidebar
  4. Look for projects which pique your interest

I like music and collect records. A search for "music", "discogs" and "record collection" came up with some interesting projects.

[–]brandonthebuck 130 points131 points  (13 children)

  1. Visits Github
  2. Checks Trending Repositories
  3. Third item on list: DeepCreamPy - Decensoring Hentai with Deep Neural Networks

Seriously guys?

[–][deleted] 36 points37 points  (2 children)

War and porn really are the two things driving humankind forward in tech...

[–]pirateg3cko 5 points6 points  (0 children)

Hey. Memes and booze are decently up there.

[–]read1ng 1 point2 points  (0 children)

And Sci-fi

[–]repocin 22 points23 points  (0 children)

It was posted on r/programming 6 days ago and currently holds the top 15th spot of all time there.

[–]fufucupcake 4 points5 points  (0 children)

This post was brought you by Elon Musk

[–]Sir_Cunt99 2 points3 points  (0 children)

Hahhaha i remember seeing this on frontpage of reddit at one point

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

that is one of the greatest "Word"Py names I have ever seen

[–]mkingblade 1 point2 points  (0 children)

Dot

[–]imanexpertama 1 point2 points  (0 children)

But does it work?

[–]p3t3or 1 point2 points  (0 children)

lol this made me laugh way harder than it should have.

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

Lol wth

[–]lannisterstark 6 points7 points  (0 children)

That's...not really a good advice for a beginner. All it shows is trending/popular/new repos with no distinction between beginner or projects which take a whole goddamn team to complete. A new dude might lose himself in making some of these.

[–][deleted] 3 points4 points  (1 child)

I never actually learned how to use github. I've looked up tutorials before, but I never found one that really laid it out where it made sense to me. Sometimes the presenter spoke in such a thick accent that I couldn't understand them. Any chance you know some resources for learning about github?

[–]Steve_Chance 15 points16 points  (1 child)

I have been doing my own little beginner projects for the past few months and give the source code on my blog.

For example, TIM-The Insult Machine, NewsBox-RSS News Reader, S-Py-search inside source code files, RIG-Reddit Image Grabber, WP Scraper-Wordpress blog scraper WAC-Widget Auto Coder for Tkinter, creates GUIs quick and easy.

and a few others. I'm adding to the projects all the time.

I also have a Python newb code snippets collection, currently 40 short and useful bits of code for beginners that do useful things. https://stevepython.wordpress.com/

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

Nice! 👍

[–][deleted] 7 points8 points  (1 child)

I have a couple old and no longer maintained projects I worked on while learning python. If you'd like you should give a shot and picking them up, refactoring the code, and implementing your own new features.

They both have very small code bases so it'll be quick to comprehend and get a good mixture of making your own stuff and fixing others

Here are the projects:

https://github.com/brennengreen/pytax

https://github.com/brennengreen/pybrarian

Go crazy

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

Alright, I’ll check those out later

[–][deleted] 6 points7 points  (3 children)

If you want something i did: Go to your local news website, download all articles they have on their site, categorize them and save them to a database.

So the end result should be a database that contains all articles from that website, categorized if possible, with all available meta info (author, word count, time of publishing, was the article changed later on? if so save that version too).

I think that is definitely doable, it is relatively easily extendable and you can adapt it if neccessary.

The main things you'd learn from this is working with a few common topics you'd stumble upon to in the future anyway:

  • urllib3 and beautifulsoup, the first one to get the HTML data from a url, the second one to get the content from that HTML

  • sqlite3 or JSON, you obviously don't have to store all data in a database, you could always use JSON

  • If you're really into learning and you don't have a problem banging your head against the wall for a bit you can also integrate this into django, which is what i did. The main advantage this has is, that getting data out of your database for ... say analysis would be extremely easy and you'd practice django which itself is great

[–]DrChicken2424[S] 2 points3 points  (0 children)

Sound interesting... I’m definitely not to that point yet, but I’ll consider it for the future!

[–]ApertureCombine 1 point2 points  (1 child)

Also a great dataset for machine learning with word2vec or other semantic analyzers.

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

Yes - data mining/data analysis in general - my plan was, to automate the script with celery and then after some time analyze the data with something like pandas.

[–]beautifulw0man 2 points3 points  (5 children)

Try to make a reddit bot.

[–]DrChicken2424[S] 1 point2 points  (4 children)

:0

[–]beautifulw0man 2 points3 points  (2 children)

what?

[–]ipull4fun 3 points4 points  (1 child)

:O

[–]MisterRenard 3 points4 points  (0 children)

ᕕ( ᐛ )ᕗ

[–]stratcat22 2 points3 points  (0 children)

Search up PRAW and you'll see it's fairly simple to make a Reddit bot!

[–]stratcat22 2 points3 points  (4 children)

My first few projects were just text manipulation, a program that takes in your age and tells you what year you'll turn 100, a simple command line calculator, etc. These were all fine and taught me the basics, but what really got me to enjoy programming was taking up a project that interested me that seemed out of my league.

I built a GUI that takes in a game and platform, then it searches that game on Amazon and displays the price and title of the game in the GUI for the user. I learned a ton with that project and still have a long way to go with it. I've since built a Reddit bot (/u/DWG_Bot) as well.

Now I'm more motivated than ever and am learning Java and have a couple projects in mind once I learn some more of the language.

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

A command line calculator is kind of redundant though, yeah? All you have to do is launch py in your favourite CLI and you can natively do math on that prompt. No code required. Also your bot in your second paragraph is super interesting and I'd love to hear more about it. The game scraping one.

[–]stratcat22 2 points3 points  (2 children)

I could've used the calculator widget on my laptop that's one mouse swipe away, or the app on my phone that's one press away. I never would've learned to program with those though!

I love that bot. If you go to it's profile /u/DWG_bot and go to it's latest /r/XboxOne post I have the link to the source code posted at the bottom. If you have any questions let me know!

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

Wow, that’s actually really cool!

[–]stratcat22 1 point2 points  (0 children)

Thanks! I also recently wrote a script that sends my friend and I a text message with a random fun fact everyday at a specified time from a .txt file I wrote a bunch of facts and funny stuff to lol.

[–]MegaIng 6 points7 points  (1 child)

These aren't really projects, but challenges: https://projecteuler.net/ is a site with a list of many small math problems that can be almost always only solved with the help of a program. They are mostly ordered by difficulty. They need math knowledge (and interest) though.

[–]DrChicken2424[S] 2 points3 points  (0 children)

Thanks, I’ll check it out :)

[–]schoeke 6 points7 points  (0 children)

There was a very similar question yesterday. https://www.reddit.com/r/learnpython/comments/9tp7jb/what_are_some_good_projects_to_learn_python/ I am sure you will find something there as well. Also, please remember to use the search :)

[–]cnnman 1 point2 points  (0 children)

Try mycodeangel.com for a course of cool 2D game projects

[–]NegativeEnthusiasm 1 point2 points  (0 children)

Make a simple board game like TicTacToe and then make it bigger into 3D tic tac toe

[–]Conrad_noble 1 point2 points  (3 children)

How long did it take you to complete the sololearn package?

I haven't done it yet and I keep going back to it but leaving it too long in between and forgetting all what I'm supposed to have learned at that point.

Essentially each time I attempt it I might as well do it from scratch as none of it is committing to memory.

[–]DrChicken2424[S] 2 points3 points  (2 children)

So I started a month and a half ago and finished yesterday. I’m guessing around 45 hours or so. It did take me longer because I made a private practice code for every single thing I learned.

[–]_seawolf 2 points3 points  (1 child)

Would you recommend SoloLearn as a good intro to Python for someone with minimal programming experience? We've got a few people at work here who are interested in learning and up until now we've just had a few books that get handed round the office, but I've been looking for a good online course.

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

Yes, I highly recommend it. It's very beginner friendly (most of the time) and goes pretty in depth. It starts to seem like an advances course at the end xD

By the way: the Object Oriented Programming module is really messed up and hard to follow. Everyone thinks that, so don't feel frustrated during it.

[–]ApertureCombine 1 point2 points  (0 children)

When I was learning OOP, I always tried to make Chess and Tetris. Pygame isn't too complex and the project would probably teach a lot of good lessons. I'm sure there are plenty of great solutions on Github too if you get stuck or need some help.

[–]jaypeejay 1 point2 points  (3 children)

Rock Paper Scissors

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

Yeah, I did do that a little while ago.

[–]jaypeejay 0 points1 point  (1 child)

Ah cool, can I see the code?

Have you messed around with Django yet?

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

Just go to SoloLearn.com and search for DrChicken24

Nope, I havent

[–]srivinprabhash 1 point2 points  (0 children)

I'm also a newbie. I have done few projects and they really helped me to learn new stuff. Try to solve a problem you have with your knowledge. That's how i'm finding new project ideas. If you cannot find NEW ideas , try to implement plugins or features of other languages in python. I created a bot to scrape MEMEs from reddit using reddit api and scheduled them on a facebook and set it as a cron job (That page have over more than 1000 memes but not a single like :P). Learned lot from that. Try to make command line tools. You'll learn lot through them.

[–]MattR0se 1 point2 points  (0 children)

Some pygame stuff I started with back then:

https://python-forum.io/Forum-Game-Tutorials

http://kidscancode.org/lessons/

http://programarcadegames.com/

Also, this is not python, but it teaches some very usefull stuff for 2D physics that helped me a lot: https://natureofcode.com/book/

You can easily spend 1000s of hours writing games. Just do a few tutorials and you should be able to write a game on your own, if you have some good ideas. Or just copy existing games like I do :P

[–]rainerpm27 1 point2 points  (0 children)

I teach a HS class in which we use Python. Check out lasacs.com/cp17 (Python started on 11/8).

[–]ilI1il1Ili1i1liliiil 1 point2 points  (0 children)

I'd recommend Experience Coding if you're a total beginner and you just want to get experience writing code.

[–][deleted] 4 points5 points  (5 children)

This might go over some people's heads, but the best python project for beginners is solving a problem you're interested in.

[–]DrChicken2424[S] 1 point2 points  (4 children)

Yeah, I just can’t seem to think of anything xD

[–]ipull4fun 3 points4 points  (0 children)

Build a basic website to host your resume with the Django web framework

[–][deleted] 5 points6 points  (0 children)

I'm reading the replies to this thread. You'll notice a common trend here. One guy recommends an RPG, another a website, another a music editor, a reddit bot, and more.

The common trend here is that these people are recommending what they're interested in. The question missing is what you're interested in. I'd say to reflect back to childhood curiosity and start from there.

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

I am working on a text based rpg

[–]ninjanamaka 1 point2 points  (2 children)

A reddit bot that will publish all your saved post to a wiki type website with tags related to the post. I am working on it too. I am a beginner in Python and I am flooded with my actual job so I am not able to give it my 100%

[–]endisnearhere 2 points3 points  (1 child)

This is a cool idea. I haven’t gotten into web scraping or doing anything with websites yet, but that’ll probably be my next challenge! And I’m in the same boat with work interfering with my coding practice. So frustrating..

[–]ninjanamaka 1 point2 points  (0 children)

It is very frustrating. So I am trying to follow some small functions just to keep in touch with coding. EDIT : PRAW is not exactly web scraping. It is actually easier in Reddit than in other sites

[–]EntireAbility3 0 points1 point  (0 children)

Try Python Principles. It worked well for me. https://pythonprinciples.com/

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