З рятувальника ДСНС в DevOps-інженери за 6 місяців

Усі статті, обговорення, новини про DevOps — в одному місці. Підписуйтеся на DOU | DevOps!

Середина 2021 року. «Максимум», що я можу зробити на комп’ютері, це перевстановити віндовс (якщо під рукою є ще один комп, на якому можна дивитись відео як то робиться). Тоді я служив в рятувальній службі ДСНС України, і «раптом» зрозумів, що якось по-іншому уявляю своє життя (в фільмах про пожежних не показують миття підлог, копання лопатою, перенесення піску з однієї купи на іншу, та безкінечне заповнення якихось журналів). І оскільки я нічого РЕАЛЬНО робити не вмів на той час (закінчив славнозвісний ІНФІЗ, займався боксом замість навчання), то мій вибір пав на айті сферу. Ну а що? Гроші платять мішками, працюєш з будь-якої точки світу, вчитись 2-3 місяці, гарні дівчата з LinkedIn пишуть перші....

Якось інтуїтивно я зрозумів, що айті курси мені «не підходять». По опису система навчання більшості курсів була дууужжеее схожа на ту, що в школі чи в універі: приходиш на урок, тобі щось розказують, ти щось пробуєш, тобі дають домашнє завдання, ти його «успішно» вдома виконуєш, і всі роблять вигляд наче ти тепер щось вмієш... А потім як і в випадку з закінченням універу: «Вибачте, але нам потрібна людина з досвідом. Хтось, хто вміє вирішувати реальні задачі!». Тож маючи НУЛЬ знань в сфері я подумав: «Буду САМОСТІЙНО робити свій додаток, а там по ходу діла чомусь та й навчусь» — це було найлогічніше рішення в моєму житті !!!

Я довго не думав про що буде мій додаток. Як згадувалось вище, на службі (будь-якій, до речі) є купа якихось журналів, які обов’язково треба заповнювати і в них розписуватись. Так, при виході на зміну, я розписувався в таких журналах:

1. Журнал первинного інструктажу з безпеки
2. Журнал повторного інструктажу з безпеки
3. Медичний журнал, де я затверджував своє самопочуття
4. Журнал, де треба розписатися, що ти прийшов на роботу (ніколи, до речі, не розумів, як можна НЕ прийти на роботу, якщо ти ВЖЕ розписався в трьох попередніх журналах)

З моєї сторони також була ініціатива запровадити ще один журнал, де необхідно затвердити, що ти розписався в попередніх 4 журналах, але цю ініціативу керівництво чомусь не підтримало.
І от окрім цих та ще інших журналів в нас був журнал чергувань. Тобто на своїй зміні (працюють рятувальники добу через 3) окрім того, що твій взвод вже є черговим взводом, всередині нього має бути ще людина «черговий-черговий». Ця людина миє поли, драє умивальники з сортіром, і частіше інших переносить речі з однієї купи на іншу. Журнал заповнюють, ведуть, вписують людей в колонки з датами..., а потім успішно десь плутаються, ставлять не там відмітки, і починається: «Ви шо гоните, я 4 зміни назад чергував! Хай Вітя сьогодні драє плитку!!!»
І от, в 21 столітті, живучи в «найвідцефрованішій» країні світу (так мені казали), я вирішив, що з веденням цього журналу ніхто не справиться краще ніж безпристрасна залізяка, на якій буде хоститись моя майбутня аплікуха.
Короче, як казав Юлій Цезар: «Жереб було кинуто!»

Почалась моя «робота» з гугління які взагалі існують напрями в айті, що є фронтенд і бекенд, що існують різні мови програмування для них.... Потім я нагуглив, що Python вважається чи не найпростішою мовою для початківців, і що на ньому взагалі багато чого пишуть... А ще я додумався до того, що можна не витрачати час на фронтенд та створення кнопок, і що можна просто взяти Telegram API з вже готовою UI.... І понеслась....

Подивився я десь 7-8 відео в стилі «Python для чайників» на YouTube, і такий: «ну все, теорії з мене хватить, треба вже шось робить!». Написав свій перший «Калькулятор» десь за 2 дні (НЕ гуглив готові рішення, зробив щоб на нуль ділити не можна було, щоб в терміналі висвічувало «введіть цифру на яку хочете множити» — классіка). Сам процес мені наче сподобався..., було цікаво самому придумувати собі задачі, знаходити для них рішення, спостерігати як «воно щось там собі рахує». Але справжнє відкриття для мене відкрилось згодом....

Після створення калькулятору я вирішив спробувати взаємодію з API Телеграму. Зареєстрував токен для Телеграм бота і написав першу строчку коду з використанням бібліотеки для нього, натискаю «Run»... І В МЕНЕ В ТЕЛЕФОНІ З’ЯВЛЯЄТЬСЯ КНОПКА З НАПИСОМ «Hello World» !!!

