За последние несколько лет, при работе и разговорах со многими разработчиками, я заметила один повторяющийся шаблон поведения. Он начал меня сильно беспокоить, и я продолжаю постоянно говорить и думать о нем, пытаюсь его понять или даже оправдать.
— Почему мы использовали данный подход?
— Не знаю. Это было в какой то статье.
— Не знаю. Я это скопировал из Х(источника).
— Не знаю. Я использовал этот подход на предыдущем проекте.
— Не знаю. Мне кто‑то сказал использовать его.
Данный шаблон поведения — это потребление, а не созидание. Потребление без каких‑либо вопросов. Потребление, прикрывающееся мнением авторитетов.
Я видела, как разработчики использовали решения других людей, как само собой разумеющиеся. Не подумав несколько раз об используемом подходе, не утруждая себя каким‑либо анализом. Одно дело, когда Ден Абрамов (Dan Abramov) говорит тебе, как лучше использовать React или какая‑либо документация по API говорит тебе, что есть только один вариант использования данного API, тогда — да, скорее всего надо будет прислушаться к этому. Другое дело, когда ты используешь какую‑либо информацию из статей без какой‑либо доли скептицизма, тем не менее с таким подходом ты все еще можешь продвигаться по карьерной лестнице, но это также может быть причиной твоего карьерного тупика.
Дерьмовая информация повсюду
В начале своей карьеры я бы никогда в жизни не запостила ничего технического характера в интернете. Я думала, если кто и был настолько храбрым, чтобы осмелиться написать статью или вступить в дискуссию на техническую тему, он-то точно знал, что он делал. Я никогда так не ошибалась.
В какой то момент я поняла, что большинство технического контента в интернете — дерьмо (и кстати, этот блог тоже может быть таким же). Туториалы нам показывают вредные подходы. В статьях полно концептуальных ошибок. И конечно же, люди тоже далеко не идеальны! Сеньоры не всегда являются хорошими разработчиками. Решения тех‑лидов могут быть далеки от идеала. Архитектура хорошо работающего, успешного приложения может быть полным говном. Я видела сеньоров, которые вообще не смыслят в программировании. Зато они вам что‑то о нем рассказывают в интернете. А потом кто‑то приходит и говорит, что использовал решение данного человека, потому что у него должность сеньора в компании X. В какой то мере в этом есть смысл. Но по своей сути, апелляция к авторитету глубоко ошибочна.
Едва ли не первая заповедь науки: «Не доверяй авторитетам». Ученые — тоже приматы, они склонны выстраивать иерархии и забывать это правило. Не раз людям довелось дорогой ценой убедиться в том, что и начальство может ошибаться. Утверждения самого авторитетного лица подлежат такой же точной проверке, как и любые другие.
— Карл Саган (Carl Sagan)
(Цитата из книги «Мир, полный демонов. Наука — как свеча во тьме»)
Чем раньше вы поймете, что повсюду чушь, тем будет лучше. Мы все стараемся как лучше, но тем не менее все люди совершают ошибки, и многолетний опыт, количество статей или зарплата никак не определяет знания человека. В конце концов, мы все можем постить в интернете что угодно.
Почему так происходит?
Мы ленимся. Мы не глупые, мы просто ленивые. Если кто‑то предлагает нам решение, которое работает, зачем нам вообще об этом думать? Почему бы просто не вставить данное решение в продакшн?
У нас нет времени. Обоснование использования подхода может стоить нескольких часов чтения кода, написания большого количества кода для того, чтобы доказать свою правоту или большой тратой времени на исследование. Хотя у всех у нас есть какие‑либо сроки, не так ли?
Так удобней. Логические размышления часто заставляют нас выйти из зоны комфорта, так как нам нужно приобрести новые знания, чуть усердней подумать, чем обычно, чтобы понять некоторые концепции или проделать дополнительную работу. Тогда как пребывание в зоне комфорта — это то, к чему мы стремимся (подсознательно).
Мы не верим в самих себя. Люди, особенно в начале своей карьеры, склонны думать, что их решения никогда не будут достаточно хорошими. Таким образом, они полагаются на мнения ранее упомянутых авторитетов, при этом не подвергая данные мнения никакому сомнению.
Как перестать быть потребителем?
Поймите, что в мире полно заблуждений. Люди и предлагаемые ими решения не безупречны.
Адаптируйте решения к вашим конкретным ситуациям. Нет какого‑либо универсального решения для всего. Сравнивайте разные подходы друг с другом, анализируйте их. Туториалы и статьи показывают лишь идею и совершенно не обязательно будут содержать в себе готовый к использованию код. Всегда анализируйте что‑либо перед тем, как вы соберетесь это использовать.
Верьте в себя. Ваши решения ничем не хуже тех, что лежат на просторах интернета.
Продолжайте учиться и быть любознательными. Быть разработчиком — означает постоянное обучение. Убедитесь, что вы до конца понимаете библиотеку или фреймворк, который вы используете. Это способ извлечь из них максимальную выгоду. Иногда люди используют библиотеки, не до конца вникнув в них. Это приводит к неправильному использованию основных концепций библиотек и производству более сложного или менее производительного кода, чем могло бы быть.
Не потребляйте. Созидайте. Задавайте вопросы. Оставайтесь любознательными.