people
March 2

Про успешную карьеру 

Летят годы, сменяются поколения но главные вопросы остаются неизменными: «кем быть?», «как стать?» и «как достичь?» Ниже мои мысли на тему построения успешной карьеры программиста, что надо знать и чем заниматься.

Личный опыт

Честно говоря сложно сказать была ли моя собственная карьера успешной. С одной стороны меня до сих пор нет в списке «Форбс» и я не катаюсь на ламборгини каждый день, с другой — никогда не испытывал, не испытываю и не буду испытывать никаких проблем с работой до гробовой доски, несмотря на все эти ваши нейросети, чат-боты и прочих боевых роботов.

Еще я всегда смогу найти работу по специальности в любой точке мира и вполне неплохо жить, без вебкама, онлифанса и закладок — да, не поверите но так тоже бывает.

Вне зависимости от любых войн, революций, кризисов, пандемий и прочих зомби-апокалипсисов.

Даже если случится та самая мировая термоядерная война — просто начну принимать оплату патронами или крышечками от Кока-Колы.

Серьезно.

Не убиваясь на вредной и опасной работе штурмуя дома с калашом, не унижаясь выпрашивая какие-то подачки у начальства, не рискуя быть уволенным по любому поводу и не трясясь за контракты рабочее место.

При этом я даже близко не «rockstar» от разработки, за моей головой никогда не шла какая-то дикая охота, да и Цукерберг так и не позвонил.

Но тем не менее кое-чего в разработке ПО я все же понимаю и умею, поэтому до сих пор не поймали смотрю в будущее с оптимизмом.

Получается эдакая усредненная спокойная жизнь, с минимумом рисков и без особых потрясений.

В любой точке мира да.

Хотите также? Тогда читайте дальше.

Мы не сеем, мы не пашем

Начнем с самого важного — с осознания смысла профессии «программист» и ее места в этом мире.

И самый главный факт для осознания:

информационные технологии являются приложением к реальным процессам и задачам, а не их аналогией или тем более заменой.

Допустим, есть конечная задача «вырыть яму».

Есть сам процесс «рытья ямы» с необходимыми для этого инструментами и участниками процесса — с разными ролями.

Что могут дать информационные технологии для этой задачи?

Ну например:

учет необходимых рабочих инструментов, контроль выполнения процесса рытья и оценка эффективности по итогам завершения работ.

Но только сам процесс рытья при этом никуда не девается — он так и остается физически тяжелым и изматывающим трудом, которым занимаются простые рабочие, без специального образования.

Сможет рабочий выкопать яму без участия ИТ и применения высоких технологий?

Да, сможет.

Смогут высокие технологии вырыть яму без участия рабочего?

Нет, не смогут (но это пока).

Вот так это и работает.

Даже если вы создаете собственный ИТ-продукт, с точки зрения реального физического мира он все равно является «эфемерной сущностью» — его нельзя пощупать и потрогать, это не реальный объект с физическими свойствами.

Более того, по наблюдениям:

обычные люди плохо воспринимают высокие технологии в отрыве от физических электронных устройств.

С точки зрения простого пользователя, сложные вещи вроде социальных сетей с их механизмами рекомендаций, с оценкой поведенческих факторов и нейросетями являются лишь картинками в телефоне, а например CRM-система на работе — просто набором форм, которые открываются в определенной последовательности.

Я  сталкивался с тем что пользователям оказывалась непонятной даже сама концепция приложения как чего-то отделяемого и устанавливаемого отдельно.

Отсюда следует важный вывод:

Чем ближе будете к конечному пользователю, чем лучше будете понимать его потребности — тем успешнее будете и вы и ваш софт.

Именно отсюда лезут все эти «свайпы вправо», «резиновые интерфейсы» и попытки построить все приложение целиком вокруг поиска — все ради желания быть ближе к теплому человеческому телу.

Близость к пользователю

Количество пользователей в сети из года в год только растет и все чаще происходят ситуации, когда абсолютно посторонние для ИТ люди сталкиваются с необходимостью взаимодействовать с современными технологиями, по работе или в поисках развлечений.

В РФ это не так заметно, но например в Китае в 2000х это были натуральные волны необученных новых пользователей, которые захлестывали их популярные ресурсы.

Причем возрастная категория не так уж важна — что «зумеры» что «бумеры» не имевшие прежде отношения к ИТ и компьютерам ведут себя примерно одинаково.

Неоднократно наблюдая таких «новоприбывших», могу сказать что:

компьютеры и ИТ само по себе таким пользователям абсолютно не интересны, потому что у них уже есть свои жизненные интересы и работа, далекая от высоких технологий.

Взаимодействие с компьютерами для них является лишь необходимостью, но никак не жизненным интересом или какой-то ценностью, а значит на первое место выходят не производительность или богатый функционал, а простота и та самая «интуитивность» использования:

