Учитесь по чужому исходному коду - ponyatov/nimbook GitHub Wiki
Учитесь по чужому исходному коду
https://habr.com/ru/company/wrike/blog/329006/
(Само)обучение по чужому исходному коду -- самый эффективный способ:
- изучение применения языка в боевых условиях, на реальных приложениях
- сразу видно, что в языке и библиотеках вы не понимаете
- можно сразу искать в учебнике нужный раздел
- гуглить информацию по куску непонятного кода (по названиям функций, библиотек)
- умение отличать хороший стиль кода от плохого: по тому насколько легко он читается
- наработка навыков разбора готового кода: разгребание legacy
- большая проблема, особенно для джунов
- умение разгребать код на любом языке, который вам подсунут в следующем проекте/заказе
Естественно, это не отменяет учебники по языку, но при этом методе вы сразу видите где есть пробелы в знаниях, или непонимание принципов. И конечно, невозможно чему-то научиться без практики.
Что думаете про обучении исключительно по чужому коду (с гитхаба) ?
Обычно джуны совершенно не имеют навыков чтения чужого кода, а первое что им нужно будет делать скорее всего -- разгребать легаси.
По идее, разгребая чужой код обучение должно быть самым эффективным: сразу видно что не знаешь, и надо слазить в книжку, что и как используется из библиотек, какие-то фишки языка с которыми надо разобраться и т.д.
По сравнению с прохождением типового учебника: учим циклы такие, циклы сякие, массивы, открываем файл, закрываем файл,... в итоге к концу чуть ориентируешься в языке, но практически невозможно ничего написать, потому что не было ничего сказано про море тонкостей, как проект организован, как библиотеки дергать и т.п.
Еще неочевидный плюс: когда надолбаешься с кодом разных аффторов, понимаешь какой код хороший, какой плохой -- по тому, сколько ты с ним времени потратил, насколько легко было понимать