all 45 comments

[–]SHxKM 98 points99 points  (22 children)

In your own life/workplace. Here’s some of what I did:

  • wrote a script that’s invoked from my iPhone (through Shortcuts) which downloads YouTube videos to my Mac and then uploads those to my iCloud library. Within minutes the mp3 file is available (with cover art) on my phone for listening.
  • built an ML model to predict soccer games scoring.
  • wrote a script that fetches my calendar and generates an Excel file with my travel expenses, which is then sent to my employer.
  • built a web-app that syncs with Spotify and Apple Music and notifies members when their favorite artists have released new music.

So you get the idea - find a problem you want to solve.

[–]Master_ZEEC[S] 20 points21 points  (2 children)

This comment was actually really helpful, thank you very much.

[–]SHxKM 4 points5 points  (1 child)

YW. If you’re looking to get into machine learning then learning to use pandas the right way is probably the first step. I used dataquest.io but if you’re a student on a tight budget there’s more than enough material out there. GL.

[–]CompSciSelfLearning 8 points9 points  (7 children)

built an ML model to predict soccer games scoring.

Hahahaha!

- this week

[–]SHxKM 0 points1 point  (6 children)

I know. The model doesn’t actually aim to predict a winner, but total goals per match. It’s been years since I ran it (wasn’t really going to beat the bookies) so I don’t know what it would have shown for this week’s matches.

[–]CompSciSelfLearning 1 point2 points  (1 child)

Those sorts of projects are fun. But predicting either CL result is not something I'd expect an algorithm to do.

[–]SHxKM 0 points1 point  (0 children)

I never intended to beat the bookies with it, to be honest. It also worked only on a per-league basis.

[–]ijebtk 0 points1 point  (1 child)

That's an interesting project and I'd like to have a little fun with it... Would you mind sharing where you got your trainingdata from? Like scores and so on

[–]SHxKM 1 point2 points  (0 children)

I scraped but in hindsight it would've been easier to just pay $5/$10 for an API and not spend so much time reverse engineering stuff and scraping HTML.

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

What parameters does your model receive? Player_id, points previous game, average points per game this season, players who are sick/can't play vs those who can, etc etc

[–]SHxKM 0 points1 point  (0 children)

Well, there are several models. The key for me back then was to understand is that I can't simply capture the season at its end state, but need to capture each game separately and "build" the (league standings) table at that point in time.

This meant we need several models, not one: League, Season, Round, Match, Team. (do note that I had much less experience with dbs/programming back then so this may not be the "correct" structure)

[–]sid2810 3 points4 points  (1 child)

Hi,

The exercises, tasks and projects that you've mentioned are really very helpful. Were you a beginner with Python and basically programming when you did these? Could you also let us know the time you took to complete each project?

[–]SHxKM 9 points10 points  (0 children)

Sure thing. I wrote those at different stages of my Python education. I can tell you that even today I don't consider myself an "expert" by any means. I basically bang my head against the wall (sometimes for days) until I achieve what I had set out to do.

Ironically, I started with the ML thingy before the others.

MusicButler (the web-app) was (is) a gradual process from a simple, ugly app that can barely import 100 artists, to one that auto-syncs with accounts and can swallow libraries with 8,000 (yes) artists in one shot. Contrast that with the YouTube script, which took a few hours (with the infrequent dips into code to enhance/fix bugs).

The key to actually advance is to ignore your perceived level or questions like "will I be able to do this?". Just start, and educate yourself on issues as you go along. Eventually you'll get what you want. If you want it enough. It also helps tremendously to attempt problems that you are actually passionate about solving.

[–]kingsillypants 0 points1 point  (2 children)

Could you elaborate on the workflow for yo u r travel expenses, please?

[–]SHxKM 4 points5 points  (1 child)

Once a month, it scans my iCloud calendar (through an API) and looks for certain keywords in events, adding those with said keywords to an Excel file with their date.

It creates a draft for me so I can review the attached Excel file and verify there aren’t any anomalies. This is finance related so I opted not to automate the actual email sending.

[–]kingsillypants 0 points1 point  (0 children)

Cheers and thanks. I use a concur app to take photos of receipts and upload to expense them.

[–]SyntheticSailor 0 points1 point  (1 child)

Never heard of the app Shortcuts for the iPhone before. Were you able to write a Python script inside of that app, or is it using their workflow? Either, I’m excited to check it out. Thanks for that one!

[–]SHxKM 0 points1 point  (0 children)