новое поколение больше не лезает по настройкам и не открывает меню, любой визуально сложный интерфейс их пугает.

Теперь понятно откуда например «растут уши» огромной популярности чат-ботов с их вводом-выводом в свободной форме? Или почему столько лет идет битва за голосовой интерфейс управления?

Графические элементы среды Gnome - предмет огромного количества срачей в интернетах.

Другой пример

Возьмем проект Gnome — одно из самых популярных графических окружений для Linux/Unix систем.

Стремление разработчиков Gnome к максимальному упрощению и отказу от излишеств во всем постоянно и заслуженно подвергается критике от «матерых» линуксоидов, собаку съевших на ИТ-технологиях.

Но вот только подобное упрощение — единственный возможный способ оставаться актуальным для массовой аудитории пользователей в современных реалиях.

Когда-то можно было напечатать 1000-страничное руководство и поставлять его вместе с вашей программой — его бы действительно читали и использовали. Затем была стадия «встроенной справки», которая открывалась из самой программы — это тоже когда-то работало.

Ныне же никакая сопроводительная информация больше не работает совсем и вообще, работают одни только рефлексы — подразумевается что программа должна предугадывать желания пользователя и «делать все сама».

Спросите откуда у новых пользователей берутся уже заученные рефлексы?

Все просто:

видеоигры, смартфон и телевизор — вот отсюда берут паттерны использования современные пользователи.

Теперь вспоминаем термин геймификация, это когда в серьезный корпоративный софт внезапно добавляют смайлики, зайчиков и ману — и приходит понимание, что вся подобная ересь (с точки зрения серьезного айтишника) ваяется только ради попадания в современные тренды использования ПО.

Разумеется все это кардинально отличается от старых подходов к использованию компьютеров и программ — с отдельной длительной стадией обучения, с изучением документации и требованиями по общей образованности.

То что когда-то позиционировалось как сложный инструмент для неглупых людей с высшим образованием, ныне из-за массовости стало уже просто хер пойми чем:

ныне от вашего софта ожидают простоты пульта от телевизора и удержания уровня интереса как в видеоигре.

Даже если вы делаете очередной унылый корпоративный калькулятор для особо извращенного подсчета прибыли и убытков по лунному календарю.

Возвращаясь к теме статьи:

для успешной карьеры программиста вам жизненно необходимо знать текущие реалии и потребности пользователей — кто они, откуда к вам пришли, как и зачем используют ваш софт.

Что, теперь телеметрия и «анальные зонды» в современных ОС уже не кажутся происками спецслужб?

Еще вам стоит осознать (чем раньше тем лучше) что ваша профессия — не для всех, поэтому понимать ее специфику будут только ваши коллеги по цеху, но не ваши пользователи.

Да, я в первую очередь про сообщения об ошибках — не ждите багрепортов, их больше не будет, а любое сообщение сложнее «Ой что-то случилось» современных пользователей оттолкнет.

Увы, но чем дальше тем сильнее будет этот разрыв в понимании.

Карьерная лестница

Как-то так сейчас выглядят любые вакансии в ИТ-индустрии:

Внимание не на зарплатные вилки, а на четкое разделение по уровням:

middle, senior, junior, «старший/младший/смотрящий» и так далее.

Казалось бы работодатели понимают чего хотят, коль так серьезно и подробно описывают трудовые обязанности, требования и круг задач.

Но есть нюанс:

Несмотря на то что сие разделение подразумевает разный уровень оплаты труда, смысл самой работы и пожелания работодателя в ИТ практически одинаковы для всех должностей.

Этот внезапный факт — причина многих трудовых конфликтов и основное препятствие к построению хорошей карьеры.

Очень многие не понимают, но все кто дает работу в ИТ хотят одного:

чтобы нанимаемый сотрудник решал все поступающие к нему проблемы.

Пусть медленно и с ошибками, но без отказов из серии «это я не знаю», «это не моя сфера компетенций», «это я не умею» и так далее по списку.

Разделение труда в ИТ как было так и остается крайне расплывчатым и условным, характерным больше для крупных компаний и больших проектов.

С точки зрения высшего руководства компании, все айтишники — просто офисные клерки, белые воротнички, которые либо чего-то там чинят с помощью компьютеров либо помогают компании с их же помощью заработать денег.

Как именно вы решаете поступающие проблемы — с помощью чистого ассемблера, на C++ или на облачных таблицах в Экселе — всему руководству (за исключением технического) до глубины души фиолетово.

Уверяю вас, (это было проверено неоднократно) что вне ИТ-индустрии и не имея связанного с ИТ бекграунда, люди вообще не понимают отличий между разными языками программирования, разными ОС, разными подходами к разработке и так далее — все это для обычного человека один сплошной темный лес.

