
Полная версия:
Это всё, программисты?
Купил курсы – как раз акция была, перед НГ. Мне там прям всё нравилось. И график удобный – после работы, вечером, вебинары, общение с преподавателями, решение задач. Я начал программировать!
И чем дальше, тем больше. Я программировал всё, что дают на курсах. Забрал у ребёнка учебник по информатике, порешал задачи оттуда. Нашёл в интернете всякие задачки для обучения – всё прорешал!
Я никогда столько не программировал! Это так классно. Я чувствовал своё, не знаю… Всемогущество! Реально было время, пусть и не очень много, когда я верил в себя, в то, что изменю свою жизнь!
Было, конечно, сожаление – но радостное, до дрожи. И лишь о том, что не допёр до программирования раньше. Я могу. Умею. Получается. Получается!
Курсы я закончил, если можно так выразиться, с золотым дипломом. За время обучения напрограммировал в разы больше, чем требовалось.
Пошёл искать работу.
День
Искать долго не пришлось. В нашем городе есть лишь две компании, которые берут на работу таких зелёных, как я. Отправил резюме в первую по алфавиту, пригласили на собеседование. С гордостью показал сертификат о прохождении курса – заметил, что немного поморщились.
Дали пару задач на элементарные алгоритмы – решил за несколько минут. Морщиться перестали. Позвали на испытательный срок. Спросил, как что будет проходить. Дело ведь серьёзное: семья, дети, ипотека. Старая, нелюбимая, но стабильная во всех смыслах работа.
Сказали так, типа без обиняков: курсы это хорошо, это навроде изучения алфавита в иностранных языках. А мы тебя будем учить писать и говорить, уж не обессудь. Сначала буду решать учебные задачи, созданные по мотивам реальных. Потом перейду к «живым» задачам, клиентам, проектам.
Меня вполне устроило. Я согласился. На работе, конечно, не обрадовались, но… И не расстроились. Чем порадовали меня. Написал заявление, отработал две недели, торжественно явился в офис программистов.
И пошло-поехало! Не работа, а просто мечта! Мне выдали пачку задач, с полными, чёткими, понятными инструкциями по всему, что с ними связано – и как среду разработки развернуть, и где что скачать, и в каких модулях, функциях писать код. Задания чёткие, понятные и, сразу видно, не из пальца высосанные.
Я потом поспрашивал – говорят, эти задачи специально собирают в реальной работе. Крутые прогеры, которые пашут в продакшн, когда замечают хорошую, чёткую, изолированную по контексту и предметной области задачу – складывают её, после решения, в какой-то там каталог. И в итоге она попадает к таким, как я.
А я эти задачи, после лёгких трудностей адаптации, щёлкал, как орешки. Конечно, там не про сортировку массивов, ограниченную рекурсию или универсальную упаковку в JSON, но не сильно сложнее.
А главное – ничто не давит. Ни сроки, ни клиенты. Я делаю, опытные программисты смотрят, дают советы, показывают неоптимальности, я исправляю. Блестяще.
Вечер
Во втором месяце испытательного срока мне начали давать реальные задачи по проектам. Конечно, не самые критичные, срочные или важные. Но – реальные!
Главное их отличие от учебных – я был первопроходцем! Учебные-то прорешали все, кому не лень – и опытные программисты, и такие же зелёные, как я. В реальных, пусть и несложных задачах, первой звездой, альфой, был я.
Процесс решения был несложный. Какой-нибудь опытный, толковый перец – аналитик, или программист – описывали мне задачу, достаточно подробно, начиная с бизнес-задачи, заканчивая названиями модулей, старых и новых зависимостей, таблиц с исходными данными и т.д. От меня требовалось лишь написать код.
Конечно, было сложно, особенно поначалу. Скорее даже не по техническим вопросам, а потому, что теперь от меня что-то зависит, по-настоящему. И мои коллеги, и руководитель, и клиенты. Коих, по рассказам, бывало очень много на одну мою задачу.
Перетерпев первые трудности, я влился. Я снова программировал. Много, интересно. Особенно мне нравилось, как бы это назвать… Равноправие, наверное. Меня стали звать на совещания, спрашивать сроки, проблемы по задачам, знакомить с ходом проекта. Ну, не прям меня лично, но я тоже слушал, наравне со всеми остальными программистами.
Мне всё было понятно, хоть и с некоторыми трудностями и оговорками. Я не всегда знал или понимал, что было до моего кода, и что будет после него. Моё задание было изолированным, объяснённым, понятным. Я просто программировал.
После небольшого торможения в начале второго месяца, я очень много программировал. Я писал код каждый день. Много, трудно, но интересно.
А потом наступила ночь.
Ночь
На третий месяц всё изменилось. В первый же день руководитель торжественно объявил: «Теперь началась настоящая работа». И загадочно улыбнулся.
Мне дали задачу. Она оказалась совсем непохожей на предыдущие. Не было имён модулей, бизнес-задачи, входа и выхода. Задача примерно звучала, как «тут где-то проблема, надо найти и устранить».
В первый день я, полный энтузиазма, кинулся… Ну, скажем так, просто кинулся. Уже и не помню, куда. Смотреть, листать, мотать, открывать, переходить, искать. С интересом и амбициями первооткрывателя.
На второй день мне стало немного страшно. Особенно под вечер. Я перестал понимать, или просто забыл, что я вообще ищу. Только собрался пойти и ещё раз спросить, как… Мне дали ещё одну задачу. «Распараллелить вот чё там под этой кнопкой на 2-3 потока, если получится». Если получится!
Вообще, я даже немного обрадовался возможности переключиться с совсем непонятной на ещё не понятно, непонятную ли задачу. Ну, кнопку-то я нашёл. Думал, под ней изолированный код. Ан нет, там вызов. За которым код, который с зависимостями, почему-то жутко непохожими друг на друга.
Третий день прошёл в попытках составить для себя какую-то карту этих зависимостей, переходов, передачи аргументов. Три дня я не писал код, и уже сильно переживал по этому поводу. Решил, что пора попросить помощи руководителя.
Позвал его, всё подготовил, открыл, дождался, он подошёл… И я ляпнул «смотрю и ничего не понимаю». Что именно не понимаешь, спросил он. Ну, говорю, куда код написать, который распараллелит. Он – найди корневой вызов, подходящий для изоляции, и сделай обёртку. И ушёл.
Я погуглил, конечно, но понятнее не стало. Прошло ещё два дня. Ни строчки код так и не написал. Я собрался с духом и снова подозвал руководителя.
Сказал, что не могу понять, куда писать код. Он ответил, что это нормально, не надо переживать. Но и бросать не надо. Надо искать. И опять ушёл. Снова день без строчки кода.
Дальше я не буду соблюдать хронологию, потому что плохо её помню. Всё как в одурманенном сне. Череда ужасающих открытий о, скажем так, «реальности работы программиста».
Оказалось, что надо понимать чужой код. Это не опция, а обязаловка. Этот код писал не я. И не мой руководитель. Зачастую – вообще кто-то не из нашей команды. Иногда даже не из нашей страны. И понимать чужой код надо больше и чаще, чем писать свой. Потому что «вообще-то, весь нужный код уже написан».
Ещё у чужого кода есть диалекты, стандарты, требования к использованию. Знать их все не обязательно, потому что невозможно, но «надо их уважать». Ибо раз я читаю и хочу использовать их код, а не они мой, то уважаемые люди – они.
Если я каким-то чудом найду, где написать свой код, то надо выдерживать стиль… Стоп, нет. Надо писать код в объединённом стиле – «наш плюс ихний». Как на футболках Студии Артемия Лебедева, где мат написал английскими буквами. Да, кстати, я так и не нашёл, куда написать свой код.
Выслушал по этому поводу несколько речей. Сначала восторженных, типа «за «написать код» надо бороться» или «написать код» надо ещё заслужить». Потом унылых, вроде «я не понимаю, чего ты не понимаешь» или «ладно, давай я заберу задачу и сделаю сам».
Однажды я набрался смелости и выдал предложение. Пусть, как и в прошлом месяце, более опытный программист в моей задаче укажет, где я должен написать код. Ведь этот подход работал! Ну да, я пока не понимаю, не могу собрать в голове весь контекст и стек вызовов. И код чужой плохо понимаю.
Блин, а я откуда должен уметь его понимать-то?! Я нигде не учился понимать код! На курсах меня натаскивали только программировать, разрабатывать, кодировать! В первый и второй месяц работы – аналогично! Я программист, в конце-то концов, пусть и начинающий! Я хочу писать код!
Знаете, что мне ответили? Опытный программист не может мне помочь. Он не найдёт, куда мне писать код. Ему некогда. Он ищет, где написать свой код. И добавили, что это нормально. Так и должно быть.
Этот дикий, нарастающий с каждым днём стресс, продлился в течение всего третьего месяца. Я не написал ни одной строки кода. Ни одной! Я так и не понял, куда мне писать код. Пока я копался, задачи у меня забирали. Выдадут, подождут несколько дней, заберут. Говорят, потому что проект ждать не будет.
У меня очень быстро развился полный букет комплексов, от неполноценности до самозванца. Я вообще перестал понимать, кто я, чем занимаюсь, куда иду, зачем всё это. И главное – я уже не знал, программист ли я. И что такое программирование.
Я погряз в непонятно чём. Чтении чужого кода, понимании контекста, попытках воспроизвести ошибку, анализе производительности, понимании диалектов, режимах отладки. Так не должно быть. Не должно!
Программист пишет код. Не читает, не анализирует, не тестирует, не оптимизирует. Пишет код! Для остального есть другие профессии! А я, я… Не смейтесь, но за два месяца я привык писать код. Я это дело даже полюбил.
Самое непонятное и возмутительное: всем окружающим нормально! Я понаблюдал – реально, полдня читают! Чтобы потом написать три строки! И это они называют программированием! Ну или ладно, не они… И это называется программированием?! Разработкой?
Так и должно быть? У всех? Везде? И у вас? Вот вы честно мне скажите – я один такой? Все прям читают код и понимают его? И понимают, зачем понимают?
Не могу больше. Это не моё. Я не тяну. Всю ночь не спал, ворочался, вставал, курил, читал, пытался смотреть телевизор, снова ложился… Ненавижу.
Всех, кто пишет эти радужные истории «войти в айти». Тех, кому я заплатил за курсы по программированию. «Друзей» и «советчиков», которые сказали: смело бросай свою старую, нелюбимую работу, и иди в программисты. Если бы вы только знали, о чём говорите…
Сегодня я уволюсь. Не могу больше выносить этот стыд, позор, невыносимое бессилие. Я не этому учился. Я хочу программировать, писать код. Но за последний месяц я не накорябал ни одной строчки.
Я один в темноте.
Заградотряд
Вот вы как программистов удерживаете в компании? Хорошо платите? Создаёте комфортные условия? Интересные задачи и проекты? Перспективы? Обучение?
И как, получается? Сидят, не уходят? А сколько денег и усилий затрачиваете? Стоит оно того? Наверняка стоит. Но можно и по-другому. Дёшево и бесчеловечно.
Например, используя заградотряд.
Модель удержания программистов в одной известной на локальном рынке компании рассказал друг, который сумел оттуда сбежать. Как он это сделал – расскажу в конце.
Компания
Название, конечно, не скажу, как и локацию. Не гос, не иностранная, не филиал. Но весьма известная в городе-миллионнике. Считается крутой – и среди клиентов, и среди программистов. Выполняет достаточно крутые, по меркам города, проекты.
По легенде, там особый подход, собственная методика разработки, выполнения проектов, работы с заказчиком. Эту методику нельзя купить, послушать на семинаре или скачать в даркнете. Её не выдают бывшие сотрудники компании – нельзя, бумаги подписаны.
Компания работает много лет, бренд сильный и устойчивый, доходы и численность сотрудников неуклонно растут.
Но внутри не всё так красиво. Хотя, постараюсь обойтись без оценок – судите сами.
Набор людей
Там именно набор, как целенаправленное мероприятие, ограниченное по сроку. Они не ищут людей круглый год, только в определённое время. Набор, фильтрация, отбор – к началу обучения. Все, независимо от квалификации и опыта, проходят это обучение. Напомню, там – некая уникальная методика.
Недостатка в кандидатах не испытывали никогда. Зарплата – ниже средней по рынку. Людей привлекает бренд и легенда, на которой он держится.
Итак, сначала идёт жатва – вывешивают вакансии и собирают отклики. Первично смотрит HR, потом – кто-то из понимающих в деле. Дальше очные собеседования. Начинается первый этап обработки.
Кандидатам говорят о том, как им повезло. Ну, что с ними вообще разговаривают. Смотрят опыт, достижения и всегда – всегда! – качают головой, цокают языком и приговаривают «ну не знаю… вам у нас, наверное, будет трудно». И добавляют главное: «наверное, вы этих трудностей не выдержите и уйдёте, в самый неподходящий для нас момент».
Естественно, все кандидаты бьют себя в грудь и утверждают, что ни фига такого не будет. О видеозаписи собеседования их предупреждали.
Через все тернии набирается команда на обучение. Независимо от опыта – всех туда. Изучать легендарную методику.
Обучение
Обучение очное, в районе месяца, с теорией, практикой и домашними заданиями. Чему именно там учат – не знаю, друг тоже под подпиской.
Обучение условно бесплатное, о чём всех официально информируют. Если трудоустраиваешься и работаешь – платить не надо. Если увольняешься – изволь выложить кругленькую сумму, примерно 2 месячных оклада.
Никто, естественно, и ухом не ведёт – не для того с таким трудом сюда пробирались.
Корни
После обучения всех торжественно трудоустраивают и начинается, собственно, работа. Но границы организованы весьма примечательно – их нет.
Обычно в разработке есть отделы или команды, как-то привязанные к проектам, фреймворкам, технологиям, клиентам. Это нормально, привычно и объяснимо с точки зрения элементарной логики – должны быть границы, периметр ответственности и своя «стая», или «племя», смотря какую книжку читать.
Здесь не так. Каждого разработчика закапывают в максимально широкий спектр проектов. Тут поковырялся, там поконопатил, здесь забубенил. Контекст и канва каждого проекта – только внутри головы РП. Как эта голова не взрывается – понятия не имею, видимо это часть легендарной методики.
В итоге каждый программист очень быстро обрастает «корнями», хорошими и плохими. В одном проекте у него красиво решённые задачи, в другом технический долг, в третьем – его задачи в ожидании тестирования, т.к. зависимы от решений других программистов.
Бренд и чувство вины
В компании есть штатный психолог, который, на самом деле, агитпроп. Обычно психолог сидит, скучает и ждёт посетителей, чтобы помочь им решить какие-нибудь проблемы, пополам личные и профессиональные. Этот же персонаж на месте не сидит вообще.
Работа этого психолога – ходить и напоминать. Вот он и ходит, и напоминает. Принципиально – о двух столпах, на которых зиждется политика в области персонала: бренд и чувство вины.
Про бренд – примерно как директор лагеря из фильма «Добро пожаловать, или посторонним вход воспрещён». Смотрите, какой у нас офис. Вспомните, как здорово вас учили. Посмотрите, какую красивую ёлку на Новый Год вам нарядили (покупают очень дорогие ёлочные игрушки из Европы). Послушайте, что о нас говорят конкуренты. Какие мы проекты крутые делаем. И т.д., во всех вариациях.
Ну и тут же, естественным образом, вытекает разговор о сотрудниках. Бренд вон какой, а вы тут – ну, извините, не тянете пока. Этот вечно говнокодит, тот сроки факапит, те двое ёлочную игрушку дорогущую разбили (колхозники позорные), и вообще весь успех компании – не благодаря, а вопреки таким бездарям.
Но в конце всегда – пару капель позитива. Вы, главное, верьте в себя. Мы – такая компания, такая компания, что не дадим вам сгинуть, мы вас вытянем, поднимем, возвысим, научим. Всё впереди.
И так – постоянно, регулярно, настойчиво. Иногда помогают другие агитаторы – например, директор. Частенько проводятся агитсеминары, где под разным соусом подают всё те же два любимых блюда: величие бренда и чувство вины недостойных его сотрудников.
Нагрузка
Важный элемент системы – постоянно растущая нагрузка на сотрудников. После трудоустройства никого не грузят по полной, но всегда и всем постепенно объём задач увеличивают. Не вслед за ростом опыта – подавляющее большинство сотрудников далеко не джуны.
И не в адаптации дело – работа, в общем, людям знакомая. Одна из целей – проверка границы, нагрузочное тестирование, если хотите, или проверка на отказ. Ну и потом пригодится (ниже расскажу).
Попытка увольнения
Осознавая величие бренда, мучаясь чувством вины, изнывая от непомерной нагрузки, почти каждый сотрудник через несколько месяцев принимает решение уволиться. В его представлениях процесс этот выглядит стандартно – придёт, скажет, его немного поуговаривают и отпустят. Всё-таки, программисты – птицы вольные, собраться в путь – только подпоясаться.
Заградотряд
Заградотряд – это три человека, ключевая обязанность которых – не давать людям уволиться. Всё, что происходило с сотрудником во время работы, было нужно для подготовки аргументационной базы заградотряда. Грубо говоря, чтобы собрать и подшить дело.
Заградотряд очень быстр. Как только человек изъявил желание уволиться – максимум через час отряд уже сидит с ним в переговорке. В составе отряда – директор, психолог и главный РП. Открывают папку и начинают.
Аргументы выдают последовательно, внимательно глядя на реакцию, чтобы вовремя остановиться, когда жертва «поплывёт». Дальше папка закрывается, и «дорабатывают» чисто на словах. Остальные аргументы пригодятся в следующий раз.
Перечислю основные аргументы. Их выдают в разном порядке, руководит последовательностью психолог – знает, на кого что лучше подействует.
Корни – тут слово берёт главный РП. Перечисляет все долги, косяки и, главное, зависимости по проектам – цепочки задач и продуктов, которые теперь придётся экстренно доделывать, вникать, не спать по ночам, рвать задницу – кому-то из коллег. Возможно, кто-то из них не справится и тоже уволится, а то и сорвётся, заболеет. Ну как так можно поступать с коллегами? Ведь, напомню, каждый программист участвует в максимальном количестве проектов.
Директор говорит про бренд, который он столько лет строил. А ты, засранец, его рушишь. Все сотрудники – и часть бренда, и его бенефициары. Он нужен и полезен всем. Он – наш общий хлеб. А ты, блин…
Дальше логично вытекает аргумент «кто тебя после такого на работу возьмёт?». Ведь бренд, напомню, известный и уважаемый. Увидев его название в резюме, обязательно ведь позвонят. Что им сказать? Вот прям твои сопли процитировать?
Психолог достаёт и показывает видео с собеса, где, напомню, человеку говорили: тебе будет трудно, ты не справишься. А человек бравировал – херня, я смогу, я сильный и упорный, я хочу у вас работать! Видео смотрят молча.
Делают «вызов»: так где ты настоящий? Там, где хотел большего и был готов учиться, развиваться, вкалывать? Или сейчас, в слезах и соплях? Остановись, успокойся, подумай.
Если ничего не помогло, достают «денежный» аргумент – надо ведь вернуть стоимость обучения. Напомню, это 2 оклада при зарплате ниже рынка. Потом отдашь? Извини, беспроцентные ссуды только для сотрудников. Бери по ставке потребительского кредита.
Заканчивается, как правило, стандартным пряником – его достают в разный момент, в зависимости от хода разговора. Пряник – снижение нагрузки. Если помните, её постоянно увеличивали.
Если человек в процессе успел «поплыть», то снижение нагрузки преподносится как подарок, вдогонку, потому что мы добрые. Естественно, такой подарок тут же подшивается в дело для следующего вызова заградотряда.
Если сотрудника не проняли аргументы, разговор становится нейтральным «обсуждением недовольства». Спрашивают, что задолбало, с чем трудности. Почти всегда оказывается нагрузка. Предлагают снизить. Это не то, чтобы не проблема, но раз надо – значит надо. Придумаем что-нибудь, подвинемся.
У человека катарсис. Возможно, он хотел не только нагрузку уменьшить, но так радуется, что его перестали давить и улучшили условия, что сразу соглашается остаться. В большинстве случаев – снова начинает лепетать про готовность к трудностям, огромное желание работать в такой компании. И вообще, он не очень-то и хотел увольняться. Ну, знаете, просто чот подустал, наверное. И огромное спасибо за понимание! В дело добавляется ещё один листочек.
Итерации
Как вы понимаете, одной встречей с заградотрядом мало кто ограничивается. Но интервал между такими беседами постепенно увеличивается, по понятным причинам – человеку кажется глупым приходить и ныть по тому же самому поводу. Ведь в прошлый раз, когда расслабился, успел наговорить. Не дай Бог опять видеозапись была.
А нагрузку снова увеличивают. И объём агитпропа не снижается. Теперь, рассказывая про величие бренда и никчёмность сотрудников, психолог исподтишка подмигивает тем, кто уже встречался с заградотрядом.
Когда человек снова срывается, беседа повторяется. Если в прошлый раз не всё из папки успели достать – продолжают с того места, где остановились. Обязательно достают материалы с прошлой встречи – ну, где человеку снизили нагрузку и он радовался.
Если сетует, что нагрузку-то опять повысили – пожимают плечами, мол «в прошлый раз показалось, что мы поняли друг друга, и это был просто эмоциональный выброс». Нет, говорит человек, мне действительно надо снизить нагрузку. Ну ладно, держи, раз это твой уровень.
Естественно, через пару итераций манипуляции перестают действовать, и заградотряд начинает нормально с человеком разговаривать. Обсуждают и зарплату, и перебор проектов, и возможность специализации, и удалёнку (подальше от агитпропа).
Но такие разговоры случаются редко. Во-первых, мало кто доходит до такой итерации (напомню – интервалы между беседами растут). Во-вторых, сотрудник должен быть ну прям сильно крут и нужен. В-третьих, такой человек будет разрушать систему, на которой всё построено.
P.S.
Да, мой друг-то как оттуда сбежал? Однажды не смог заставить себя пойти на работу, остался дома. Чувство вины заставило отправить СМС «я увольняюсь». На звонки и сообщения не отвечал.
Когда успокоился, раскурил про дистанционное увольнение. Написал заявление и отправил по почте. Пришёл лишь забрать трудовую и кружку. Заградотряд с ним встречаться уже не стал – незачем.
Иррационально свободный
Заявление Николая произвело эффект разорвавшейся бомбы. Целую неделю весь офис только о нём и говорит. В курилке, на кухне, в переговорках и высоких кабинетах. Восхищаются, поливают грязью, пытаются анализировать, думают, как бы его уволить. Но все, без исключения, пытаются узнать побольше об этом парне. Понять, как он стал таким.
Чего же такого он там ляпнул?
Самое обычное совещание, с широким кругом приглашённых – программистов, разработчиков, РП, менеджеров, аналитиков, начальников и проч. Обсуждали офисные фетиши – цели, процессы, обязанности, ответственность, провалы. Кто чего должен и обязан. Тут заметили Колю – он сидел в углу и читал книгу. Заметить удалось потому, что Николай – редкий гость на совещаниях. И кто-то из Больших зачем-то спросил: «Коля, а что входит в твои обязанности?».
Коля поднял голову, улыбнулся и ответил: «Чисто по приколу, назовите хоть одну мою обязанность».
Секунд десять все улыбались. Потом задумались. Несколько минут перешёптывались. Никто так ничего и не назвал.
Немного о Коле
Коля – очень хороший программист. Не настолько, чтобы быть Гуру или капризной Звездой и получать какое-то особое отношение. Но отношение к нему, действительно, особое. Правда, до вышеозначенного совещания никто этого не понимал и не осознавал.
Грубо говоря, Коля делает, что хочет. А чего не хочет – не делает. Чего Коля хочет или не хочет – никто не знает. Единственный способ узнать – спросить у Коли. Предугадать невозможно.

