Сегодня день программиста, 256-ой день в году. В интернете будет много шуток, на Хабре — статей, в пабликах — мемов, в офисах — пиццы, сладкого и приятных сюрпризов. Программирование сегодня стало настоящим культом, к которому стремятся прикоснуться любой ценой, ведь, по мнению жаждущих, именно в программировании деньги, свобода, престиж и твёрдая уверенность в будущем. А раз есть культ, будут и атрибуты, и мифы, и те, кто превращает профессию в китч. Сегодняшний пост будет совсем не праздничным — он будет грустным, честным и немного злым. Потому что нам пора поговорить — почему бы не за виртуальным праздничным столом?
Этот пост написан для рубрики «Свободный микрофон» нашей сотрудницей, которая была инженером, немного была программистом, попыталась войти в IT и вошла, поэтому знает, о чём говорит. И наверное, это тот случай, когда наша команда разработки RegionSoft CRM и простого облачного хелпдеска ZEDLine Support согласна с автором и не будет писать дисклеймеры про мнение, которое может не совпадать.
Я хорошо помню 2003 год — это был первый курс, и на очередной научной конференции учёные нескольких сфер рассуждали о том, каким будет информационное поле человека во втором десятилетии XXI века. Речь шла об интернете, о разрушении массовой культуры, об обособлении личности каждого, но никто не обратил внимание на небольшой доклад студента одного из технических вузов о том, что программирование станет определяющей профессией будущего. Будущее настало, и очевидно, что прогнозы сбылись. Посмотрим, что имеем, друзья?
Всё есть ИТ-компания
Технологии — это выгодный инструмент, который в умелых руках может приносить доход. Поэтому крупный бизнес сразу взял на вооружение передовые программы и инженерные решения, чтобы получить больше прибыли за счёт оптимизации процессов. Начало таким действиям было положено ещё в 70-х, массовый характер автоматизация в крупном бизнесе получила в конце 90-х, а в 2000-х произошла важная и сложная трансформация. Бизнес понял, что покупать дорогие решения, бесконечные обновления, доработки и пакеты технической поддержки это как-то слишком дорого и решил вырастить бабу-ягу в своём коллективе, а именно стал нанимать разработчиков, которые начали обслуживать ИТ-запросы компании изнутри, создавая решения, которые максимально соответствовали бизнес-требованиям и не содержали лишнего. Сперва это были отдельные средства запросов к СУБД, сайты, биллинги, внутренние порталы, рабочие программы для инженерного обеспечения, сейчас это целые платформы, на которых разрабатываются внутренние решения и даже ведётся внешняя заказная разработка. Так постепенно ИТ-компаниями стали банки, финансовые компании, страховщики, медицинские центры, вузы и НИИ, системные интеграторы, строители, СМИ и т.д.
В результате сформировался огромный спрос на квалифицированных программистов, который, в свою очередь породил неадекватную борьбу за головы, разогрев рынка и зарплатных ожиданий, межрегиональный дисбаланс востребованности программистов. С другой стороны, этот же процесс стимулировал развитие высшего образования в сфере разработки ПО, рост интереса школьников к программированию и карьере в разработке. Сфера стала формироваться и уплотняться. Появился «пузырь» — разогретый спрос, множество слабых программистов и даже просто считающих себя программистами.
Сейчас идёт война за каждого сильного разработчика, начиная с уровня миддла. ИТ-компании выбирают ценовые и неценовые методы борьбы, бросаются в крайности, лишь бы схантить специалиста. Порой получаются обидные промахи и достойные кандидаты отметаются, а не очень — раздувают ноздри и попадают на высокие должности, угнетая целые команды.
Войти в IT после 20, 25, 30, 35, 45, 55…
Итак, ИТ-сфера стала популярной, и у каждого из нас появился друг, у которого есть друг-программист, который «500 штук в месяц зашибает». При средней зарплате в регионе около 30-40 000 для специалиста с хорошими компетенциями легко поддаться мысли вроде «ну а я пойду поучусь и сотню-полторы подниму, мне хватит». И начинается поиск путей в ИТ-сферу, жадное поглощение онлайн-курсов в режиме фонового прослушивания, покупка книг. Чаще всего дело этим и заканчивается, редко — человек действительно переходит в программирование (чаще — тестирование) либо попадает в ИТ-сферу по своему основному профилю (оптимальный расклад).
В смене рода деятельности нет ничего плохого. Более того, в наше время это необходимость: часть из нас поступили в вуз не по душе, а по указке; часть получили специальность, которая стремительно обесценилась; кого-то не принял перенасыщенный рынок. Но нужно понимать ряд важных вещей, чтобы не питать иллюзий.
- Учиться программировать — это не просто слушать и смотреть курсы, это не только читать книги, это неустанно кодить, дебажить, ошибаться, разбираться, весь код писать самому, от простого к сложному. Каждый день.
- Войти в IT просто — на младшие позиции, в роли стажёров и джуниоров. Подняться до среднего уровня уже гораздо сложнее, потому что вы упрётесь в образовательный барьер, вам понадобится знание алгоритмов, структур данных, паттернов, глубокое понимание ООП (ну или особенностей вашего не-ООП языка), проектирование, управление ИТ-проектами и т.д. Освоить такой материал по книгам можно, применить на практике же получится только после постепенного освоения на практике.
- Вас будут опережать молодые ребята, которые уже в 17 лет начали получать профильное образование, в 18-20 — стажироваться и заниматься реальными практическими задачами. Конкуренция с ними — вопрос опыта, знаний и достоинства.
- Вы должны твёрдо понимать, что ваши руководители будут младше вас, но вам придётся подчиняться и принимать опыт, рекомендации, замечания. Когда ты был начальником отдела маркетинга, а потом бросил всё и стал младшим инженером по тестированию, крайне сложно вылезти из одной шкуры и начать обрастать новой.
- Далеко не во всех компаниях фантастически высокие заработные платы. Чтобы не просить на собеседовании «ну 200 и по рукам», изучите hh.ru и исследования «Моего Круга», там довольно релевантные значения по зарплатам.
Трудно пройти путь в программировании до конца. Я больше скажу: у программирования нет конца, всегда есть горизонтальные и вертикальные векторы роста, новые технологии, языки, фреймворки, проекты. Подытожу: стать программистом за год не получится, только начать.
Неприлично доступное IT-образование
Большое количество желающих войти в айти породило спрос на ИТ-образование, и спрос стали удовлетворять:
- сервисы онлайн обучения — открыли массовые курсы, в том числе бесплатные;
- компании — сделали доступными свои корпоративные университеты, в которых можно получить очное, вечернее и дистанционное образование;
- школы программирования — стали расти, как грибы после дождя в ожидании вала слушателей и большой прибыли;
- вузы — открыли и расширили кафедры дополнительного образования, разработали специальные программы.
Все эти курсы и программы обучения стали доступны для всех возрастов. Однако на доступности преимущество большинства этих программ и заканчивается. Чаще всего курс представляет собой теорию + задачи +домашние задания, и сильно ограничивает общение с преподавателем. Фактически, вся ответственность за обучение лежит на будущем программисте. У него, в свою очередь, даже в 25 и в 35 лет просыпаются студенческие рефлексы: отлынивать и забивать. Если нет сильной внутренней мотивации и реальной потребности в обучении, это всё пустая трата времени и денег, знаниями на автомате прирасти не получится.
К сожалению, большинство курсов дают корочку/сертификат, если вы заплатили деньги. И это уже проблем HR-специалистов, потому что соискатели на серьёзных щах придают вес своим бумажкам, за которыми нередко ноль знаний.
Яжпрограммисты атакуют
В результате онлайн-обучения, курсов и лекций различного качества рынок переполнен «яжпрограммистами» — ребятами, которые могут кодить, могут даже создать какое-то веб-приложение (самая большая беда — именно JS, который учат буквально все, но к нему примкнули PHP и Python), но программистами не являются, т.к. у них нет понимания принципов энтерпрайзной разработки, устройства крупных проектов, отсутствует кодестайл и нет никакого рвения к рефакторингу. Первое же код-ревью низвергает их в пучину отчаяния — как можно настолько разгромить их великолепный код? Они же учились! Целых два месяца.
Такие ребята полагают, что программист сидит в компании и пилит свой проект целиком, им невдомёк, что приходится работать не просто над модулем, а над какой-то дискретной частью модуля, и работать так, чтобы было не стыдно закоммитить свой код вместе с коллегами. Однако у них есть значительный плюс — их легко выявить на собеседовании и либо взять на джуниорские позиции и воспитать в корпоративной среде, либо отпустить на фриланс пилить аддоны для маркетплейсов.
В принципе, в таком состоянии можно даже зарабатывать, но нельзя сделать карьеру и стать профессионалом. Нужно понимать, что в какой-то момент случится потолок, и придётся либо уходить из разработки, либо углублять навыки и знания.
Питон вам на шею!
Это отдельная беда современного программирования — все учат Python, и он явно догоняет JavaScript по уровню популярности у «входящих в ИТ после тридцати». Питон учат филологи и маркетологи, инженеры и менеджеры, экономисты и юристы. Спроси их почему, получаешь два ответа: потому что простой и потому что это высокооплачиваемый дата сайнс. Опять получается культ с кучей мифов.
- Python не простой — да, у него приятный синтаксис, понятная логика, хорошо читаемый код (ну если его хорошо написать), он универсальный и мощный. Язык — восторг, его приятно и понятно учить. Но как дело доходит до библиотек, фреймворков, сложных функций, он перестаёт отличаться по проблеме освоения от того же С++. На С++ тоже легко писать программку падения пищащей бомбочки, а потом указатель на указатель на указатель и ты сдох :-)
- В Data Science и Big Data нужно ещё попасть. Да, нет цены специалисту по профилю со знанием Python (тот же филолог со знанием программирования — это уже путь в NLP), но не так много их нужно. По-настоящего большие данные находятся в руках крупных или специализированных компаний, они вряд ли захотят себе оптимистично настроенного стажёра. Это банки, IoT-провайдеры, ритейл, связь, безопасность и т.д. Поэтому лучше на старте озаботиться поиском мест практики и будущей работы.
- Работа с данными — не всегда интересно. Может получиться так, что вы всего лишь будете обслуживать запросы аналитиков или коммерсов, создавая сложные выгрузки, выборки и отчёты. Скучно, однообразно, не романтично. Да и аналитиком быть — тоже только первый год радость, если честно, потом кони бегают по кругу.
- Изучая Python, не забудьте выучить математику ;-)
Однако если бы мне нужно было рекомендовать язык программирования для изучения, это были бы С и Python, потому что они живые, интересные, разнообразные и в начале простые (а там затянет). Кстати, в самом факте изучения программирования нет ничего плохого — формируется логическое
Май инглиш из политех финишд
История очень похожа на предыдущую — все учат английский язык, но мало кто его выучивает. И это серьёзный карьерный барьер. По состоянию на 2019 год удалённая работа стала доступной, и, имея хорошие специальные навыки, можно войти в состав международной команды с оплатой в валюте (и реально вплоть до 400-500 тыс. руб., например, в сфере SAP, компьютерного зрения или Data Science). Но уровень языка у многих разработчиков реально слабый. Однако это не мешает делать карьеру в российской разработке, хотя и здесь тренд очевиден — например, уже второй год весь GDG в Нижнем Новгороде проходит на английском языке без синхрона, а доклады-то реально ценные.
- Если вы программист или будущий программист, скажу однозначно — язык нужно учить и выучить. Почему?
- Лучшие материалы по большинству технологий лучше читать в оригинале.
- Лучшие докладчики, спикеры и эксперты могут быть русскими (индусами, китайцами, немцами и чехами), но говорят на английском.
- В интернете множество прекрасных ресурсов (таких же, как Хабр), на которых много крутых обсуждений на английском языке.
- Вы сможете войти в состав любой международной команды, работать удалённо и жить в российском городе на европейскую зарплату (ну или эмигрировать — тут зависит от возможностей и желания, не всегда это лучший путь).
- Английский язык — это язык open source проектов. Если вы контрибьютор или автор, вы сможете работать и развиваться невероятно продуктивнее.
Как и где учить — дело возможностей каждого из нас. По своему опыту могу сказать, что лучший вариант это оффлайновая языковая школа + непрерывное самообразование и практика, худший — онлайн и «переподготовка» в вузе.
Show must go on
Программистов нужно сманивать и хантить. А значит, сделаем шоу, чтобы всё выглядело как можно эффектнее. Действительно, целые группы людей поработали и работают над тем, чтобы создать как можно больше шумихи и погремушек: роскошные офисы с играми и уникальными дизайнами, шумные конференции-фестивали, митапы с горой подарков, корпоративные выезды, велком-пакеты, странно-крутые евангелисты и проч. Всё это элементы шоу, которое должно привлечь будущего специалиста. Хорошо, если за ними что-то есть, хуже, если нет. HR и PR сформировали атрибуты того культа, о котором шла речь в начале. Что здесь нет так?
- Растёт стоимость ивентов — билетов на конференции, встреч с крупными специалистами и т.д. Весь антураж (помимо организации и технического оснащения) стоит организаторам огромных денег, а нужно ещё и в плюсе остаться. Такие билеты доступны компаниям, но могут оказаться слишком большой тратой для того, кому контент участников реально полезен.
- Появляется слой «айтишных тусовщиков» — той группы посетителей, которые приходят ради знакомств, атмосферы и «ништячков». Они разбавляют специализированную аудиторию и создают впечатление востребованности развлечений.
- Участники несут на дорогую конференцию дорогой контент — рассказывают о том, как они круты и решили какую-то нереальную задачу. При этом залу остаётся кивать и восхищаться, но реальную пользу вынести не получается, хотя от конференции ждёшь каких-то практических штук, которые можно притащить в продакшн.
Скажу сразу — я сама выходила и выхожу с конференций с открытым ртом и рассказываю друзьям, какой клёвый был оркестр, забавные диджей-сеты и крутая сувенирка. Но через пару дней эта эмоция оседает и остаётся послевкусие переплаты за мишуру. Ну это как будто вы купили мёд в банке-бочонке и переплатили за упаковку: мёд полезный, а банка валяется без дела, удовольствие было только в момент покупки.
Офисы — это отдельный и очень спорный разговор. Кто-то говорит, что всё круто, кто-то, что его всё это отвлекает. Ясно, что основная цель — сделать офис настолько комфортным, чтобы в нём хотелось жить, оставаться, перерабатывать и радоваться возможности побыть подольше. Но нередко за антуражем теряется главное: например, опенспейс в самом роскошном офисе остаётся трудным для работы опенспейсом, разнесение одного департамента через два этажа — неудобным для совместной работы и т.д. Эргономика должна быть у рабочих мест, а не у офисных стен.
Мы говорим «программист», подразумеваем «интроверт»
Миф, который портит многих молодых специалистов и откидывает их в карьере назад. Они наслаждаются своей интровертностью и решают рабочие задачи, между тем как для карьерного роста нужны в том числе коммуникативные навыки, умение работать в команде, знание принципов управления персоналом и т.д. Поэтому нередко в тимлиды и менеджеры проектов выбиваются не супер профи, а супер коммуникаторы. Не факт, что это плохо, плоха сама трансляция мифа, которая вгоняет начинающего программиста в какие-то имиджевые рамки.
Совет один: будьте собой, проявляйте сдержанность, умейте отстаивать свою точку зрения и уважать чужую.
Программисты скоро вымрут?
Можно услышать мнения, что вот-вот разработчиков заменит искусственный интеллект, кодить будут роботы и программирование исчезнет как вид человеческой деятельности. В ближайшее время это вряд ли произойдёт: во-первых, потому что искусственный интеллект кто-то должен разрабатывать, во-вторых, программирование — это не только код, это сложная интеллектуальная работа над обработкой требований, алгоритмами, логикой. Пока это подвластно только человеческому
Неизвестно, как трансформируется работа программиста, но пока очевидно, что нынешние первокурсники без работы не останутся — их ждут задачи AR/VR, IoT и старого доброго энтерпрайза с легаси :-) Время Skynet ещё не пришло.
Кого сегодня поздравлять?
Программисты — это люди, которые перекладывают наши требования, пожелания, а иногда и косноязычные высказывания в стройный работающий код. Они с азартом кодят, покрывают код тестами, коммитят и деплоят, осваивают DevOps, меняют стек и постоянно учатся, чтобы стать лучше, современнее и эффективнее. Они могут работать 12 часов, а потом пойти контрибьютить в крупный open source проект, который востребован по всему миру. Они создают корпоративные программы, приложения, сервисы, игры,
Поэтому поздравляем всех программистов, пусть голова всегда будет светлой, мысли быстрыми, ПК надёжным, IDE удобной, а заказчики кода — адекватными и трезво мыслящими.
Bugs, hex & source control!
Пользуясь случаем, поздравляю и свою любимую команду — команду разработки десктопной RegionSoft CRM и простого облачного хелпдеска ZEDLine Support . Идите вперёд и не оглядывайтесь — иногда я сама в шоке от вашей продуктивности и скорости работы. Так держать :-)
Автор: Free_Mic_RS