Поэтому каждый раз когда вы отказываетесь что-то делать, обосновывая это.. да чем-угодно — вы немедленно падаете в глазах руководства, особенно если оно не имеет опыта в ИТ.

Отсюда происходит следующий важный вывод:

для успешной карьеры в компании не так важна глубина знаний и конкретных технологий как умение всем этим вовремя воспользоваться.

Безусловно это не отменяет необходимость долго и серьезно учиться, но если хотите строить именно карьеру как что-то социально одобряемое — помните про этот вектор развития.

James Gosling - создатель Java, эталон корпоративного системного программиста.

Системное программирование

Есть еще один путь построения успешной карьеры в ИТ — разработка чего-то для других айтишников, то что раньше называлось «системным программированием».

Это может быть целый фреймворк или отдельная библиотека, система сборки или даже компилятор — вариантов много.

Проблема заключается в том как убедить ваших вчерашних коллег этим пользоваться, хотя-бы бесплатно и в качестве хобби.

Скажу сразу и откровенно:

путь этот — крайне рисковый.

Ваши шансы на успех — примерно как попасть на главную роль в кино или стать балериной, с соответствующими временными и материальными затратами на процесс обучения.

Скорее всего вам придется посвятить такой разработке всю жизнь.

Задача просто успешной разработки хоть чего-то, что будут использовать каждый день обычные пользователи — сложная.

Успешная разработка для других айтишников (не сильно важно каких именно) — умножайте смело на 100 масштаб геммороя и сопутствующих проблем.

Вам надо попасть четко в болевую точку:

выдать решение для чего-то настолько болезненного, что гордый айтишник сам и по своей воле скачает, изучит и начнет использовать ваше решение для своей работы.

Переступив гордость и предубеждение перед новым и неизвестным.

А затем ваше решение придется развивать и улучшать, годами.

Нужно будет постоянно поддерживать актуальность, оставаясь в тренде и следуя новым веяниям — которые разумеется будут меняться как флюгер в ураган.

Придется обязательно оставаться в этом вашем «инфополе» и поддерживать интерес, всячески пиариться и ездить по конференциям, писать профильные статьи и отвечать на форумах — все это займет просто огромное количество времени и сил.

А никаких гарантий успеха вашего проекта нет.

Зато есть серьезные риски, которые я кратко опишу.

Фокусируясь на такой разработке для своих (айтишников) вы очень быстро выпадете из мира обычной прикладной разработки — с живыми пользователями, далекими от ИТ.

Перестанете понимать их нужды, смотря свысока на все это «формошлепство» и «юзабилити» — вы же «илита», разрабатывающая компиляторы или высокопроизводительные вебсерверы, х#ле.

А значит про «найти работу в любой точке мира» придется забыть — фриланс и какие-то подработки фактически невозможны для системной разработки:

пиццерия или салон красоты абсолютно точно не будут вкладываться в разработку компилятора или библиотеки.

Единственным возможным работодателем для системной разработки были и остаются крупные корпорации, только там готовы платить за софт для других программистов.

Но в крупную компанию еще нужно попасть и суметь там выжить, сохраняя положительный «track record» все время работы — оно вам действительно надо?

Эпилог

Всю карьеру в ИТ мне очень сильно нехватало коллег и сотрудников с осознанным и адекватным восприятием реальности, без всех этих «мне все должны», «это не мое», «мне это не интересно», «это я не могу» — ну вы поняли.

К сожалению слишком многие (если не большинство) айтишников живут в волшебном мире единорогов и розовых пони, не понимая сути и смысла собственной работы, отчего с годами впадают либо в жесткую конфронтацию с бизнесом вообще (как идеей) либо уходят из профессии.

Типичный современный отечетственный айтишник по своим взглядам на жизнь это дикая помесь из мифов времен «советских инженеров» и картинок американской мечты 90х — где стеклянные офисы, кредиты и зарплата по расписанию.

Получается такой себе пролетарий по духу, с вечной фигой в кармане, но в офисном костюме и без тяжелого физического труда.

На работу он ходит только за деньгами, компанию считает говном, как и свою собственную работу в ней и разумеется ничего менять в своей жизни не планирует.

И как бы хрен бы с ними со всеми «офисными хомячками», мало ли на свете идиотов нанятых по объявлению, но к сожалению они размножаются распространяют свое видение мира, постепенно заражая своей дичью окружающих.

ИТ — давно уже не «поле чудес», где выращивают миллионы из посаженной в землю монетки, поэтому вы врядли решите все свои жизненные проблемы одной только работой в этой индустрии.

Но я очень надеюсь что статья поможет вам с адекватной оценкой перспектив и самой сути этой профессии.