В основном так обучение и происходит. Смело заходите на github или другие площадки для размещения opensource проектов. Я сам начинал с данного пути. Изучив необходимые основы на сайтах подобного metanit, а далее просто пошел читать чужой код. Ведь анализируя труды других людей, вы сами автоматически учитесь их опыту.
Читая чужой код, у вас будет появляться много вопросов, отвечая на которые вы ускоряете свой рост как программиста. Ведь ситуация на которой возник вопрос используется в чужом проекте, то с большей вероятностью данный код используется в большинстве случаях в других проектах. В таком случае, вы будете изучать сразу нужные для разработки своих проектов приемы, а не тратить время на изучение устаревших или не нужных вещей.