[Перевод] Настоящая причина, по которой вы не станете сеньором

История о воробушках, правильном фидбеке и житейских проблемах

Четыре зла

В 1958 году Мао Цзэдун инициировал «Большой скачок» — организованную китайской коммунистической партией кампанию по трансформации страны в индустриально развитое государство.

Изображение создано автором

Изображение создано автором

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

Борьба с вредителями широко практиковалась по всему миру, а сами её методы считались научно обоснованными. Но, вопреки ожиданиям, большинство принятых мер, хоть трижды научных, пагубно сказалось на производстве продуктов питания.

Истребление воробьев привело к серьезному экологическому дисбалансу. Отсутствие естественных хищников повлекло за собой нашествие насекомых на поля и порчу урожая, что в итоге послужило одной из причин Великого китайского голода 1959–1961 годов.

Великий китайский голод считается одним из самых смертоносных бедствий в истории человечества, а число погибших от его последствий исчисляется десятками миллионов (от 15 до 55 миллионов человек).

Сценарии большой неопределенности

Слишком много светлых умов пострадало от безрассудного увлечения бесполезными знаниями. — Сенека

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

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

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

  • Старшие разработчики должны оперативно разбираться в сложных системах, обладать глубоким пониманием паттернов чистой архитектуры, знать, как происходит масштабирование систем, требующих значительных объемов данных, и, желательно, уметь летать.

На всех трех этапах вам предстоит иметь дело с архитектурными проблемами, решение которых способно истребить немало воробьев. И так же, как во времена «Большого скачка», скоропалительные действия в отношении веб-систем могут привести к тому, что приложение потеряет важные финансовые данные или, например, заставит компанию потратить сотни тысяч долларов дополнительных ресурсов на реализацию неоправданно сложной системы.

Собеседования с программистами чрезвычайно сложны, потому что при их проведении компании в первую очередь пытаются отсеять тех, кто может случайно (или даже осознанно) убивать воробьев.

Изображение сгенерировано автором

Изображение сгенерировано автором

Но как же понять, с чего следует начать? На свете есть без преувеличения тысячи курсов для младших программистов, обещающих за полгода-год превратить вас в мидла, но на деле, даже закончив целый университет, вы по-прежнему останетесь неоперившимся джуном. Как понять, чему нужно учиться в первую очередь? К чему быть готовым?

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

Обратная связь

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

Частая ошибка новичка, которую совершают не только программисты, но и начинающие предприниматели, — попытка проверить свои идеи с помощью анкетирования или путем простого опроса друзей и близких. Люди с легкостью говорят: «Да, я бы это купил», но потом, когда продукт выходит в мир, придумывают тысячу причин, чтобы от него отказаться.

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

Изображение сгенерировано автором

Изображение сгенерировано автором

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

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

Оракул

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

Популярный мем из интернета

Популярный мем из интернета

Честно говоря, я не очень верю в prompt engineering, в основном потому, что это не «инженерия» как таковая, но всегда ценю креативные примеры взаимодействий с ChatGPT.

Вот один интересный пример общения с ChatGPT, о котором вы, скорее всего, не слышали:

Изображение сгенерировано автором

Изображение сгенерировано автором

Вот что интересно: чат будет следить за твоими успехами, и в случае отказа ты сможешь получить обратную связь, которую компании обычно не дают:

Изображение сгенерировано автором

Изображение сгенерировано автором

Изображение сгенерировано автором

Изображение сгенерировано автором

Уже первая строчка наталкивает на правильные мысли. Я не стал бы ведущим инженером-программистом без таких книг, как «Чистая архитектура».

Знания из реальной жизни

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

Книги вроде «Cracking the Coding Interview» помогут разобраться в том, как компании FAANG набирают сотрудников, — такие знания можно получить только благодаря инсайдеру, в открытом доступе их не так много. Но помимо этого, вам также необходимо браться за реальные проекты или попадать на настоящие собеседования, чтобы усвоить знания после многих лет практики.

В одном из эпизодов «Теории большого взрыва» Шелдон объясняет, что «научился» плавать путем умственных упражнений из интернета и тренировок на полу. Мол, у него нет никакого интереса к плаванью в настоящей воде.

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

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

Не пункт назначения, а образ жизни

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

Изображение сгенерировано автором

Изображение сгенерировано автором

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

Habrahabr.ru прочитано 5933 раза