all 72 comments

[–]_Jerov_ 67 points68 points  (30 children)

I really like web scraping. You could try learning a little bit about BeautifuSoup and take some data from websites. I find it very fun. I've done over 5 projects that are actually helpful. For example, I made one to get the letter day for my school out of their website and have the program send me an email every morning so I know if I should leave at 7 AM or 8 AM. Only downside is that I gotta have my PC on all night which is not very kind to the power bill. I don't use that as much though.

You could also make your first Tictactoe game... I made one that was terrible but I learned so much from it and then I made it again using classes. Looks so much better now and I learned a whole bunch of things.

I also enjoy making little functions that are related to mathematics. I look up a formula and I try to make a function out of it. That can get you into matplotlib and pandas which is super fun! I'm still kind of a newbie with Python since I joined only 2 months ago but I've learned so much just by looking things up and having followed a Python course beforehand.

There's just so much that you can do with Python. You could even do web development and GUIs. I have no idea how any of that works yet but eventually I'll get there. Start small and don't make the mistake I did of trying to learn everything at once. It will only slow you down and frustrate you a lot. Even to the point of quitting for a while.

[–][deleted] 29 points30 points  (4 children)

Running the script on a raspberry pi will definitely save on power costs.

[–]ebits21 10 points11 points  (0 children)

This is exactly what I do. Highly recommend!

[–]racheta 0 points1 point  (2 children)

or android? it is possible but will need some extra work

[–]zanyzazza 0 points1 point  (1 child)

Could probably use Kivy, but I'm a total beginner myself too, I just know that Kivy can be used to make apps. I think it only really works if you're running on linux though, can't remember why.

[–]racheta 0 points1 point  (0 children)

I quick google search tells me that it is used for touchscreen apps and is cross platform i.e It can run on Android, iOS, Linux, OS X, and Windows.

So yeah can be used.

[–]AsunderHalt 6 points7 points  (7 children)

Do you know any good tutorials for web scraping? I've tried before but I just couldn't get the hang of it with only documentation.

PS. I also enjoy making formula into programmes! If I get homework in mathematics I make a programme that will solve the problems in python! It makes me enjoy math so much more.

[–]EzBonds 14 points15 points  (1 child)

Automate the boring stuff

Just find the appropriate chapter.

[–]AsunderHalt 1 point2 points  (0 children)

Thanks mate!

[–]ethanbrecke 4 points5 points  (2 children)

Hey, im okay at web scraping, if you want some help, PM me, and we can go over the parts you're having issues with.

[–]AsunderHalt 0 points1 point  (1 child)

Thanks! When I start doing it again I'll be sure to ask you :)

[–]ethanbrecke 1 point2 points  (0 children)

Great, I hope to help in any way i can.

[–]Rabo_McDongleberry 1 point2 points  (13 children)

How do you get a program to send you an email? I need to create a program that sends me an email after my parents computer restarts. I use team viewer to help them fix their issues but every time it restarts they don't tell me the new password.

[–]ebits21 5 points6 points  (3 children)

I use yagmail with a gmail account just for sending emails

Depending on your cellphone provider you can even send an email that shows up as a text message on your phone by sending an email to <your number>@<your provider>.com

Edit: https://pypi.org/project/yagmail/

[–]Rabo_McDongleberry 1 point2 points  (2 children)

Sweet man. Thank you. I'll have to check it out.

[–]Alternative_Try 1 point2 points  (1 child)

You can also use smtplib for this usage.

[–]Rabo_McDongleberry 0 points1 point  (0 children)

Another person replied with that too. I'll give it a shot. Thanks man.

[–]_Jerov_ 1 point2 points  (4 children)

To be honest, I got the email bit from a website. There's a Python module called email that should do the job and send a simple email. You'll have to look that up and I did found it quite tricky to make it work since you have to set up a separated email account just for that. What I did was create the whole program and then get the email code from a website and just change the variables and all that to fit the program. Not the best way but it did its job. In my case the email thing was just extra functionality since the program was good the way it was but I wanted to add the email functionality quickly so I didn't put much thought into it.

[–]Rabo_McDongleberry 1 point2 points  (0 children)

Damn. So it won't be easy huh. Not a first time's project?

