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