I'm fairly new to programming and want to learn by completing a practical project. I took an introductory C++ class in college and worked through MATLAB's beginner material, but that's most of my coding experience. I'm interested in programming as a useful skill for engineering and manufacturing, although my immediate goal is simply to build something for myself and decide whether I want to pursue software further.
The project I have in mind would import data from previous soccer matches and assign each game an entertainment score based on criteria I define. Ideally, it would do this without revealing the result, so someone could choose a match to watch without spoilers. I'm considering making it a website so I can share it with others, but a local program would also be fine for a first version.
I'm initially considering using match data from FBref's Premier League statistics pages, since the site appears to support importing or accessing its data. I'm not sure how to begin with collecting the data, storing it, calculating the score, or choosing a programming language and tools.
I've looked at beginner resources such as The Odin Project, CS50, and Khan Academy. The Odin Project seems to expect using Linux, and I'm on Windows with no Linux experience. CS50 may be more in-depth than I need right now, while Khan Academy didn't seem to cover some basics I was hoping to understand, such as setting up GitHub. I'd appreciate recommendations for beginner-friendly courses or a practical roadmap that would help me take this project from idea to a working first version.
3 Answers
Start with a small local program instead of jumping straight into a website. Python would be a good fit because it’s beginner-friendly and has libraries for downloading, cleaning, and analyzing data. You could begin with a CSV file containing a few matches, write code that calculates an entertainment score, and print the results. Once that works, add more data and eventually put the project behind a simple web interface using Flask or Streamlit. You can do all of this on Windows; Linux is not required for learning the fundamentals.
CS50 would be a reasonable foundation, but you don’t have to complete every lecture or assignment before starting your project. Another approach is to learn only the basics you need as you go: variables, conditions, loops, functions, collections, reading files, and debugging. Keep the first version deliberately simple. A program that reads a local CSV and ranks matches is already a complete project; scraping a live site and publishing a polished website can come later.
Also check the data site’s terms and any available documentation before scraping. If the information can be downloaded as a dataset, that’s usually easier and more reliable than parsing web pages directly.
The project is manageable if you separate it into stages: first learn basic programming concepts, then work with files and lists, then use a library such as pandas to analyze match data. Define your scoring rules before worrying about automation—for example, goals, shots, lead changes, close finishes, or other statistics that you consider entertaining. Test the formula manually on a few matches so you know the code is producing sensible results. Git is useful from the beginning, but you can install GitHub Desktop on Windows if command-line Git feels like too much at first.

That sounds less intimidating than trying to build the website immediately. I like the idea of starting with a spreadsheet or CSV and adding the web part later.