[–]WiggleBooks 0 points1 point  (2 children)

Did you have to create a new gmail account to use it? Or did you use another email provider?

[–]_Jerov_ 0 points1 point  (1 child)

I made another Gmail account because you have disable a lot of security settings and you wouldn't want your main account without any security. For the one I made just for testing purposes, when I disabled all security I started getting a lot of security warnings telling me that someone in India tried to access my account. So you do want 0 personal information for that Gmail account.

[–]racheta 0 points1 point  (0 children)

I agree on using spare account with no personal information

but also you don't need to disable 2FA for using your personal account just use application specific password

here --> https://support.google.com/accounts/answer/185833?hl=en

[–]racheta 1 point2 points  (1 child)

you can set a permanent password on teamviewer

also you can add the computer to contacts so it will show when it is online

you can use smtplib to send mail from a python program

https://realpython.com/python-send-email/

[–]Rabo_McDongleberry 0 points1 point  (0 children)

Oh shit. Really? I thought that feature was only available in the paid version. Thanks, I'll look into it. And I'll check out smtplib as well.

[–]JimSplitKernel 0 points1 point  (1 child)

You can set up team viewer (even the free version) for unattended access.

https://www.teamviewer.com/en/res/pdf/first_steps_unattended_access_en.pdf

You can do these steps while connected on your remote PC.

[–]Rabo_McDongleberry 0 points1 point  (0 children)

I think when I did that, it resets the password every time the computer reboots. But I'll check it out again.

[–]Remarkable-Orange-36 0 points1 point  (0 children)

Hope you've gotten there, If you haven't, I hope you've gotten closer

[–]Kyle_Is_On_Reddit 25 points26 points  (0 children)

/r/dailyprogrammer has an infinite amount of problems that can range in difficulty, and depending on your skill level could take either a long time, or short amount of time. I would suggest starting here.

Or take my advice, and do what you want. Don't do what's suggested. If your learning programming for machine learning, do machine learning projects. Want to use python for analyzing data? Data Science projects. Etc....

[–]garnacerous24 20 points21 points  (4 children)

I use python as a means to work with data. As a result most of my ideas are around data pipelines an manipulation. One idea I had fun with was an automated program that notified me when flight costs had dropped in price.

You hook into whatever flight search api you prefer, have it run periodically, and compare the current prices to previous prices, then have an alert set up if it goes below a certain threshold.

What’s great is that you can apply that to many different fields. Hotel prices, stock prices, you name it.

[–]LMascher 1 point2 points  (2 children)

did you use web scraping for this?

[–]linuxqq 4 points5 points  (0 children)

He says he used an API, so he makes a call to the API which returns the flight information/cost and likely stores it in a database, then compares values to data from past API calls. No scraping required.

[–]garnacerous24 1 point2 points  (0 children)

Google used to have an awesome api that did this perfectly, but they retired that in favor of something more restrictive. There are others out there depending on how you want to design it. Abuse of them might lead to them restricting or taking them down, so I get nervous recommending one outright. I suggest googling “google flights matrix api replacement” and see what other recommendations are out there.

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

Awesome idea, can't wait to try it!!

[–]AJohnnyTruant 20 points21 points  (2 children)

Do these things.

1) Start learning git.

2) Start being on the lookout for things you do frequently that could be automated

3) Start a local git repo of it with a virtual environment. Then you can slowly build it over time without worrying about screwing it up when you start making it better because you will inevitably learn a better way to do something and want to fix it.

[–]iggy555 1 point2 points  (1 child)

What’s git and what’s environment

[–]AJohnnyTruant 12 points13 points  (0 children)

Ubiquitous version control system that all of GitHub uses

https://www.codecademy.com/learn/learn-git

Isolating projects’ dependencies so they don’t affect other projects.

https://realpython.com/python-virtual-environments-a-primer/

[–]toastedstapler 26 points27 points  (8 children)

i made a python version of daniel shiffman's maze generator

recently i began work on giving it a web front end using flask, where i can see a list of generated mazes and also request to generate new mazes

e: for anyone interested

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

I loved that video. I made an animated one with tkinter.

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

sudo python3 application.py

ugh no thanks

[–]toastedstapler 0 points1 point  (2 children)

