1.) Use open source software (Fair enough but not helpful)
2.) Take over a unmaintained package (If your a brand new developer probably not the best idea!
3.) Make your own thing (Not really what most people want to do...)
4.) Get paid to do it (Not really possible for new developers)
I don't feel like any of those are reasonable solutions. I'm not a particularly good programmer but I have just recently been trying to contribute to an open source project (Apparently doing it the "wrong way" according to the article!) and its going amazing! Everyone is very helpful pointing out issues with my PR and helping me understand what to do better.
Is it the most efficient use of the maintainers time? As of right now, probably not! However, if I continue to help develop the project them training me now will certainly be worth while as I become better at contributing.