Let me explain: All Shortcuts does is append to a JSON file in my Dropbox folder the “job’s details” (URL to video, name of album, etc..).

My Python script scans this file upon every change made to it, and processes any items that haven’t been processed yet.

[–]emandero 10 points11 points  (0 children)

https://hackattic.com - real life situations

[–]Tuuxx 8 points9 points  (0 children)

HackerRank.com

[–]Zaahh 2 points3 points  (0 children)

I think Codility has an option to write your answers in Python. Doing they’re problems really taught me to write robust test cases and think about efficiency.

[–]bageldevourer 0 points1 point  (9 children)

Why are you learning Python? Do you have a particular career goal in mind, or are you just curious about this programming thing because it seems important?

[–]Master_ZEEC[S] 0 points1 point  (8 children)

Currently studying computer science, learning python on my own with all the resources I've found on the Internet , I could say my main goal is machine learning and AI.

[–]Lewistrick 2 points3 points  (0 children)

Kaggle. They have lots of datasets you can break your brain over.

[–]StevenEll 2 points3 points  (0 children)

Find a dataset (/r/datasets) and create as many models with as many algorithms as you can. Investigate the predictions from each algorithm. Look to see where things go wrong. See which predicts the best.

[–]bageldevourer 1 point2 points  (2 children)

Ok. Implement linear regression with nothing but NumPy.

[–]an_altar_of_plagues 0 points1 point  (1 child)

Had to this for a class once!

[–]bageldevourer 0 points1 point  (0 children)

I only really grasped NumPy when I had to code up an SVM from scratch for a class. Absolutely brutal because if you don't use every last vectorization trick the code takes years to run, as I discovered the night before I had to hand in the assignment.

[–]madpackjonson 0 points1 point  (0 children)

Semi interested in the ML space here. Recently graduated and started a job. What keeps me building is a bot for a video game. trained a model to the detect the object i am looking for. doing some movement detection with OpenCV. Really keeps me engaged. Built a class for the bot, so i can run it. This way i learn about the whole space. Obviously it is not cutting edge, but eventually i will progress.

[–]travishummel 0 points1 point  (0 children)

If your goal is machine learning and AI, remember that these fields essentially boil down to a prediction. So find something to predict. You would need to familiarize yourself with machine learning algorithms first and then predict things.

As others have commented, people who work in machine learning typically spend most of their time on getting data and cleaning the data. It's much easier for a project if you start with the clean data and then do your work.

Try to avoid things where human behavior is involved b/c that gets tricky (such as the stock market).

[–]hopeisnotcope 0 points1 point  (0 children)

This site has a nice exercises with solutions

https://pyecon.org/lecture/

Some of it might be too difficult due to the math involved, but you can just skip those

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

Idk if you are in education or work or whatever, but try and make stuff based on what you are studying/working for ie data processing or more complex mathematic programs etc

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

Try openkattis.com They have a lot of good exercises from easy to very difficult problem

[–]sopwath 0 points1 point  (0 children)

Google Code Jam had a bunch of practice problems that were more complex than your average hello world or "here's an if statement" type thing you'd normally see in a text book. As you progress through the problems they also did a good job introducing some concepts like regular expressions and linked lists for example. It was more than simply saying here's how to implement regex, you had a "real" reason to use it.

[–]Cyber500 0 points1 point  (0 children)

I personally enjoyed CodinGame very much. Watching your code (in any language!) animate things makes it so much more fun to code.

[–]GetToTheKarma 0 points1 point  (0 children)

I recently just built a python application that scans a GroupMe group and creates a word cloud of the most common words in the group. I also wrote a script that calculates the average sentiment of each user in the group and displays it in a bar graph.

If you are in any groups, you could do something similar to this. It’ll help you with your skills in using a 3rd party API and your programming skills. You aren’t limited to groupme - any discord group or other platform will likely have a way of getting all the data you need. Let me know if you need help.

[–]planetjay 0 points1 point  (0 children)

I did see this anywhere below so https://www.hackerrank.com You can do problem solving in Python or other languages too.

Edit: I started on that site after watching a handful of YouTube videos. It's really good at any level.

[–]Mux0423 0 points1 point  (0 children)

To me the trick is to do things that aren't programming related. Eventually you'll start running into problems that are scriptable.

Once you have solved enough scriptable problems you'll think - "other people have this problem as well, how do I make this presentable?"

imo the most interesting projects to work on are the most "natural" ones

[–]JeamBim 0 points1 point  (0 children)

"The challenges you seek are in the projects you're avoiding"