Всем привет, я Алексей Нихаенко, data engineer. Захотелось личной историей поделиться, которая произошла 2 года назад «как я изучил Python за короткий срок». Тут не будет рекламы (хотя я покажу на чем я тренировался), не будет личного телеграмм канала и прочего. Просто история.
2023 год. Перед тем как пришёл в компанию
Итак начну несколько издалека. Работал в одной французской международной фармацевтической компании, офис в Москве, всё просто супер — это лучшая работа в моей жизни, я бы такую всем пожелал. Однако я из неё ушёл. Почему? Потому что меня конкретно выбесила одна программа, а чтобы её заменить на другое решение — нужна бюрократия, согласование, бюджет (хотя для меня было непонятно бюджет на что? Разве что ФОТ поскольку я предлагал open source решения А‑ля Apache Airflow)... Короче песня растянулась бы по моим прикидкам на год (и не только по моим, мне говорили что головной офис на такое пойдёт к концу года только), а у меня так всё горело, что я плюнул.
Как это произошло (мой уход)? Я в какой‑то момент в порыве эмоций открыл hh.ru, обновил резюме с +60% к текущей зп и подумал «да пофиг, всё равно никуда не возьмут с такими запросами и с такими навыками как у меня». Забегая вперёд ушёл из компании обнимаясь со всеми, то есть всё хорошо на мой взгляд прошло. Шеф, привет! Если читаешь (а я тебе обещал что скину историю как я чуть безработным не остался)
Да, на тот момент самооценка страдала и из знаний было SQL уровня разработчика, да и «как построить интеграцию сервисов, из чего состоит» и прочее что связано с ETL / ELT.
Но внезапно для меня самого — позвали на собеседование! Я открыл вакансию, глядь — а там всё то, что я знаю — visual studio (не code), MS SQL, знание ETL, документация, интеграция с API и прочее. Прям стало интересно, и компания занимается тем же (в области медицины). А это к слову моя любовь и страсть — я в детстве хотел стать хирургом, но в 16 лет оттолкнули меня от этой мечты три буквы д — далеко (обучаться, не в родном городе), дорого (бюджетных мест нет) и долго (типа 7+ лет). Именно тогда я подумал а чем же я ещё умею заниматься? Вспомнил, что с компьютерами на ты и пошёл в «вычислительные машины, комплексы, системы и сети» (2008 год)
Чуть отошёл от темы, возвращаемся. Собеседование само прошло по моим ощущениям на уровне «ты точно тот за кого себя выдаёшь?» я такой «естественно!», а они — тогда готовим оффер.
Получив я осознал что как‑то... Легко? И меня это напугало. А как они набирают персонал вообще? А какие задачи тогда там ждут, раз меня там так ждут? А как теперь уходить из компании, а уходить ли?
Подумав 3 дня я для себя решил, что всё‑таки меня будет и дальше бесить программа на текущей работе, а на будущей всё будет импортозамещенное, но хотя бы своё, кастомное решение, которое буду допиливать я и другие (в отличие от текущего решения в текущей компании). И, честно говоря, у меня остро стоял вопрос с жильём (я официальный бомж, у меня нет постоянной регистрации). И решил, что всё‑таки для закрытия базовой потребности надо зарабатывать больше. Короче говоря, деньги сыграли одну из главных ролей в принятии решения.
2023 год. Я пришёл в компанию
Итак, я тут. Пришёл, читаю внимательно все договоры (там их много и супер секретность, предупреждение что вы имеете работу с персональным данными и как бы ай ай ай!!!). Подписываю бумаги, иду получаю ультра тонкий ноутбук (стильный модный молодёжный). Мне на собеседовании говорили что строго офис, я такой пофиг, Москва сити, типа тоже круто будет. Так вот, получив ноутбук, иду к отделу кадров и спрашиваю а где шеф? Для меня было внезапно услышать, что он вообще в Ростове (работает удалённо) и он в отпуске. А, и что в офисе нет места, поэтому езжай домой))) я такой ну капец.
Я очень хотел что называется с первых дней выдавать какой‑то результат, а тут вообще непонятно с кем общаться, от кого задачи получать, где документацию по моему проекту читать, выяснить что у меня вообще за проект и какие задачи стоят ну и прочее. В общем on boarding был на уровне «на ноутбук, иди работай».
Короче грустный поехал домой. Первый день играл за компьютером (не рабочим) и был на связи. Никто не написал.
На второй день я стал бомбить всех кого можно сообщениями мол дайте работу! Дайте что‑то почитать, ну в конце концов, вы ж наняли чтоб я работал а не чтоб чилил! В общем на третий день (среда) ко мне пришёл другой человек, не мой шеф, но тоже шеф, его Алексей зовут. И говорит — ну что, работать хочешь да? Я такой да, очень) и он тут внезапно для меня даёт на внутренний gitlab ссылку с репозиторием, в котором участвует docker и Python, и говорит Алексей «попробуй запустить у себя этот ETL самописный, там есть ошибки, нужно исправить, но ты попробуй хотя бы запустить».
И капец что началось. В общем я понял что там ещё участвует PostgreSQL, Redis и это всё делать чтоб работало под Windows такое себе — я понял, что передо мной по сути встал challenge — разобраться с python, docker и Linux, а ещё поставить Redis и PostgreSQL и что‑то нечто, которое через user interface сможет взаимодействовать с PostgreSQL (pgadmin4 в итоге был выбран, но до этого я не знал его и с PostgreSQL не работал). Я этот challenge принял и под вечер четверга я всё установил, по минимальному как‑то настроил и оно запустилось. Но был ужасно тормознутый этот ультратонкий ноутбук, я бесился, но терпел.
Бог Python
В четверг мне Алексей сообщает, что завтра познакомит с командой, которая в основном состоит из devops. Пятница. Созвон. И говорит «здравствуйте команда, вот у нас Алексей Нихаенко новенький, он бог Python, он его знает лучше чем вы все вместе взятые»
Команда хлопает в ладоши, говорит «ура, мы тебя давно ждали», Алексей добавляет «он нам наш ETL исправит к сдаче», а я был в шоке. Нет, вы представляете, если бы вас позвали на созвон и представили богом языка программирования, который вы не знаете? Это же капец подстава! Я удивился, а он вообще читал моё резюме? Он вообще как, на что рассчитывает, или вообще что тут происходит? Может они ошиблись и не того на созвон позвали?
И меня руководитель проекта (который тоже был на созвоне) спрашивает «Алексей, а ты поправишь его к понедельнику?». Тут я начинаю импровизировать, включаю умное лицо, интонацию соответствующую (созванивались без камер) и говорю «так, я только его запустил, я только догадываюсь где может быть ошибка, нужно провести R&D, в общем давайте в понедельник созвонимся я скажу точные сроки исправления, к понедельнику вряд ли получится»
Мне говорят «понимаешь, у нас 1 августа уже сдача будет ETL перед заказчиком, очень нужно чтоб работало» (дело происходит 22 июля). Я такой понял принял, приложу все усилия.
Как только заканчивается созвон я выбегаю на балкон, нервно курю и думаю» мне конец» (в матерной форме). И давай думать как выкручиваться. Решил по итогу пойти на риск — попробовать в экспресс режиме впихнуть в себя невпихуемое — более глубокие знания Python, docker, Linux и прочих связанных штук. Сразу открыл много вкладок с Google, ChatGPT, stepik и давай изучать и тут же изученное пробовать. Естественно на stepik открыл курс Python для начинающих, бесплатный (поколение python). И давай с утра до ночи кодить.
Я прервал общение с друзьями, я не выходил гулять, завтрак — бутерброд с чаем, обед — ближайшая столовая, ужина нет. С 8 утра до 12 ночи я только и кодил и изучал, а в непонятные моменты я выбегал заново на балкон, приговаривал «мне конец», нервно курил и думал как я дальше буду жить без работы? Ведь выпнут же. А ещё мне казалось, что мне не к кому обратиться — ведь на работе я бог питона, а в окружении никого из питонистов нет, да и стыдно признаться что я в такую ситуацию попал, в общем давай выкручиваться.
Понедельник, баг исправлен, должно работать. Запускаю — то переполнение памяти, то type error, то value error, то attribute exception (отсутствует вызываемый атрибут).
В понедельник на созвоне говорю, что к четвергу (27 июля) всё отлажу, найду все баги и предусмотрю разные варианты данных на вход и в соответствии буду нормально обрабатывать. Конечно же, к четвергу я ничего не успел в том числе потому что мой ноутбук медленный не давал в полной мере разрабатывать, о чем я во вторник сообщил, мне в среду его заменили и вся среда ушла на настройку рабочего окружения такого же, как было на медленном ноутбуке.
А ещё прикол, я удалял Python на Ubuntu и конечно же всё сломалось, систему переустанавливал. В общем, было весело.
В четверг мне сообщают, что показ перенесли — с 1 августа на 9 августа и говорят «давай Лёха, не подведи, мы оплатим переработки, только сделай к 9 августа». Меня это ещё вдохновило и я пару раз работал до 4 утра (в 9 рабочий день начинается, ну сами всё понимаете). В общем, безумие и отвага.
Я давай вплоть до 8 августа работать в режиме с 8 утра до 12 ночи — основная часть времени уходила на неожиданные данные в полях (грубо говоря там, где я ожидал дату, приходила просто буква) и на динамичное создание sql запроса для upsert данных (14 таблиц), экранирование, внезапное прерывание связи... Да, там своих нюансов хватало с точки зрения техники.
И представляете, 8 августа в обед у меня всё заработало! Всё шло без ошибок (точнее я все исключения обрабатывал корректно)! И большие данные (порядка 30 гигабайт) заливались успешно и довольно шустро! Я капец как визжал от радости! Всем побежал сразу рассказал что всё окей! Мне говорят молодец, в среду покажешь заказчикам и ответишь на вопросы.
Среда проходит забавно))) в 12 показ, в 11 репетиция, в 10 я должен подготовить там всё. И что я делаю? Просыпаюсь в 11:30. Мне на телефон пишут естественно мол а ты где? Я подрываюсь, не кушаю, не умываюсь, просто залетаю с ноги в созвон репетиции и там все подготавливаю и провожу репетицию до 11:50
10 минут осталось на перекур и умыться, что я и делаю. Потом проходит показ (успешно) и все хлопают в ладоши.
Следом идёт внутренний созвон, где все друг друга поздравляют, но я там конечно герой, мне сказали что я спас проект и добавляют «Алексей, не уходи пожалуйста, мы больше такими дедлайнами не будем баловаться». А я в это время про себя — нифига себе как за пару недель всё поменялось! То я значит думал как бы меня не уволили, а тут говорят не уходи) в общем после этого я действительно считался (и считаюсь) супер профессионалом, после этого я конечно же наверстал все знания и теперь действительно на мой взгляд пишу хороший поддерживаемый код.
Ретроспектива. Почему так всё произошло
Спустя время я выяснил почему вообще вся эта ситуация возникла.
Меня действительно некому было проверить на знания, поэтому так быстро и легко прошёл собеседование
Горящие сроки. Нужен был срочно человек, отвечающий за ETL
В голове Алексея (того самого) знания ETL = знания Python, Linux, docker
Подстава от предыдущего сотрудника. Тут поподробнее
В общем, до меня дело обстояло так. Пришёл некий человек, разрекламировал себя (продал очень хорошо) и ему дали задачу написать тот самый ETL инструмент. Суть инструмента — вытаскивает из PostgreSQL (нескольких) данные (джойня уже на стороне ETL) и загружает в импортозамещенную витрину посредством api.
Тот сидел 3 месяца, получал денежку и ничего не делал, а всё строилось на доверии (минимальный контроль). Когда уже вот вот сроки, то оказалось, что ничего тот не написал и он уволился. Алексей (тот самый) взял и экстренно на коленке что‑то накидал, отчитался перед заказчиками 1 июля, что всё готово, 1 августа показ решения.
Я пришёл 17 июля и вот, понеслась. Меня тоже минимально контролировали хехе.
Конец. Послесловие
Мне казалось, что изучить Python могут все. Мне казалось, что то, что я сделал — никому лучше не рассказывать, а то расколят меня до самой пятой точки и все поймут, что я ничего не знаю и все работодатели всех стран меня сразу внесут в чёрный список и я больше никогда не найду работу (смешно, да?)
После того, как двоим людям «по секрету» рассказал что как случилось (спустя почти год, в 2024, летом), то они мне сказали, что это вообще фантастика и надо срочно всем рассказать, ведь какая вдохновляющая история получилась! Что всё возможно! И именно эти пара отзывов меня подтолкнули написать эту статью рассказ. Спустя ещё год, как вы понимаете, я всё‑таки собрался и подумал «была не была, отхвачу хейта — попрошу удалить статью если что. Ну или аккаунт удалю».
Так что вот такой я. Со своими заморочками, со своим геройством, безумством и отвагой.
Выводов не будет. Я просто смог. Но это было невероятно тяжело и очень рискованно. Не всем подойдёт такой путь — у меня просто за плечами ничего и никого не было, поэтому я шёл ва‑банк и, кажется, выиграл эту жизнь. Но это не точно.
P. S. Очень хочется плюсов в карму, люблю раздавать плюсы
Комментарии (9)
anshdo
07.07.2025 17:11Самое поганое, что вот когда сам пытаешься изучать какую-нибудь технологию "на вырост", можно месяцами, да что там, годами ковыряться в основах, и ничего толком не наковырять. А вот прилетает термически обработанная птица, клюёт в ягодичную мышцу, и реально за пару недель всё в голову впихуется.
egaoharu_kensei
07.07.2025 17:11Очень необычная история. Мне кажется, даже на обычных галерах не так наглеют (начальники) по сравнению с таким подходом). Ну а автор конечно молодец, что справился с нагрузкой.
К слову, если кто-то хочет изучить питон самостоятельно, хочу поделиться полезной статьёй с кучей источников, которую я когда-то делал сам здесь же на Хабре (это не реклама и абсолютно бесплатно). Вот ссылка на статью: https://habr.com/ru/articles/709102/
Glavatskiy
Классная история! Спасибо за нее.
Я - как только начинающий изучать программирование на Python - многого не понял, но в целом очень жизнеутверждающе все это выглядит.
kneaded Автор
Спасибо, я как в первый раз волнуюсь рассказывая это) долго собирался, но вот) спасибо, от души) очень приятно такой комментарий получать)
Birek
Я похожим образом работу почти получил. За 5 вечеров сделал тестовое на SQL, хотя до этого его не знал. Но не сложилось, бюджет порезали и меня не взяли.
kneaded Автор
Молодец, мне тут недавно попалось...
Просите, и дано будет вам; ищите, и найдете; стучитесь, и отворят вам. Ибо всякий просящий получает, и ищущий находит, и стучащемуся отворят (Мф 7:7–11)
Так что не бросайте, всё получится)