Учитесь по чужому исходному коду - ponyatov/nimbook GitHub Wiki

Учитесь по чужому исходному коду

https://habr.com/ru/company/wrike/blog/329006/

(Само)обучение по чужому исходному коду -- самый эффективный способ:

  • изучение применения языка в боевых условиях, на реальных приложениях
  • сразу видно, что в языке и библиотеках вы не понимаете
    • можно сразу искать в учебнике нужный раздел
    • гуглить информацию по куску непонятного кода (по названиям функций, библиотек)
  • умение отличать хороший стиль кода от плохого: по тому насколько легко он читается
  • наработка навыков разбора готового кода: разгребание legacy
    • большая проблема, особенно для джунов
  • умение разгребать код на любом языке, который вам подсунут в следующем проекте/заказе

Естественно, это не отменяет учебники по языку, но при этом методе вы сразу видите где есть пробелы в знаниях, или непонимание принципов. И конечно, невозможно чему-то научиться без практики.


Что думаете про обучении исключительно по чужому коду (с гитхаба) ?

Обычно джуны совершенно не имеют навыков чтения чужого кода, а первое что им нужно будет делать скорее всего -- разгребать легаси.

По идее, разгребая чужой код обучение должно быть самым эффективным: сразу видно что не знаешь, и надо слазить в книжку, что и как используется из библиотек, какие-то фишки языка с которыми надо разобраться и т.д.

По сравнению с прохождением типового учебника: учим циклы такие, циклы сякие, массивы, открываем файл, закрываем файл,... в итоге к концу чуть ориентируешься в языке, но практически невозможно ничего написать, потому что не было ничего сказано про море тонкостей, как проект организован, как библиотеки дергать и т.п.

Еще неочевидный плюс: когда надолбаешься с кодом разных аффторов, понимаешь какой код хороший, какой плохой -- по тому, сколько ты с ним времени потратил, насколько легко было понимать

Активные разработчики на Nim (источники знаний в коде)