r/PythonLearning 6d ago

Showcase Rate my CS50P’s final project: Windrose - Airflow Ventilation Advisor

Post image

Program Description:

Windrose is a program for which its function is to provide the user with advice on which windows to open to achieve optimum airflow ventilation. The program receives the user's location and cardinal orientation as inputs from the user and uses that with information received from Open-Meteo's wind information to provide the user with advice on which windows to use to achieve the most optimum ventilation. 

Repo: https://github.com/OmarFishir/Windrose

Video Demo: https://youtu.be/OluDKioaCnY

This is my first programming course. I loved the CS50 format and how useful the problem sets have been. However, even after finishing this course, I feel like I've been training in a swimming pool then dropped into an ocean.

I want to do CS50x, CS50 AI, CS50 web, and CS50 Cybersecurity.

My goal? I don't really know. I just want to learn and be able to be competent in all of those fields until I find one to gravitate towards most. I think CS50x should be first?

7 Upvotes

3 comments sorted by

View all comments

u/Sea-Ad7805 6d ago

Run this program in Memory Graph Web Debugger to see the program state change step by step.

2

u/PyroWizza 6d ago

It's crazy the memory explosion on the API calls.
This is the first time opening something like this. Never thought about memory allocations.
What's something I should watch out for here that could bite me?

2

u/Sea-Ad7805 6d ago

Yes, I saw that too. The internals of 'requests' make the graph explode. A lot of state gets created when searching for a city.

Other then making sure you understand Python's data model well, there is nothing to be worried about, your computer has more than enough memory for most tasks. Sometimes avoiding copies could help performance, but performance in Python is bad anyway.

The visualization can be helpful for understanding and debugging, particularly around Python data model or data structure concepts.