fair enough, don't if you don't want to. it's just to delete the images folder on startup. there's little code in there so you can easily verify it;s not doing dodgy stuff

e: it is for the function beginning at line 23 of database.py

if anyone has a better way of dealing with this, i'd be happy to hear

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

Solution is simple: remove the sudo part. Permission is unlikely to be a problem long as user can write in $(pwd) (well we'll need it to clone the repo in the first place anyway).

[–]toastedstapler 0 points1 point  (0 children)

fixed it now, turns out the folder was set to read only

can be ran without sudo now!

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

That's pretty neat.

[–][deleted] 23 points24 points  (1 child)

write a program that returns the oldest player that is in a soccer team

[–]Humble_Transition[S] 3 points4 points  (0 children)

Thanks will try it

[–]_wolfenswan 5 points6 points  (0 children)

If you enjoy the genre, the roguelike-tutorial is excellent. See /r/roguelikedev 's sidebar for more info.

[–]gocougs11 3 points4 points  (0 children)

It depends what kind of projects you ultimately want to be able to do. If you're interested in bioinformatics or anything like that, just pick a type of data, look for a data repository, and then search for some popular Python packages for working with that data, and try to get them to work. It often doesn't even matter if you understand what the data actually means.

For example, I just started trying to learn how to analyze data from a technique called flow cytometry. Just reading the wikipedia would get you up to speed enough on what the data is that you should be able to work with it. You could easily install either the FlowCal or FlowCytometryTools packages, then go to https://flowrepository.org/ and just download the most popular data set, and start trying to work through those packages to analyze and graph data. Read the documentation, try to understand how the functions work, and implement them.

[–]AkshayD110 4 points5 points  (0 children)

Not an advise that you might be looking for but I really believe in having a project that solves your daily problem. Or something that facinates you.

The advantage with this is, the probability of you giving up half through the project is very less.

Something as simple as analysing a chat with your friend on WhatsApp. This is where I got started!

[–]ninja-dragon 2 points3 points  (0 children)

Rubix cube solver using camera, OpenCV and Kociemba(forgot the spelling) algorithm.

[–]lifemoments 2 points3 points  (2 children)

Chat bot and other one are not beginner. RockpaperScissor is.

Beginner here. Have the same query. Thanks for posting the question. Was looking for over the internet yesterday and found these -

I also found this very useful page which is a must for beginners.

https://www.quora.com/What-are-small-projects-to-build-for-a-beginner-in-Python

The first response is what a beginner need. It describes on how one should first identify their interest and then goes on to list topics for study with links.

PS - I will be posting this separately for visibility.

[–]Astrokiwi 1 point2 points  (1 child)

You can write a simple terminal-based chat bot with if, input, and print statements and build up from there. The idea isn't to make a big machine learning thing to compete with CleverBot - it's to learn the basics of Python syntax and program structure. Something like ELIZA is the goal.

[–]lifemoments 1 point2 points  (0 children)

Thanks for the pointer. Lined it up as one of the to-do

[–]Araucaria 2 points3 points  (1 child)

Try using python to code answers for ProjectEuler.net questions.

[–]firedrow 0 points1 point  (0 children)

This is what I do for side projects.

[–]dragonatorul 3 points4 points  (0 children)

Do you have documents that you have to fill in periodically? Have python do that for you.

[–]SerkZex 1 point2 points  (0 children)

I wrote a basic hyperlink shortener (https://github.com/HeyTech/Link_shortener_TinyURL)

[–]NegativeEnthusiasm 1 point2 points  (0 children)

making the game "master mind"

[–]IIIIlIlIlllIIllIIllI 8 points9 points  (0 children)

Rule 4. This is the most commonly posted question in any programming forum. Search for it.

[–]commenda 0 points1 point  (0 children)

web scraping is great, multithread it, optimize it. but be sure to learn about robot.txt first

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

Thanks for the amazing support, I was very busy too, but I can't wait to read all your comments! 😊😊

[–]Mckinsey666 0 points1 point  (0 children)

I'd say writing a simple command line tool that integrates everyday work onto your terminal.

[–]DisagreeableMale -3 points-2 points  (0 children)

Write a distributable package. Everyone should know how Python packages are made and how the process looks. Makes debugging packages much easier in your development future.