Про успешную карьеру
Летят годы, сменяются поколения но главные вопросы остаются неизменными: «кем быть?», «как стать?» и «как достичь?» Ниже мои мысли на тему построения успешной карьеры программиста, что надо знать и чем заниматься.
Личный опыт
Честно говоря сложно сказать была ли моя собственная карьера успешной. С одной стороны меня до сих пор нет в списке «Форбс» и я не катаюсь на ламборгини каждый день, с другой — никогда не испытывал, не испытываю и не буду испытывать никаких проблем с работой до гробовой доски, несмотря на все эти ваши нейросети, чат-боты и прочих боевых роботов.
Еще я всегда смогу найти работу по специальности в любой точке мира и вполне неплохо жить, без вебкама, онлифанса и закладок — да, не поверите но так тоже бывает.
Вне зависимости от любых войн, революций, кризисов, пандемий и прочих зомби-апокалипсисов.
Даже если случится та самая мировая термоядерная война — просто начну принимать оплату патронами или крышечками от Кока-Колы.
Не убиваясь на вредной и опасной работе штурмуя дома с калашом, не унижаясь выпрашивая какие-то подачки у начальства, не рискуя быть уволенным по любому поводу и не трясясь за контракты рабочее место.
При этом я даже близко не «rockstar» от разработки, за моей головой никогда не шла какая-то дикая охота, да и Цукерберг так и не позвонил.
Но тем не менее кое-чего в разработке ПО я все же понимаю и умею, поэтому до сих пор не поймали смотрю в будущее с оптимизмом.
Получается эдакая усредненная спокойная жизнь, с минимумом рисков и без особых потрясений.
В любой точке мира да.
Хотите также? Тогда читайте дальше.
Мы не сеем, мы не пашем
Начнем с самого важного — с осознания смысла профессии «программист» и ее места в этом мире.
И самый главный факт для осознания:
информационные технологии являются приложением к реальным процессам и задачам, а не их аналогией или тем более заменой.
Допустим, есть конечная задача «вырыть яму».
Есть сам процесс «рытья ямы» с необходимыми для этого инструментами и участниками процесса — с разными ролями.
Что могут дать информационные технологии для этой задачи?
учет необходимых рабочих инструментов, контроль выполнения процесса рытья и оценка эффективности по итогам завершения работ.
Но только сам процесс рытья при этом никуда не девается — он так и остается физически тяжелым и изматывающим трудом, которым занимаются простые рабочие, без специального образования.
Сможет рабочий выкопать яму без участия ИТ и применения высоких технологий?
Да, сможет.
Смогут высокие технологии вырыть яму без участия рабочего?
Нет, не смогут (но это пока).
Даже если вы создаете собственный ИТ-продукт, с точки зрения реального физического мира он все равно является «эфемерной сущностью» — его нельзя пощупать и потрогать, это не реальный объект с физическими свойствами.
обычные люди плохо воспринимают высокие технологии в отрыве от физических электронных устройств.
С точки зрения простого пользователя, сложные вещи вроде социальных сетей с их механизмами рекомендаций, с оценкой поведенческих факторов и нейросетями являются лишь картинками в телефоне, а например CRM-система на работе — просто набором форм, которые открываются в определенной последовательности.
Я сталкивался с тем что пользователям оказывалась непонятной даже сама концепция приложения как чего-то отделяемого и устанавливаемого отдельно.
Чем ближе будете к конечному пользователю, чем лучше будете понимать его потребности — тем успешнее будете и вы и ваш софт.
Именно отсюда лезут все эти «свайпы вправо», «резиновые интерфейсы» и попытки построить все приложение целиком вокруг поиска — все ради желания быть ближе к теплому человеческому телу.
Близость к пользователю
Количество пользователей в сети из года в год только растет и все чаще происходят ситуации, когда абсолютно посторонние для ИТ люди сталкиваются с необходимостью взаимодействовать с современными технологиями, по работе или в поисках развлечений.
В РФ это не так заметно, но например в Китае в 2000х это были натуральные волны необученных новых пользователей, которые захлестывали их популярные ресурсы.
Причем возрастная категория не так уж важна — что «зумеры» что «бумеры» не имевшие прежде отношения к ИТ и компьютерам ведут себя примерно одинаково.
Неоднократно наблюдая таких «новоприбывших», могу сказать что:
компьютеры и ИТ само по себе таким пользователям абсолютно не интересны, потому что у них уже есть свои жизненные интересы и работа, далекая от высоких технологий.
Взаимодействие с компьютерами для них является лишь необходимостью, но никак не жизненным интересом или какой-то ценностью, а значит на первое место выходят не производительность или богатый функционал, а простота и та самая «интуитивность» использования:
новое поколение больше не лезает по настройкам и не открывает меню, любой визуально сложный интерфейс их пугает.
Теперь понятно откуда например «растут уши» огромной популярности чат-ботов с их вводом-выводом в свободной форме? Или почему столько лет идет битва за голосовой интерфейс управления?
Другой пример
Возьмем проект Gnome — одно из самых популярных графических окружений для Linux/Unix систем.
Стремление разработчиков Gnome к максимальному упрощению и отказу от излишеств во всем постоянно и заслуженно подвергается критике от «матерых» линуксоидов, собаку съевших на ИТ-технологиях.
Но вот только подобное упрощение — единственный возможный способ оставаться актуальным для массовой аудитории пользователей в современных реалиях.
Когда-то можно было напечатать 1000-страничное руководство и поставлять его вместе с вашей программой — его бы действительно читали и использовали. Затем была стадия «встроенной справки», которая открывалась из самой программы — это тоже когда-то работало.
Ныне же никакая сопроводительная информация больше не работает совсем и вообще, работают одни только рефлексы — подразумевается что программа должна предугадывать желания пользователя и «делать все сама».
Спросите откуда у новых пользователей берутся уже заученные рефлексы?
видеоигры, смартфон и телевизор — вот отсюда берут паттерны использования современные пользователи.
Теперь вспоминаем термин геймификация, это когда в серьезный корпоративный софт внезапно добавляют смайлики, зайчиков и ману — и приходит понимание, что вся подобная ересь (с точки зрения серьезного айтишника) ваяется только ради попадания в современные тренды использования ПО.
Разумеется все это кардинально отличается от старых подходов к использованию компьютеров и программ — с отдельной длительной стадией обучения, с изучением документации и требованиями по общей образованности.
То что когда-то позиционировалось как сложный инструмент для неглупых людей с высшим образованием, ныне из-за массовости стало уже просто хер пойми чем:
ныне от вашего софта ожидают простоты пульта от телевизора и удержания уровня интереса как в видеоигре.
Даже если вы делаете очередной унылый корпоративный калькулятор для особо извращенного подсчета прибыли и убытков по лунному календарю.
для успешной карьеры программиста вам жизненно необходимо знать текущие реалии и потребности пользователей — кто они, откуда к вам пришли, как и зачем используют ваш софт.
Что, теперь телеметрия и «анальные зонды» в современных ОС уже не кажутся происками спецслужб?
Еще вам стоит осознать (чем раньше тем лучше) что ваша профессия — не для всех, поэтому понимать ее специфику будут только ваши коллеги по цеху, но не ваши пользователи.
Да, я в первую очередь про сообщения об ошибках — не ждите багрепортов, их больше не будет, а любое сообщение сложнее «Ой что-то случилось» современных пользователей оттолкнет.
Увы, но чем дальше тем сильнее будет этот разрыв в понимании.
Карьерная лестница
Как-то так сейчас выглядят любые вакансии в ИТ-индустрии:
Внимание не на зарплатные вилки, а на четкое разделение по уровням:
middle, senior, junior, «старший/младший/смотрящий» и так далее.
Казалось бы работодатели понимают чего хотят, коль так серьезно и подробно описывают трудовые обязанности, требования и круг задач.
Несмотря на то что сие разделение подразумевает разный уровень оплаты труда, смысл самой работы и пожелания работодателя в ИТ практически одинаковы для всех должностей.
Этот внезапный факт — причина многих трудовых конфликтов и основное препятствие к построению хорошей карьеры.
Очень многие не понимают, но все кто дает работу в ИТ хотят одного:
чтобы нанимаемый сотрудник решал все поступающие к нему проблемы.
Пусть медленно и с ошибками, но без отказов из серии «это я не знаю», «это не моя сфера компетенций», «это я не умею» и так далее по списку.
Разделение труда в ИТ как было так и остается крайне расплывчатым и условным, характерным больше для крупных компаний и больших проектов.
С точки зрения высшего руководства компании, все айтишники — просто офисные клерки, белые воротнички, которые либо чего-то там чинят с помощью компьютеров либо помогают компании с их же помощью заработать денег.
Как именно вы решаете поступающие проблемы — с помощью чистого ассемблера, на C++ или на облачных таблицах в Экселе — всему руководству (за исключением технического) до глубины души фиолетово.
Уверяю вас, (это было проверено неоднократно) что вне ИТ-индустрии и не имея связанного с ИТ бекграунда, люди вообще не понимают отличий между разными языками программирования, разными ОС, разными подходами к разработке и так далее — все это для обычного человека один сплошной темный лес.
Поэтому каждый раз когда вы отказываетесь что-то делать, обосновывая это.. да чем-угодно — вы немедленно падаете в глазах руководства, особенно если оно не имеет опыта в ИТ.
Отсюда происходит следующий важный вывод:
для успешной карьеры в компании не так важна глубина знаний и конкретных технологий как умение всем этим вовремя воспользоваться.
Безусловно это не отменяет необходимость долго и серьезно учиться, но если хотите строить именно карьеру как что-то социально одобряемое — помните про этот вектор развития.
Системное программирование
Есть еще один путь построения успешной карьеры в ИТ — разработка чего-то для других айтишников, то что раньше называлось «системным программированием».
Это может быть целый фреймворк или отдельная библиотека, система сборки или даже компилятор — вариантов много.
Проблема заключается в том как убедить ваших вчерашних коллег этим пользоваться, хотя-бы бесплатно и в качестве хобби.
Ваши шансы на успех — примерно как попасть на главную роль в кино или стать балериной, с соответствующими временными и материальными затратами на процесс обучения.
Скорее всего вам придется посвятить такой разработке всю жизнь.
Задача просто успешной разработки хоть чего-то, что будут использовать каждый день обычные пользователи — сложная.
Успешная разработка для других айтишников (не сильно важно каких именно) — умножайте смело на 100 масштаб геммороя и сопутствующих проблем.
Вам надо попасть четко в болевую точку:
выдать решение для чего-то настолько болезненного, что гордый айтишник сам и по своей воле скачает, изучит и начнет использовать ваше решение для своей работы.
Переступив гордость и предубеждение перед новым и неизвестным.
Нужно будет постоянно поддерживать актуальность, оставаясь в тренде и следуя новым веяниям — которые разумеется будут меняться как флюгер в ураган.
Придется обязательно оставаться в этом вашем «инфополе» и поддерживать интерес, всячески пиариться и ездить по конференциям, писать профильные статьи и отвечать на форумах — все это займет просто огромное количество времени и сил.
Зато есть серьезные риски, которые я кратко опишу.
Фокусируясь на такой разработке для своих (айтишников) вы очень быстро выпадете из мира обычной прикладной разработки — с живыми пользователями, далекими от ИТ.
Перестанете понимать их нужды, смотря свысока на все это «формошлепство» и «юзабилити» — вы же «илита», разрабатывающая компиляторы или высокопроизводительные вебсерверы, х#ле.
А значит про «найти работу в любой точке мира» придется забыть — фриланс и какие-то подработки фактически невозможны для системной разработки:
пиццерия или салон красоты абсолютно точно не будут вкладываться в разработку компилятора или библиотеки.
Единственным возможным работодателем для системной разработки были и остаются крупные корпорации, только там готовы платить за софт для других программистов.
Но в крупную компанию еще нужно попасть и суметь там выжить, сохраняя положительный «track record» все время работы — оно вам действительно надо?
Эпилог
Всю карьеру в ИТ мне очень сильно нехватало коллег и сотрудников с осознанным и адекватным восприятием реальности, без всех этих «мне все должны», «это не мое», «мне это не интересно», «это я не могу» — ну вы поняли.
К сожалению слишком многие (если не большинство) айтишников живут в волшебном мире единорогов и розовых пони, не понимая сути и смысла собственной работы, отчего с годами впадают либо в жесткую конфронтацию с бизнесом вообще (как идеей) либо уходят из профессии.
Типичный современный отечетственный айтишник по своим взглядам на жизнь это дикая помесь из мифов времен «советских инженеров» и картинок американской мечты 90х — где стеклянные офисы, кредиты и зарплата по расписанию.
Получается такой себе пролетарий по духу, с вечной фигой в кармане, но в офисном костюме и без тяжелого физического труда.
На работу он ходит только за деньгами, компанию считает говном, как и свою собственную работу в ней и разумеется ничего менять в своей жизни не планирует.
И как бы хрен бы с ними со всеми «офисными хомячками», мало ли на свете идиотов нанятых по объявлению, но к сожалению они размножаются распространяют свое видение мира, постепенно заражая своей дичью окружающих.
ИТ — давно уже не «поле чудес», где выращивают миллионы из посаженной в землю монетки, поэтому вы врядли решите все свои жизненные проблемы одной только работой в этой индустрии.
Но я очень надеюсь что статья поможет вам с адекватной оценкой перспектив и самой сути этой профессии.