contributing to an existing project is an amazing way to learn how to code, but only a few individuals can go from
"your software should do this"
'FU newb'
"I'm back, here is how you should implement X"
better approach is to find a project that is personal to you, but do not go searching for it because obviously you are not smart enough to think up something original if you can not code most platforms within a week.
That is why the personal route ALWAYS works.
Slutty Monkey loves water skiing.
Master-craft ski tow boat performance evaluation over the last 30 years w/ data. (been done)
Parts lookup database for said Master-craft ski tow boat (been done, not online very well but give em a call and it is a really great experience, so not much market there, in fact it takes away friends)
type of skis used/trophies when pulled by a Master-craft ski tow boat social interaction website (not complete)
bikini shots of babes on Master-craft ski tow boats (not even google-able)
Master-craft ski tow boat options by year and bikini style by year (nothing)
Master-craft TRUE marine engine specification cross use comparability chart(what?)
yes I said it the engines in Master-craft ski tow boats were actually re-branded off the shelf marine engines from other companies.
build dataset of examples based on the hypothesis
build web interface to solicit cover communications with other Master-craft owners that suspected such re branding
build SECURE gallery which houses photos that help prove Master-craft lied about the exclusivity of their marine power-plants from 1963 until 1984
....
Note the reference to build in the later parts of the scenario. That is how learning happens. Like literally in days. Not months or years... pure fairy dust. I need to do this because it is THE topic. That is the key to programming. It is very creative but not creative at the same time. the problem solving is always a creative process the problem you are solving may be mundane or have already been solve a thousand times before you tried and did t well/poorly/or failed. The techniques of programming, the syntax of programming are all very simple. There is the first hurdle of "It is really that easy" answer yes. The next hurdle is; can I dive into something I know nothing about and blindly come out the other side as an utter failure; or as a success; or having learned something and don't know whether it was good or bad and be equally satisfied. That last part is a TRUE programmer.