>>509230There isn't really a "best" way, it's different on a case by case basis depending on how (You) learn best. In my personal opinion, an endeavour you're legitimately passionate about will push you to get it done and learn as opposed to some abstract hypothetical scenario simulation. Pick a simple project with a real world application, do some research and planning, search similar projects up on github to see what approach others are taking, etc
Tldr: Learn from those who are more competent than you, this way you will avoid making the same mistakes and develop better programming habits