[Лонг]Вкатунам в IT. Интро и некоторые рекомендации.
Лонг на тему вкатунства, по линии инженерии Linux. Основная тема - то, чему уделяют внимание преступно мало при ускоренном вкатунстве и то, что потом отличает белого человека от переученного наспех дурачка.
О себе - в свободное от основной работы время занимаюсь подбором толковых малолетних для вкидывания их в айти движуху, воннаби хедхантер. Тематика - инженеры в линуксах, стучать гаечным ключом по CentOS. (всегда смотри на автора текста\спича\тейка, это дает контекста к тексту - что он говорит, как он говорит и почему он это говорит).
До некоторой степени текст справедлив для разработчиков, но утверждать не буду - я особо не вникаю, а они снежинки сложные. У нас, линуксятников, все поближе к казарме.
Краткий пересказ - вкатуны делают гигантский упор на навыки и умения, полностью жертвуя фундаментальными знаниями. В результате они умеют применять свои навыки только в стерильной среде, где все под их контролем и создано для взаимодействия с ними - в продуктивной среде это приводит к крушению сопуствующих служб, о взаимодействии с которыми джуник не подумал. Он не знал, что это может сломаться. Можешь листать в конец до рекомендаций книг.
Кто нанимает вкатунов?
Рассмотрим некоторые особенности РФ 2024, которые приходят в голову в целом при обсуждении вкатинга. Почему вообще вкатуны кому-то нужны?
- Импортозамещение набирает ход - отечественные поставщики софта, сервисов и услуг наращивают выручку. Рост их пользовательской базы оказывает напряжение на многие позиции, в том числе - техническая поддержка, простая инженерия, т.е. те места, где можно и нужно масштабироваться. Кто-то закрывается, кто-то открывается - в целом по больнице рост. Значит, тут ты нужен.
- "Офицерские" кадры на дороге валяются редко и это не вкатуны - тут ищут не тех людей, кого "обучим заставим", а тех, кто "придет и покажет как надо". За счет этих людей компания растет качественно. Значит тут тебя, вкатуна, не ждут.
- Искать под задачи масштабирования людей с нужным набором навыков долго и муторно - их зачастую проще и дешевле научить. Крупные интеграторы давно уже собесят людей, вводят их в свой буткемп (человек уже получает зарплату, для него это как ходить на работу) и там уже его дрочат, по итогу на экзамене решают, заркыть ему стажировку или расстаться с ним. Значит, даже недостаток компетенций не проблема, доучат под себя.
- Нытье про "пошли массовые сокращения айтишнеков, ряяя" можно игнорировать - ни одна из знакомых мне контор не вздохнула с облегчением, мол "набрали полтора состава, закрываем вакансии" - не надо путать пропердеж отдельных убыточных проектов, где сократили всех подряд, с настроениями в отрасли. Пузыри метана надуваются и лопаются, общий тренд "работать некому" остается.
Вывод: работодатель, который готов нанять вкатуна в линукс-инженеры, смотрит примерно на следующий облик:
- Некоторый минимальный набор компетенций по теме. Никто не забанит тебя, если ты знаешь как поднимать сеть через NM, но не знаешь как в systemd-networkd - всем насрать, научишься за вечер. Ну или разок получишь леща и научишься за следующий вечер.
- Умение завалить ебало и делать работу. Вкатун идет на должности, которые должны разгрузить более важных специалистов от рутины. Поэтому тут придется немного потерпеть. Просто прими этот факт, что твоя польза в компании в том, что более старший инженер может спокойно пойти с женой в ресторан вечером. Тебе за это платят деньги, все что ты делаешь офицер может сделать сам. Таков путь, тебе главное зацепиться, дальше будешь развиваться посчитаешь нужным.
- Того, кто может адекватно работать как звено большого механизма, расширять и усиливать его, а не саботировать и ослаблять.
Про третий пункт мы сегодня и поговорим.
No mutant is an island.
Джун почти всегда или настраивает, или дебажит сервисы. Мониторинг, веб-сервер, файлопомойка - по инструкции, в соответствии с заданием. У нормальных компаний типовые операции прописаны достаточно хорошо.
Проблема в том, что сервисы, которые ты настраиваешь, не существуют сами по себе - они являются частью сложного, стекированного механизма, где каждый компонент имеет свои требования и зависимости и определенным образом сконфигурирован на взаимодействие друг с другом. Здесь можно отметить три направления:
- Сервисы работают в некоей среде - если обычная служба, то внутри ОС, если контейнер, то в докере\кубере. Разворачивая сервис ты должен держать в уме, как он будет взаимодействовать с уже настроенными компонентами системы, не будет ли он их повреждать, не выполнишь ли ты деструктивную операцию для данного сетапа пока будет поднимать свой NGINX.
- Сервисы взаимодействуют с другими сервисами. Необходимо понимать основы такого взаимодействия и типовые вещи, которые могут пойти не так.
- Сервисы передают данные по сети. Ты должен иметь выше базового понимания, откуда берутся пакеты, что такое MTU, что такое флаг DF и как он может отхуярить тебе защищенный доступ к ресурсу два раза в сутки без видимых причин.
Грубо говоря, даже если твоя роль в самолете - хвостовой стрелок (отстреливать фошистов, заходящих бомберу в хвост) - ты должен иметь (чем четче, чем лучше, но все мы люди) понимание, как летает самолет, зачем ему крылья, что делают летчики и кто и почему трахает бортинженера.
Ты планируешь стать частью отлаженного механизма, работа которого приносит деньги, сбои которого приносят убытки - а значит нужно, чтобы ты во время выполнения своих задач осозновал, что ты делаешь и как это сказывается на решении глобальной задачи.Если ты будешь иметь такое представление, то и не сгенеришь проблем другим и сможешь оперативно заметить, что что-то идет не так. Мониторингами все подряд не вымажешь, верификации на все не настроишь, инструкциями все случаи не покроешь - иначе вместо найма тебя написали бы ансибль плейбук и все на этом.
Перейдем к простым примерам:
- Веб-сервер ругался на недостаток прав, поэтому ты полез перебивать права на файлы, чтобы подогнать их под своего пользователя - чем сломал работу других служб, работающих под своими привилегиями.
- Но ты не такой дурачок, запустил веб-сервер под нужным пользователем, но ничего не заработало - потому что ты не знал, что тут настроены POSIX ACL (это нормально, о них почти никто не думает)
- Ты докинул диск в LVM том, но дотянуть логический раздел до нужного размера не получается - ты не знаешь, что конкретно тут диски в режиме Mirror, и нужно перезаложить размер.
- Ты не понимаешь, как работает ARP \ RARP, поэтому не можешь сходу установить, что у вас в сети наблюдается дублирование IP-адреса, дебажишь другие вещи.
- Ты настроил прохождение трафика, но забыл про пропуск ответных пакетов.
В целом в идеале младший инженер имеет очень неплохое представление о работе ОС и сопутствущих служб, а потом получает свой маленький кусочек во владение. И дальше демонстрируя умение качественно обслуживать свой маленький домен ты получаешь доверие и профессиональный рост - толковых мало, толковых надо повышать и кидать на сложные задачи, перезагружать мониторинг и утята могут.
Чем чревато?
Джун без фундаментальных знаний:
- Не умеет дебажить. Он не знает, что могло пойти не так, как работают сложно настроенные механизмы ОС, которыми пользуется не только он. Самая главная претензия от компаний это не умеет в нормальный траблшут - приходится будить более опытного инженера, а он в ночь пятницы бухой в гавно.
- Не умеет взаимодействовать. Он не знает, чего ждать от других компонент и людей, можешь сломать их пайплайны. Он не понимает, как работают унифицированные механизмы вроде LDAP, REST и так далее.
Что делать? Читать.
Компутер Саенс все таки саенс - а значит в ней есть фундаментальные труды, где люди расписывают базу и после прочтения которых у тебя в голове должен сформироваться вот такой карамболь - ты должен понять, как думали те люди, которые это разработали. Ты должен уловить их логику, понять, какую проблему они решали и все сразу встанет на свои места.(Однако, ударятеся в теорию информации не стоит, там не интересно. Хуже только теор. основы кудахтерной безопасности).
Итак, ты хочешь стать линукс-макакой - по совокупности сложности и полезности порекомендую это:
- Экзамены RHCSA и RHCE - ищи книги по подготовке к данным экзаменам, актуальные, оттуда ты возьмешь нужный уровень практики - шатание самой ОС, как она работает, как не работает и т.п. Во многих отечественных конторах аналоги этих экзаменов являются обязательными - это твое повышение квалификации. Если ты с порога заявишь, что мол "давай собесь по RHCSA" - это хорошая смелая заявка. Примеры - Red Hat RHCSA 9 EX200 Certification Guide и в целом Vugt, голлландец неплохо себя показал.
- Как работает ОС - сразу ебашь базу, "Современные операционные системы." Танненбаум. Дед базовейший, поясняет по масти. Ты должен иметь в голове четкие определения простейших вещей - "Процесс это экземпляр запущенной программы + назначенные ему ресурсы", что такое зомби, что такое дискреционная модель доступа, что такое виртуальная память - на собесе очень подкупает, когда человек отвечает быстро про такие для джуна нетривиальные вещи. Злоебучий вопрос про Load Average из этой же масти.
- Сразу шлифани книжкой где тоже самое, но про линуксы и попроще - «Внутреннее устройство Linux. 3-е изд.». Тут разбирают кишочки, а после Дедовской книги станет понятно, почему они именно такие.
- Курс CCNA от богоспасаемой корпорации Cisco. Никто лучше утятам про сети не рассказал. Они ушли, но "кто-то" выложил в интернет полностью рабочие их курсы. Можно загуглить "антинетакад", ищи и обрящешь.
- Книга "DNS и BIND", какое найдешь издание. DNS это самая базовая служба в ИТ, которая нужна всегда и везде и даже если на собеседовании у вас не совпадут используемые ОС, фреймворки, веб-сервера - DNS один на всех и как он работает ты знать обязан. (когда он отхуярится будет уже поздно изучать). Ценность этой книги в том, что ты посмотришь как люди задизайнили то, чем пользуется весь мир и оно даже особо не разваливается. Станет понятнее mindset, имхо, это личная уже рекомендация. Ну и да - отличать A от CNAME ты обязан, знать, чем рекурсивный запрос отличается от нерекурсивного тоже.
- Книжек не нужно(для макаки), но статейки полистай на тему - что такое виртуализация, серверная виртуализация, LDAP, REST, SSH, x509, контейнеры - могут быть интересные дополнения к прочитанному.
Если ты осилишь эти книжки и сможешь вывезти за базар по ним - ты лично для меня уже очень ценный и интересный кадр, думаю, я закончу собес после 2-3 вопросов - сразу пойму, что ты знаешь, откуда в будке интернет берется.И у тебя будет очень большое будущее, потому что это на 90% сильнее типичного кандидата.
Outro
Сосредоточился на недостатке фундаментального понимания у малолетних кандидатов, необходимость изучения БАЗЫ в тандеме с набором конкретных навыков. Человек должен понимать, в какой среде работает и как работают вещи, с которыми он взаимодействует.
Крч, как-то так, попытался без технического уклона, если кому-то будет интересно - могу продолжить и подраскрыть более технические моменты, ну или прояснить что-то на основе своей практики.
Комментарий удалён модератором
Это пиздец, я даже в кратком пересказе не буду читать это полотно
Этот шарит
В 90-х спал с этой книжкой в обнимку :)
тогдашние книжки базой разбавляли хорошо, получался нормальный контент - вроде и научили как делоть и сразу пояснили, как там куда чего. Нынче материал более выхолощенный, так что надо две книжки читать.
А можешь про информировать по:
- вилке зарплат
- есть ли вкат сразу на удаленку ( для джунов). Так на пример в моем регионе из it вообще ничего практически нет очного.
- условную цепочку карьерного роста
- перегрета ли сфера по сравнению с программистами
?
Заранее спасибо
вилке зарплат
По моим наблюдениям если ты заходишь как линукс-джун то с учетом закрытия стажировки успешного (а если ты нужен, то закроют, лишь бы не косячил адски) до 100к должен допрыгать за первые полгода с момента начала стажировки - 3+3 месяца. Повторюсь - мы говорим по треку для самого лунтика, которого "как-то" взяли.
Дальше 150к должно быть очень быстро (чтобы ты не ушел) и дальше уже как добазаришься и чем занимаешься. Но это очень обобщенный опыт, со мной такими цифрами напрямую не делятся.
есть ли вкат сразу на удаленку ( для джунов).
У многих компаний это есть вполне, те, которым я помогаю, процентов на 80 состоят из удаленщиков всех мастей. Есть те, кто с шизой, но мои "подопечные" радостно возьмут толкового хоть с Луны - работать некому.
условную цепочку карьерного роста
Если очень обобщить (все разные, компании бывают продуктовые, сервисные, аутсорсеры, внедрецы, вот это все) то сначала ты закрепляешься как скилловый чувак, дальше смотрят на то, какой ты человек. Если ты следишь за базаром, с тобой приятно работать и ты умеешь объяснить что-то остальным - станешь руководить группой инженеров, таск-форсом или аналогом. Очень мало "сержантов" - взрослых (ментально) людей, которым можно нарезать задачу и они сами её зарешают. Зумеры сильно испортили реноме джунов в этом плане.
Либо, если ты в компании где это не нужно, могут начать тебя специализировать - поставят тебе цель, например, освоить современные NGFW и отправят на учебу - компании в принципе вкладываются в своих утят, это пачотно среди братвы.
перегрета ли сфера по сравнению с программистами
Да. ЗАкрыты ли вакансии? Нет. Девопсы это вообще ебаный рак, нахватались мануалов как пайплайны рисовать, а что такое права на файл прочитать забыли - потом целыми командами разгребают. Имхо девопс это только переобученный линукс-инженер, никак иначе.
Импортозамещение набирает ход - отечественные поставщики софта, сервисов и услуг наращивают выручку.IT-лахта из "Russian BIG TECH" заступает на службу. Воскресенье ведь еще.
https://www.cnews.ru/news/top/2024-12-20_rossijskij_biznes_nevzlyubil