Продолжаю серию постов от приглашенных гостей.



Сегодня Антон и Никита из подкаста "Цинковый прод" (https://znprod.io/) порассуждают на тему "нужно ли при изучении нового инструмента закапываться сначала в теорию или как можно раньше приступать к практике?"



Если вы еще не слушаете Цинковый прод, то приходите послушать тут https://soundcloud.com/znprod, или посмотреть здесь https://www.youtube.com/channel/UC6cTShKx3lJWw-EzSr_ZAfw







Практик Никита



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

Я выступаю в роли защитника попсовой точки зрения "делай - читай 80/20".



Для начала хотел бы предложить читателю выяснить для чего вообще вам нужен новый инструмент? Какие могут быть варианты:



- Продали руководству идею добавления этого инструмента в стек компании;

- Решили сменить работу и вам необходим дополнительный навык;

- Покрасоваться новым инструментом в вашем репозитории на GitHub;

- В чате по другой технологии тусуется человек, который вам нравится и вы хотите влиться, чтобы поближе познакомиться;

- Хотите больше денег, потому что у вас размер ЗП зависит от стека знаний;

- Добавьте свой вариант.



Мне в голову приходит недавний разговор с коллегой, который назвал изучение и поиск новых инструментов одним из видов прокрастинации.



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



Итак вы определились со своей глобальной целью и точно понимаете, что вам нужно добавить конкретный инструмент в свой стек. Я приверженец MVP подхода, т.е. необходимо в макисимально сжатые сроки набрать минимально необходимые для применения на практике знания. Затем сразу же приступить к их применению/продаже.



Например в ближайших планах у вас - стать админом облачной инфраструктуры, а вы не знаете как рабоатать с kubernetes.

В таком случае изучение k8s полностью совпадает с вашей целью, и для уменьшения времени получения результата я бы порекомендовал бросаться сразу в бой. Несомненно вам придется для начала прочитать тройку уроков и, возможно, посмотреть пару видео. Затем ищите уже реализованный проект на GitHub (или пошаговый tutorial) и копируйте его. По шагам понимаете, что и как нужно изменить, чтобы получить результат.



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



Плюсы:

- Быстро дает практический навык и опыт решения возникающих проблем;

- Приучает тратить минимум энергии/времени/маны на проверку теорий или сравнительное тестирование;

- Применение возможно в ситуациях требующих быстрого входа, а это большая часть проблем;

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



Минусы:

- Поверхностное погружение в технологию на первых шагах;

- Опасность эффекта Даннинга-Крюгера (когда мало знаешь об инструменте, но думаешь, что познал дзен).