✨ Как не потеряться в мире разработки

Наверняка многие сталкивались с такими ситуациями:  ▪️ Приходишь на собес, а у тебя спрашивают что-то в духе "есть 3 таблицы: A, B и C, причем A ссылается на B и C, C ссылается на A, B ссылается сама на себя. А как нам в транзакции сделать запись, апдэйт и удаление и нигде не залочиться?" или "а вот в ЯП X есть либа Y, а расскажите-ка, а как там в кишках она менеджит какое-то неведомое говно с которым вы никогда в реальной разработке не столкнетесь 👍 ?".  ▪️ Приходишь в новую кодовую базу, а она там такая вся рокет-саенсовая и "правильная", что даже на базовую правку и на погружение в местные устои и правила уходит примерно на 50 лет больше времени, чем могло бы уйти.    Такие ситуации часто заставляют сомневаться в собственной компетентности и провоцируют на мысли по типу "а достаточно ли я разбираюсь в этой технологии", "а не потратить ли мне дополнительно 50 часов на изучение кишков используемых сервисов", "а не поковыряться ли мне на выходных в сорцах этой либы, чтобы получше понимать, как она менеджит какое-то рандомное говно". У меня такие мысли возникают постоянно и поэтому мне иногда кажется, что я как-то отстаю от трендов в разработке, очень много в чем не разбираюсь, распыляю фокус, когда можно было бы ковыряться в монадах, абстракциях, кишках ЯП, баз и сервисов, чтобы потом писать идеальный код и сидеть-миловаться тем, как красиво он выглядит.    Одной из причин, почему такие ситуации возникают, может быть и сам ЯП:  ▪️ Есть языки с высоким порогом вхождения, есть с порогом пониже.  ▪️ Есть языки с множеством вариаций и паттернов организации кода. Ну, имеется в виду не просто "паттерн Builder 👍", а более фундаментальные вещи типа "у нас тут типа около-ООП", "у нас тут Tagless Final и труъ ФП", "у нас тут все на акторах" и тд.  ▪️ Есть языки с кучей внутренних экосистем (в каждой из которых ты должен разбираться, иначе лох), есть и те, где либо разбираться в каждой нет необходимости, либо где вообще она по сути только одна.    В этом плане та же 🐗 Scala, например, помимо того что попадает под все худшие вышеописанные критерии душного языка, часто подталкивает людей на усложнение простых вещей с мотивацией писать "правильный" код. Не спорю, где-то оно уместно, но часто это начинает выходить за рамки и работать больше в ущерб, чем на пользу. Часто это ФП-дрочка по большей части ради самой ФП-дрочки 🤡    Всё не изучишь, а всё уже изученное забывается без постоянной практики, поэтому для себя я стараюсь придерживаться таких правил:  ▪️ Если в рамках работы надо чему-то обучиться, то надо обучаться.  ▪️ Если это выходит за рамки того, что требуется для выполнения задач, и если это мне неинтересно, то это мы скипаем.  ▪️ Если это как бы в рамках работы и вроде это может в теории когда-то понадобиться в будущем, то такое мы тоже скипаем до тех пор, пока до этого реально не дойдет дело. Ну, можно обзорно полистать, но без фанатизма.  ▪️ Если что-то нужно только для собеса, то скипать или изучать в зависимости от того, насколько важно попасть на эту позицию.    Сталкивались ли вы с такими ситуациями? Сталкивались ли с душными кодовыми базами, душными ЯП? 🤔

✨ Как не потеряться в мире разработки | Сетка — социальная сеть от hh.ru