Ауууууу!!! Ви мене чуєте взагалі? КНОПКА! З’ЯВЛЯЄТЬСЯ! В ТЕЛЕФОНІ!
Не знаю, можливо для вас нічо нового.... Але для мене (фізрука за освітою), в якого не те щоб інформатики в школі не було..., я навіть оцих «всесвітньо-відомих» курсів як користуватись Excel не застав....
Просто зупиніться на секунду, і уявіть собі: ти пишеш ТЕКСТ на своєму комп’ютері, а в тебе в телефоні (який не має, між іншим, ніякого «прямого» зв’язку з твоїм комп’ютером) з’являється кнопка в Телеграмі. І якщо ту кнопку натиснути — щось відбудеться! Не знаю як вам, а мені тоді дах просто знесло.

Я прокидався о 8 ранку і відразу сідав за комп: писав цілий день код, малював на папірчику схеми як я хочу щоб бот працював, який функціонал мав, як попереджав людей про те, що сьогодні не їх зміна, щоб він «переносив» людину далі в черзі, якщо вона зараз у відпустці чи на лікарняному, гуглив, запускав, дебажив...

Оскільки це був мій перший досвід з програмуванням, то НЕ працювало в мене абсолютно все! Я бачив всі можливі види помилок на світі, починаючи з того, що стрінгу не можна додавати до числа, і закінчуючи тим, що значення змінної не змінюється після відпрацювання якоїсь функції через різні області видимості (про це я ще згадаю, коли дійду до співбесід). Ерори сипались на мене звідусіль. Бували дні, коли я сідав о 8 ранку в надії виправити якусь помилку, а вставав з-за столу в годину ночі з тією ж помилкою на екрані. Були навіть помилки, які я не міг пофіксати тиждень. Відбувалось це через те, що в мене не було кого запитати, і не було такого як на курсах: тобі щось показали, а ти успішно повторив. Тому мені доводилось постійно гуглити.... Гуглив я дуже багато.... Читав якісь статті про банальні речі, слухав подкасти по дорозі в метро, дивився StackOverflow (чату GPT на той час ще не було).

Забігаючи наперед, скажу відразу, що свої перші 2 офери я отримав вже через півтора тижні після початку пошуку роботи. Ніяких 10-12 місяців безкінечних співбесід, ніяких постів про віру в силу LinkedIn, ніяких «мамина черешня» в мене не було. Я пов’язую такий результат саме з тим, що мені ніхто і нічого в мою голову не поклав, ніхто і ніде не підказав, і я сам «успішно» умудрився наступити на всі граблі, на які тільки можна було наступити. Так, через 3 місяці (коли мій бот був вже майже готовий) я раптово звернув увагу на те, що після закриття мого лептопу, всі дані, що успішно оброблялись і заносились в списки, безслідно зникали, і весь процес занесення людей до списку співробітників, планування календарю чергувань, планування відпусток, тощо... доводилось заповнювати спочатку!? Так я дізнався, що існує оперативна пам’ять і жорсткий диск. Також дізнався про існування баз данних, про нормалізацію баз даних, про те, що є реляційні і не лише реляційні бази даних.... А ще виявилось, що тепер необхідно переписувати весь код по-новій, вчити мову SQL, і думати над оптимальним виглядом моєї MySQL.

Ще через місяць в мене була запланована поїздка на Кіпр (якщо кожного місяця відкладати 100$ з зарплати рятувальника в 400$, жити з батьками, і не купувати айфон, то приблизно за рік-півтора можна накопичити на подорож до Кіпру). В ту поїздку ноут я брати не планував, тож про всяк випадок купив собі книгу Бгархави про алгоритми. Як ви вже здогадались, свою відпустку я провів з тою книгою під накриттям на пляжі.

Отож, прогу я закінчив, базу зробив.... А де то все хостити? Отоді я вперше почув про клауди. Почав гуглити де є безкоштовні сабскріпшини, безкоштовні віртуалки, бази даних.... І попутно гуглячи те все, я дізнався про ДевОпс. Мені сподобалось описання, мені сподобалась філософія, і перш за все мене привабила робота з інфраструктурою, і те, що це направлення здавалось більш «глобальним», більш «значущим». Адже, процитую уривок з книги SRE: «Не має значення наскільки твій додаток корисний, якщо ніхто не може ним користуватись». Тож, я витратив ще близько місяця щоб довчити базові речі про методологію Девопс та як влаштований Linux, інтернет, комп’ютерна мережа.... А потім.... Мені сказали: «йди на співбесіди!»

