March 13, 2020

Я DevOps-ом быть хочу, пусть меня научат

Все – буду DevOps, решил ты. Задачи интересные, это не заправка картриджей и установка 1С Бухгалтерии на компах. И зарплата радует. Выписал себе на листочек все, что нужно изучить. И пошел рыть в интернете. Прекрасно.

Но так это не работает. Потому что, во-первых, информация в интернете разрознена и не системна. Во-вторых, ты можешь найти много теории, потратить много часов на ее изучение – и в итоге не знать ничего. Потому что вся история DevOps завязана на практике. И теоретического материала в интернете, конечно, более, чем достаточно (а чего там сегодня нет?). А вот практических кейсов – как раз нет.

Ага, скажешь ты. Дак я сам потренируюсь. Придумаю себе практические задания. Но тут другая подстава. Да, можно начать выдумывать самому себе задания, но, увы, к реальной жизни, к проектам, они могут оказаться абсолютно не применимы.

Так почему же у тебя не получится стать DevOps-инженером?


1. У тебя не получится, если ты хочешь, чтобы добрый дядя пришел и научил тебя быть DevOps-инженером.

То есть дал в руки волшебную палочку и подробную инструкцию, как творить с ее помощью любые чудеса, включая задачи по DevOps. Так не бывает. Нельзя научить человека теме от и до , в этом мы убеждены. Можно направить, подсказать, возможно, показать, как правильно, дать инструменты и объяснить, как с ними работать. Но научиться можно только самому, на практике и своих шишках.

Если давать человеку готовые ответы, то ничего не запомнится. То есть, если мы не прилагаем усилий для того, чтобы получить какую-то информацию или результат, то мы просто ничего не запоминаем.

Пожалуй, это идет вразрез с классическим пониманием образования, но наш опыт подтверждает этот тезис на 100%.

2. У тебя не получится, если тебе интересны не DevOps-практики, а большая зарплата, которую обещают DevOps-инженерам в вакансиях.

Если единственное, что привлекает тебя, - это зарплата от 100 000 рублей в профессии, в профессии тебе придется непросто. Да, деньги неплохие и их можно еще увеличить, но скорее всего тебе быстро надоест работа. Потому что DevOps-инженер - это про кругозор. Про то, чтобы делать эффективнее, быстрее и безопаснее. И придумывать, как это сделать именно так. Нашим ребятам просто прикольно смотреть на пайплайны, пробовать новые технологии, оптимизировать, им нравится сам процесс и результат. Если единственная цель - деньги, ты не заинтересован в профессиональном развитии. А значит, и «потолок» зарплаты наступит очень скоро.

3. У тебя не получится, если ты хочешь «по верхам» освоить хайповые технологии, не разбираясь в основах.


В Fevlake мы постоянно набирали ребят на позицию DevOps-инженер. И с завидной регулярностью приходили кандидаты, которые вроде знают Docker / Kubernetes / Gitlab / Jenkins и др., но когда начинаешь спрашивать, например, про сети, они теряются. У них поверхностные знания того, что сейчас популярно, и совершенно нет фундамента. Ну и что, спросишь ты? Ведь может задеплоить и норм?


Ответ – актуальность надо строить на крепком фундаменте. Есть фундаментальные знания, на которые надстраиваются всякие хайповые штуки. Если основа - крепкая, то быстро освоить любую технологию для тебя не составит труда. Сам знаешь, технологии меняются молниеносно, порой голова пухнет. Только поняли, как работает Docker, уже подступает Crio и так во всем. Хороший инженер должен быстро адаптироваться и понимать, что он делает. Тогда технологии будут идти вместе с тобой, а не против.


4. Не получится, если ты привык учиться по книгам.

Представь, ты посмотрел 100 тыщ лекций от самых умных ребят на планете, прочел 123 книги о том, как внедряются DevOps-практики. Как думаешь, ты стал инженером? Скорее нет, чем да, потому что ручками ты это все не делал.
Простой пример. Если хочешь научиться играть в баскетбол и посмотришь лекцию с Майклом Джорданом, где он во всех подробностях расскажет, как ставить ноги и под каким углом должен быть локоть при броске, ты вряд ли сходу станешь от этого лучше играть. Лишь придя на площадку и начав бросать мяч, ты начнешь тренировать свой скилл.


Так и здесь, можно научиться чему-то, только выполняя проекты своими руками, ошибаясь и исправляя ошибки. Неоднократно проверено личным опытом – смотришь лекцию, все понятно. Переходишь к задачке – оп, сколько тонкостей. И миллион вопросов сразу. И только сделав руками (и переделав раз пятьсот), можно апнуться как специалист.

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

Звучит высокопарно, но DevOps - это не конечная точка, а путь. В мире IT постоянно все меняется, появляются новые подходы, технологии, проекты, задачи. Невозможно выучить все и остановиться, ведь завтра уже выйдет что-то новое.
Нужно учиться читать документацию, быстро вникать в проекты и понимать логику. Тогда любая новая технология будет для тебя очередным инструментом, в котором ты можешь оперативно разобраться и взять в работу.
И тут, дочитав последний пункт, где-то вдали заплакал маленький будущий DevOps-инженер.

Потому что - а как же тогда учиться, если в интернете много теории, но она разрознена и не всегда актуальна, а рабочих задачек в сети единицы? Работодателям нужен опыт работы, а взять его негде.


Ответ есть, но об этом чуть позже.


А пока инструкция по поиску кодового слова. Найди на картинках в статье спрятанные буквы и составь из них слово.