Категорический императив о становлении в IT
В статье я развожу болтологию о некоторых философских вопросах, которые иногда приходят в голову технарю, но скорее всего это происходит от переизбытка свободного времени. Хабр, конечно, не социальная сеть, но некоторые, возможно, найдут мои рассуждения интересными, поэтому смею опубликовать их в сообществе, не ради пиара, но скорее, как способ пошаговой беседы с вовлеченными людьми.
Размышления технократа о жизни становятся более частыми с каждой пятеркой прожитых лет и это то, что я не вижу в глазах новобранцев IT индустрии, только получивших образование в классических технических университетах, но зато проявляется у проработавших в индустрии первый десяток лет. А это для большинства означает, что им слегка за 30, например, 36 лет. Многие из нас уже тимлиды в своих специализациях: системный администратор, сетевой инженер, develop, безопасник, разработчик… IT модно, потому что высокие зарплаты создали в обществе образ успеха и беззаботности, что в свою очередь наплодило школ повышения квалификации и их выпускников со всем многообразием теоретической базы: к нам приходят и специалисты театра, кондитеры и гораздо более интересные профессионалы иного ремесла. И я не совру, если скажу, что они способны на практике уделать таких как я, изучавших лишь 3 математики (дискретную, комплексную да теорию вероятности со статистикой, сейчас понимаю, что лучше бы было больше) на специалитете, потом углубившись во, что-то более приближенное к жизни в магистратуре и окончательное расставшись с наукой в аспирантуре. Первый принципиальный вопрос –, а нужно ли в IT профильное образование?
Проработав чуть менее трети жизни сетевым инженером появилось желание писать о своем опыте и нашлись даже те, которым было это интересно и полезно читать, благо Хабр реален, а не вымысел фантастов (хотя многое из рассказов Айзека Азимова звучит даже очень обыденно, особенно в части известной среди питонистов и не только нотации хреновин и штуковин). Этот самый опыт одновременно приводит и к скуке, которая появляется, когда основная часть рабочего времени не приносит ничего нового: в большинстве случаев все известно и понятно, и лишь изредка появляются действительно технически сложные, творческие задачи, иногда на ровном месте, например, после стараний регуляторов. Кто бы мог подумать, что Cisco и Mikrotik придется доставать, как дефицит, а реалии прикажут изучать доки с иероглифами, что лично мне не по душе. В конце концов, unix time никак не связан с китайским новым годом. Второй принципиальный вопрос — важен ли в современных условиях в IT классический опыт?
Работа руками всегда доставляет больше положительных эмоций, чем работа головой. Те из нас, которые работают на удаленке, точно заметили что деградируют в социальном плане. Общение с обычными живыми людьми раздражает, выходить из зоны комфорта не хочется. Здесь же поучаствовал языковой барьер, особенно у тех, кто на время выехал из страны в поисках приключений. Ладно, если вы живете в экзотической среде, но точно в СНГ не везде нам были рады. С одной стороны, много специалистов уехало, с другой, их места заняли почти не случайные люди, как будто, чтобы управлять действительно сложной промышленной отраслью достаточно просто родиться. Третий принципиальный вопрос — что ждать в будущем от отечественного IT? Что ждать, если из отрасли свалят серьезные игроки международного уровня?
Я не верю, что завтра мир превратится в киберпанк, однако с каждым месяцем становится веселее. Никогда не думал, что знания о технологиях нельзя будет распространять. Многие мои друзья уехали, раньше это называлось утечкой мозгов, а теперь релокацией. Я не хочу уезжать, потому здесь я свой, я хорошо говорю и пишу на русском языке. Я учился на инженера, я давно в IT, мне здесь жить, а чтобы жить хорошо, нужно как следует делать свою работу. Однако хочется перемен, именно поэтому я решил начать с себя. Программирование — это то, чего я дистанцировался на протяжении всего профессионального становления. В школе Basic, в университете Turbo Pascal (созвучно, с прости, господи), даже с Delphi близко не довелось познакомиться. Легко сказать, сложнее ответствовать. Php и Javascript на платных курсах от известных игроков принесли только разочарование и низкокачественный опыт и кое-какие домашние подделки, работающие на удивление стабильно на древнегреческом стеке. Я решил фундаментально расширить свой кругозор и углубиться в ранее отторгаемую тему — программирование. Четвертый принципиальный вопрос — когда тебе слегка за 30 стоит ли менять технологический стек и коней на переправе?
Развитие мира живого, называемое эволюцией, привело нас в цифровую цивилизацию, следовательно расширять имеющийся опыт схоже с эволюционным процессом, которые я считаю прогрессивным, но никак не регрессивным, о чем можно услышать от мистиков духа без приведения каких-либо разумных доводов. А модное дистанционное образование дает возможность каждому эволюционировать без необходимости физического переезда поближе к учебным центрам. Однако жизнь в мегаполисе позволяет принимать очное участие в различных конференциях, хакатонах и неформальных корпоративных встречах, в конце концов, подружиться с кем-то из серьезных специалистов работающих в топ-10 IT компаниях. Это очень серьезный плюс, особенно при решении сложных не стандартных технических задач, ответы на которых с киберпомойки никак не годятся, ведь лучшие практики не всегда бывают легко досягаемы в интеллектуальном смысле. Отсюда сформирую пятый вопрос –, а есть ли продвинутая IT тусовка за пределами столицы?
Дистанционное образование сейчас чрезмерно модно. Курсов, школ, академий… действительно развилось много, и если ты решил прокачаться в чем-то новом и сделать это платно, то лучше осознанно подойти к выбору центра повышения квалификации. Не могу не упомянуть про такие заведения, носящие неприлично громкие слова на вывесках (и гораздо более скоромные в документах), которые снабжены государственными лицензиями, однако никаким образовательным процессом не занимаются, ориентируясь на государственного заказчика, выбирающего куда направить на обновление своих сотрудников исключительно по низкой стоимости, не беря в расчет качество и многие другие параметры, например, актуальность преподаваемой информации. При выборе кому платить, можно ориентироваться на отзывы в интернете, отсеивая сфабрикованные. Или читать корпоративные блоги, например, на Хабре. Смотреть бесплатные вебинары — тоже не плохо. С советами друзей или коллег сложнее, далеко не все хотят эволюционировать и поэтому не имеют какого-либо интересного мнения на этот счет.
Я выбрал Яндекс Практикум уже не важно почему, более интересно показать результат. Через полтора года обучения я могу считать себя начинающим python разработчиком и недавно закончил первый личный проект. Остановлюсь подробнее, чтобы подсветить технологический стек. Сервис состоит из телеграмм бота, с помощью которого можно легко уcпеть выхватить талончик в городскую поликлинику (оказывается, это головная боль особенно для того, чтобы показать свое чадо педиатру в Санкт-Петербурге). Бот является фронтендом и обращается к асинхронному backend-у (Fastapi). Фреймворк парсит общедоступную информацию, в том числе каждый раз при создании подписки. Это важно, ведь врачи мигрируют от поликлиники к поликлинике, и приходится поддерживать базу данных в актуальном состоянии. Разумеется, это нужно делать в разумных пределах, поэтому Redis обеспечивает гибкое кеширование ответов от внешнего api. Для решения задачи приоретизации уведомлений, а также дискретного по времени поиска свободных номерков, в проект интегрирован Celery, синхронные задачи которого просто дергают нужные ручки бэкенда. Удобное администрирование базы данных возложено на Django, его админку без сомнения можно выставить в интернет. Кроме этого для автоматического активирования подписки единственная открытая всему миру DRF ручка принимает ответы от платежной системы, валидирует их и сообщает приятные новости Fastapi. И конечно же, весь питоновкий код прикрыт серверами приложений Gunicorn и Uvicorn, соответственно их назначению, и веб сервером Nginx в первой линии. Можно все упаковать в Docker, но на сервере весь стек прекрасно уживается и не требует дополнительного слоя виртуализации. Проект живой, выглядит прилично, работает, несет людям добро, от идеи до старта прошел месяц. Смог бы все это я наворотить, если бы полез в питон с самоучителями, уверенно скажу, что нет, не хватило бы мне мозгов. А еще скажу, что полтора года обучения были очень тяжелыми (особенно алгоритмы), пришлось отложить сериалы по вечерам, инстаграммы и тому подобное. Человек, который проверял мой код был в полтора раза меня старше и делал свою работу очень хорошо, один из проектов был принят только с 11 попытки. А еще я думаю, что выбрал образовательную организацию очень удачно, не сравнено лучше моего предыдущего опыта в обучении программированию.
Серьезные игроки международного уровня задают в отрасли уровень, который, по-моему мнению, значительно снизится в случае их релокации. Было достаточно слухов об планируемых переездах, хочется верить, что этого не будет. В заключении приведу свое мнение по заданным вопросам. В IT обязательно нужно профильное образование, если его не будет или будет не хватать, то придется экспромтом наверстывать упущенное. Классический опыт очень важен, потому что позволяет смотреть на решаемые задачи гораздо более многогранно, пресекая плохие практики до момента их выпиливания из уже работающего проекта. Я жду, что в будущем отечественное IT не будет изолировано, а будет продолжать эволюционировать. Менять технологический стек сложно, а вот расширять — нужно, жить становится значительно интереснее. Продвинутой IT тусовки за пределами столицы мне не хватает, поэтому приходится двигаться в мидлы самому. И это будет моим становлением в IT, путем, о котором можно говорить в прошлом, настоящем и будущем временах.