Весь цей час, поки я вчився, мені було дуже складно гуглити щось англійською (я витрачав половину всього часу на переклад). Тому паралельно я почав займатись в одній зі шкіл англійської (десь по 3-4 години кожного дня). Там я познайомився з хлопцем, який виявився тім лідом з Python розробки. Я запитав чи може він глянути мій код — він глянув. Потім уточнив у мене де я брав референс (я тоді ще не знав що то таке), а я пояснив, що кожну строчку коду написав сам, без якихось прикладів. Він почав мене питати речі по типу які є типи даних, як працювати з класами, чому я в тому чи іншому місці використав декоратор (я теж тоді не знав що це таке, а просто інтуїтивно робив як робив, бо розумів, що так буде оптимальніше). І після 15 хвилин розмови він запитав: «А ти роботу вже шукаєш?». Після моєї теради про те, що я нікому зараз без знань не потрібен, прозвучало: «Ти знаєш більше ніж половина джунів в моїй компанії !»

Перша технічна співбесіда пройшла через три дні після створення мною резюме. Я зайшов на мітинг, де мене протягом 10 хвилин питали одне й те ж запитання, але багато разів: «А ти працював з технологією Х ?». Я ті технології чув вперше, і на тому моя співбесіда закінчилась. Другою в черзі була співбесіда в компанію, де інтерв’юер знову ж таки 20 хвилин обурювався моїм незнанням технологій, і тим, що я ПРОСТО написав свою апку, і осмілився відправити своє резюме не маючи ніякого досвіду в ДевОпс. Потім в мене була співбесіда в компанію Y, де мене нарешті почали питати як влаштований Linux, що таке порт на VM, і що таке OPEX та СAPEX. Інтерв’юер поставився до мене з розумінням та повагою, а всі питання, на які я не знав відповіді, детально мені пояснив. Я записував абсолютно все, що він мені казав, щоб потім загуглити і вивчити. Дуже йому вдячний за це (сподіваюсь він це зараз читає).

І от сиджу я на четвертій моїй співбесіді в компанію XXXXX зі всіма знаннями з попередньої співбесіди, а мене питають про мій пет-проект, про те, як я його робив, і про те, яка різниця між передачею аргументу за референсом і за значенням (пам’ятаєте я раніше згадував про області видимості, і те, що деякі помилки я не міг пофіксити більше тижня?). І тут Остапа понесло..., бо я ненавидів ті mutable та immutable типи даних як ненавиджу рекламу казино перед онлайн фільмами, і мити-мити руки з милом.
Тоді, здається, я розказав все що знав і не знав про свою апку, розповів що таке точка входу у Flask, чим відрізняється cgroups від namespaces в Linux, як кораблі бороздять океани....

Через пів року, парячись разом зі своїми 2 менторами в бані, я запитав чому вони мене тоді взяли, і відповідь була по типу: «Ти був реальний чувак, який РЕАЛЬНО щось зробив, а не штани просиджував в універі. Тому твоє незнання технологій нам було по-барабану, бо ти їх дуже швидко вивчиш.»

P.S : А додатком, до речі, користувались.... Але не довго. Ну бо якось не дуже доцільно користуватись додатком, якщо керівництво все одно заставляє писати в журнал.

👍ПодобаєтьсяСподобалось3
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Молодець.

Завжди раджу знайомим вкочуватись через девопса або автотестера.

От недавно про це писав
dou.ua/...​rums/topic/49218/#2846458

Якщо не хочеш споганити собі кар’єру то не пиши під реальним ім’ям.
Через два роки підеш на сіньора співбесідуватись а тут таке прочитають

Але для мене (фізрука за освітою)

Дякую)
А через 2 роки.... я вже може буду магістром з профільною освітою.... ))

девопса або автотестера.

девопсів взяли і опустили до автотестерів

А чому «опустили»? По-перше, «війти в айті» девопсам точно легше через меншу конкуренцію (і плювати на поріг входу). Я думаю, автор коменту саме це мав на увазі. А по-друге..., чи багато девопсів можуть дійсно писати код з ООП, а не лише скріптіки на Python? Не думаю, що Yaml-девелоперство і Terraform-задротство це саме те, як Google уявляє і описує людину, що займається DevOps практиками, в своїй книзі «Site Reliability Engineering».
Девопс описаний в книжках, і девопс, що закриває потреби бізнесу в реальному світі — то різні люди!)

чи багато девопсів можуть дійсно писати код з ООП

Тим часом golang — «та да, та да, пішов я...»

Доброго дня!
Дякую за статтю.
Чи плануєте відкривати курси?

Курси про те, як тикатись немов сліпе кошеня, і пробувати поки не вийде?
Не думаю, що такі курси комусь зайдуть. То радше філософія самурая аніж конкретний план для дій)

Ти був реальний чувак, який РЕАЛЬНО щось зробив, а не штани просиджував в універі

Крінж якийсь якщо чесно.

Сам в шоці.
Вони ще й обидва з профільною освітою ))

зайшло і добре
базу качати ще довго будеш (в якийсь момент можеш буксувати)
а типові задачі викнувати вже можна зараз

Підписатись на коментарі