Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Кадр из фильма «Перекрёсток» (1986)
Я родился в 1981-м, так что в прошлом году мне стукнуло 40. Если верить Википедии, это первый год поколения Y (миллениалов). Миллениалов обычно ассоциируют с претенциозным характером, и в моём случае так оно и есть. Родители кучу раз говорили мне, как тяжело им приходилось работать и идти на жертвы, чтобы обеспечить для меня достойное образование. Из этого следовало, что мне следует как можно лучше учиться и усердно трудиться, что я и делал (спасибо вам за совет, мама и папа ✝). И вот чему я научился. Это моя история о росте, обязанностях и пределах.
Больше 15 лет назад я окончил Шведский государственный технологический институт с докторской степенью в области компьютерных наук. Тогда находиться в этой сфере было очень интересно – интернет только набирал обороты, люди создавали различные программные продукты, а основатели Google даже навещали нас с лекцией об информационных системах. В те годы эта индустрия ещё не была обременена вопросами приватности, безопасности и юзабилити – эдакий Дикий Запад.
Как-то раз я участвовал в соревновании по программированию, на котором написал JIT-компилятор, генерировавший код ассемблера SPARC для стековой виртуальной машины. Впоследствии во время скучной семейной рождественской встречи у меня оказалась с собой копия набора команд SPARC, и я попытался найти способ ускорить свой код, используя более грамотные инструкции. Мне очень нравилось углублённо копаться в ПО, разбирая всё по крупицам. В этом я был настоящим занудой.
Sun Blade 100 — забавная машина, которая меня многому научила
Я закончил своё обучение в отведённые сроки и, гордо заполнив резюме всеми невероятными институтскими навыками, сразу же занялся поиском работы, так как не имел больших средств к существованию. Хотя в итоге навык работы с Python 2.x, приобретённый во время сторонних подработок, на удивление оказался ценнее, чем знание Oberon и ассемблера SPARC. Само резюме я писал на LaTeX.
Взгляните на меня – бог ассемблера SPARC (2006)
И даже в те далёкие времена найти работу в IT было несложно. Тогда ещё чувствовались болезненные последствия лопнувшего пузыря доткомов, но это событие уже растворялось в прошлом, а финансовый кризис 2008-го ещё не наступил.
Меня почти сразу же взяли на работу в качестве «Инженера межплатформенного ПО», в роли которого я осваивал все необходимые основы. Это была интересная должность, включавшая низкоуровневую разработку систем безопасности (С/С++, Apache, OpenSSL и т. д.), отслеживание утечек памяти и работу в критически важных средах с талантливыми людьми.
Отладка утечек памяти в Solaris (2007)
Тогда я узнал, что разработка ПО – это намного больше, чем просто написание кода – моя фирма одной из первых занялась внедрением систем автоматической сборки и развёртывания (делалось это вручную с помощью Hudson ещё до появления Jenkins), опираясь на сильную инженерную культуру.
В целом это было отличное место для первых шагов и освоения всех аспектов написания ПО для производственной среды, но мой внутренний миллениал начал испытывать скуку.
В 2009 году мой босс (технический директор) совершил роковую ошибку. Он подтолкнул меня к изучению программирования под iOS и применению этого навыка в проекте, для которого уже организовал предварительные продажи. Тогда iOS ещё называлась iPhone OS.
Что ж, я купил у O’Reilly книгу, запустил теперь уже древний MacBook Pro и написал для шведской компании по прокату автомобилей небольшое приложение. В этой программе при помощи GPS-данных пользователю сообщалось нахождение ближайшей точки аренды, её удалённость и перечислялись доступные там машины. Бэкенда у приложения не было – я использовал скрипт, который превращал файл Excel в модуль Objective-C, раскрывая все локации аренды. Однако с задачей программа справлялась, и в конечном итоге была размещена в App Store.
Меня очень воодушевило то, что я смог написать программу, понятную и доступную для использования простыми людьми. При этом она выполнялась на устройстве, с которым впоследствии познакомилась даже моя мама, — обычном смартфоне.
К сожалению, приложения для смартфонов тогда ещё находились на ранней стадии развития, и мой работодатель оказался не готов вкладываться в это направление авансом, воспринимая его как «временную прихоть». В итоге нежелание руководства идти дальше, совпавшее с организационными изменениями внутри компании, которые затронули и меня, привело к тому, что я снова занялся поиском работы.
По счастливому стечению обстоятельств в 2009 году у меня появилась возможность поучаствовать в конференции iPhone Developer Day в Цюрихе, где во мне пробудила интерес речь, посвящённая Android. С речью выступал представитель компании, которая хоть и была относительно небольшой, но участвовала в написании основных библиотек Android для Google. Для меня это звучало круто, поэтому я отправил им своё резюме, и через пару недель получил новую работу.
В течение следующих месяцев я погрузился в совершенно новую сферу, связанную с разработкой приложений для мобильных систем и Embedded Android. В какой-то момент я написал приложение для бортового компьютера сверхмощного суперкара Mercedes AMG SLS. Оно позволяло водителю производить запись гоночных трасс (естественно, только вне основных дорог) и затем гонять по ним, фиксируя различные показатели. Работало это приложение на Android. В нём была крутая графика, алгоритмы вроде Dead Reckoning и самое важное: протестировать его можно было, только оказавшись в реальной машине.
AMG Performance Media, Track app (2010)
Этот проект оказался одним из наиболее трудных и интересных, к каким мне довелось быть причастным, к тому же, за время работы над ним я познакомился со многими прекрасными людьми. Конечно же, не все проекты были такими, но здесь я погрузился в совершенно иную культуру по сравнению с предыдущей компанией, и в этом месте определённо стоило поработать.
Где-то через два года, опять же из-за организационных изменений, а отчасти из-за собственного безумства я решил сменить работу. Тогда мне как раз исполнилось 30, и я подумал, что это подходящее время для серьёзных перемен.
Работая в небольшой компании, где сотрудники были вынуждены брать на себя больше ответственности и непосредственно взаимодействовать с клиентами, я понял, что обладаю довольно нетипичным набором навыков. Я был не только технически компетентен, но также мог беседовать с клиентами, понимать их потребности и разрабатывать подходящие решения.
Тогда-то я и подумал: «А почему бы мне не делать всё это самому, исключив посредника? Освободиться от оков найма и стать собственным боссом». Мой внутренний миллениал возликовал.
Нереалистичное представление рабочих условий самозанятых разработчиков ПО
Проработав на себя в течение пяти лет, я умудрился постепенно создать собственную сеть, нарастить клиентскую базу и доход. Не стану утомлять вас очередным списком собственных достижений, но это был интересный период, полный обучения. При этом успехи ощущались более значительными, поскольку теперь я мог полноценно присвоить их себе.
Позднее я скооперировался с другом, чтобы иметь возможность заниматься более крупными проектами, и мы даже наняли сотрудников.
За этим последовал период, полный знаменательных событий, никак не связанных с технологиями. Я познакомился с будущей женой, мы поженились, завели двух детей и купили дом.
Приближаясь к 40 годам, я постепенно брал на себя всё больше и больше ответственности – за семью, отношения, бизнес… Я начал во всём сомневаться и медленно, но верно подошёл к тому, что полностью утратил личное время.
Я пытался быть всем одновременно – участливым родителем, любящим мужем, успешным бизнесменом. Это может прозвучать как слова претенциозного миллениала, но я забыл, каково быть собой и от души веселиться.
Я постепенно осознал укоренившееся в моём сознании ожидание, что рост и личное развитие являются бесконечной серией движений вверх, что всегда есть очередной шаг, и что он должен вести «выше» предыдущего.
Реальность же такова, что в конечном итоге чем-то приходится жертвовать.
Непросто быть одновременно везде
Во время пандемии я проходил через тяжёлый период рефлексии, который в шутку называл кризисом среднего возраста. Я начал задавать себе непростые вопросы вроде:
Тогда я сделал один из труднейших выборов в своей жизни – решил уйти из собственной компании. К этому решению я шёл долго, но в итоге оно было принято, и дальнейший путь был для меня ясен. Мой бизнес-партнёр, к сожалению, не захотел продолжать бизнес без моего участия, так что пришло время закрывать компанию.
Существует множество руководств по открытию собственного бизнеса, но никто не учит его закрывать. За моим решением последовал трудный и эмоционально изматывающий год, полный ощущения незащищённости, провала и неловких бесед. Я уже не говорю обо всей административной возне, связанной с закрытием бизнеса.
Сегодня, когда с того момента прошло уже больше года, и трансформация практически завершена, я чувствую, что впервые за много лет у меня есть время подумать о себе. Но от некоторых горьких фактов всё же никуда не деться:
В 40 я уже далеко не так гибок, как раньше. У меня по-прежнему сохраняется куча ответственностей: обеспечение детей, оплата кредитов и т. д. Хотя я считаю, что мой опыт научил меня гораздо лучше разбираться в разных вещах и отбрасывать лишнее.
Мой разум больше не работает как губка. Я по-прежнему люблю осваивать новое, но даётся оно уже не так легко. Возьмём, к примеру, языки программирования. Я пришёл к заключению, что, спустя почти двадцать лет написания кода ни в одном из них не являюсь поистине экспертом. Получаемые мной знания устаревают, причём всё б’ольшими темпами.
Теперь я предпочитаю думать о языках программирования как о битах для шуруповёрта. Одни ты используешь чаще всего, другие являются специализированными и пригождаются редко, а ещё наверняка есть несколько таких, что так никогда и не пригодились. Однако если ты умеешь обращаться с шуруповёртом, биты уже не играют столь важной роли. И этот принцип распространяется далеко за пределы языков программирования.
Сегодня уже сложнее создавать что-либо. Это никак не связано со мной лично, а скорее относится к общей обстановке в сфере технологий. Крупные корпорации, обладающие практически безграничными ресурсами, привлекают к себе самых талантливых специалистов, предлагая беспрецедентные вознаграждения, с которыми очень трудно соперничать.
Включиться в сектор «передовых технологий» вроде ИИ и машинного обучения очень трудно, если только ты уже не сидишь на куче данных и денег. При этом в результате насаждения бизнес-моделей, построенных на рекламе, конечный потребитель уже привык, что всё для него либо бесплатно, либо дёшево.
Дискриминация по возрасту реальна. «Что?! Ты ещё программируешь?», — это актуальный вопрос, и он реально звучит. И хотя в большинстве случаев люди не подразумевают ничего плохого, он просто надоедает ;-)
Так что теперь, вскинуть белый флаг?
Несмотря на все эти мрачные истины, я иногда напоминаю себе, что после 40 ещё не всё потеряно.
Я люблю осваивать новое — мне как-то сказали, что в IT ты никогда не перестаёшь учиться. Это действительно так, и мне это нравится. Ещё я читаю много книг, никак не связанных с IT.
Я знаю, в чём я хорош — мне не нужно никому ничего доказывать. Я знаю, как преподнести себя, и осознаю ту ценность, которую могу дать. К тому же я прекрасно понимаю все свои слабые места.
Я эффективен — с возрастом приходит и опыт. Для меня опыт – это искусство минимизировать число неверных поворотов в пути.
Я до сих пор увлечён — когда я что-то делаю, то хочу сделать это отлично. Моё отношение к работе не изменилось, просто теперь я стараюсь работать более грамотно.
Ну и помимо изливания своих мыслей в эту статью, я строю новую компанию под названием Pixelverse, ориентированную на применение IT-технологий в творческих процессах, а также реализую проект на базе компьютерного зрения, STRICH, который вскоре планирую запустить.
Я родился в 1981-м, так что в прошлом году мне стукнуло 40. Если верить Википедии, это первый год поколения Y (миллениалов). Миллениалов обычно ассоциируют с претенциозным характером, и в моём случае так оно и есть. Родители кучу раз говорили мне, как тяжело им приходилось работать и идти на жертвы, чтобы обеспечить для меня достойное образование. Из этого следовало, что мне следует как можно лучше учиться и усердно трудиться, что я и делал (спасибо вам за совет, мама и папа ✝). И вот чему я научился. Это моя история о росте, обязанностях и пределах.
▍ Изучение информатики в начале 2000-х
Больше 15 лет назад я окончил Шведский государственный технологический институт с докторской степенью в области компьютерных наук. Тогда находиться в этой сфере было очень интересно – интернет только набирал обороты, люди создавали различные программные продукты, а основатели Google даже навещали нас с лекцией об информационных системах. В те годы эта индустрия ещё не была обременена вопросами приватности, безопасности и юзабилити – эдакий Дикий Запад.
Как-то раз я участвовал в соревновании по программированию, на котором написал JIT-компилятор, генерировавший код ассемблера SPARC для стековой виртуальной машины. Впоследствии во время скучной семейной рождественской встречи у меня оказалась с собой копия набора команд SPARC, и я попытался найти способ ускорить свой код, используя более грамотные инструкции. Мне очень нравилось углублённо копаться в ПО, разбирая всё по крупицам. В этом я был настоящим занудой.
Sun Blade 100 — забавная машина, которая меня многому научила
Я закончил своё обучение в отведённые сроки и, гордо заполнив резюме всеми невероятными институтскими навыками, сразу же занялся поиском работы, так как не имел больших средств к существованию. Хотя в итоге навык работы с Python 2.x, приобретённый во время сторонних подработок, на удивление оказался ценнее, чем знание Oberon и ассемблера SPARC. Само резюме я писал на LaTeX.
Взгляните на меня – бог ассемблера SPARC (2006)
И даже в те далёкие времена найти работу в IT было несложно. Тогда ещё чувствовались болезненные последствия лопнувшего пузыря доткомов, но это событие уже растворялось в прошлом, а финансовый кризис 2008-го ещё не наступил.
▍ Первая работа в индустрии — добро пожаловать в реальный мир
Меня почти сразу же взяли на работу в качестве «Инженера межплатформенного ПО», в роли которого я осваивал все необходимые основы. Это была интересная должность, включавшая низкоуровневую разработку систем безопасности (С/С++, Apache, OpenSSL и т. д.), отслеживание утечек памяти и работу в критически важных средах с талантливыми людьми.
Отладка утечек памяти в Solaris (2007)
Тогда я узнал, что разработка ПО – это намного больше, чем просто написание кода – моя фирма одной из первых занялась внедрением систем автоматической сборки и развёртывания (делалось это вручную с помощью Hudson ещё до появления Jenkins), опираясь на сильную инженерную культуру.
В целом это было отличное место для первых шагов и освоения всех аспектов написания ПО для производственной среды, но мой внутренний миллениал начал испытывать скуку.
▍ Переход в сферу мобильных приложений
В 2009 году мой босс (технический директор) совершил роковую ошибку. Он подтолкнул меня к изучению программирования под iOS и применению этого навыка в проекте, для которого уже организовал предварительные продажи. Тогда iOS ещё называлась iPhone OS.
Что ж, я купил у O’Reilly книгу, запустил теперь уже древний MacBook Pro и написал для шведской компании по прокату автомобилей небольшое приложение. В этой программе при помощи GPS-данных пользователю сообщалось нахождение ближайшей точки аренды, её удалённость и перечислялись доступные там машины. Бэкенда у приложения не было – я использовал скрипт, который превращал файл Excel в модуль Objective-C, раскрывая все локации аренды. Однако с задачей программа справлялась, и в конечном итоге была размещена в App Store.
Меня очень воодушевило то, что я смог написать программу, понятную и доступную для использования простыми людьми. При этом она выполнялась на устройстве, с которым впоследствии познакомилась даже моя мама, — обычном смартфоне.
К сожалению, приложения для смартфонов тогда ещё находились на ранней стадии развития, и мой работодатель оказался не готов вкладываться в это направление авансом, воспринимая его как «временную прихоть». В итоге нежелание руководства идти дальше, совпавшее с организационными изменениями внутри компании, которые затронули и меня, привело к тому, что я снова занялся поиском работы.
▍ Очередная работа
По счастливому стечению обстоятельств в 2009 году у меня появилась возможность поучаствовать в конференции iPhone Developer Day в Цюрихе, где во мне пробудила интерес речь, посвящённая Android. С речью выступал представитель компании, которая хоть и была относительно небольшой, но участвовала в написании основных библиотек Android для Google. Для меня это звучало круто, поэтому я отправил им своё резюме, и через пару недель получил новую работу.
В течение следующих месяцев я погрузился в совершенно новую сферу, связанную с разработкой приложений для мобильных систем и Embedded Android. В какой-то момент я написал приложение для бортового компьютера сверхмощного суперкара Mercedes AMG SLS. Оно позволяло водителю производить запись гоночных трасс (естественно, только вне основных дорог) и затем гонять по ним, фиксируя различные показатели. Работало это приложение на Android. В нём была крутая графика, алгоритмы вроде Dead Reckoning и самое важное: протестировать его можно было, только оказавшись в реальной машине.
AMG Performance Media, Track app (2010)
Этот проект оказался одним из наиболее трудных и интересных, к каким мне довелось быть причастным, к тому же, за время работы над ним я познакомился со многими прекрасными людьми. Конечно же, не все проекты были такими, но здесь я погрузился в совершенно иную культуру по сравнению с предыдущей компанией, и в этом месте определённо стоило поработать.
▍ Работа на себя
Где-то через два года, опять же из-за организационных изменений, а отчасти из-за собственного безумства я решил сменить работу. Тогда мне как раз исполнилось 30, и я подумал, что это подходящее время для серьёзных перемен.
Работая в небольшой компании, где сотрудники были вынуждены брать на себя больше ответственности и непосредственно взаимодействовать с клиентами, я понял, что обладаю довольно нетипичным набором навыков. Я был не только технически компетентен, но также мог беседовать с клиентами, понимать их потребности и разрабатывать подходящие решения.
Тогда-то я и подумал: «А почему бы мне не делать всё это самому, исключив посредника? Освободиться от оков найма и стать собственным боссом». Мой внутренний миллениал возликовал.
Нереалистичное представление рабочих условий самозанятых разработчиков ПО
Проработав на себя в течение пяти лет, я умудрился постепенно создать собственную сеть, нарастить клиентскую базу и доход. Не стану утомлять вас очередным списком собственных достижений, но это был интересный период, полный обучения. При этом успехи ощущались более значительными, поскольку теперь я мог полноценно присвоить их себе.
Позднее я скооперировался с другом, чтобы иметь возможность заниматься более крупными проектами, и мы даже наняли сотрудников.
За этим последовал период, полный знаменательных событий, никак не связанных с технологиями. Я познакомился с будущей женой, мы поженились, завели двух детей и купили дом.
▍ Пределы роста
Приближаясь к 40 годам, я постепенно брал на себя всё больше и больше ответственности – за семью, отношения, бизнес… Я начал во всём сомневаться и медленно, но верно подошёл к тому, что полностью утратил личное время.
Я пытался быть всем одновременно – участливым родителем, любящим мужем, успешным бизнесменом. Это может прозвучать как слова претенциозного миллениала, но я забыл, каково быть собой и от души веселиться.
Я постепенно осознал укоренившееся в моём сознании ожидание, что рост и личное развитие являются бесконечной серией движений вверх, что всегда есть очередной шаг, и что он должен вести «выше» предыдущего.
Реальность же такова, что в конечном итоге чем-то приходится жертвовать.
Непросто быть одновременно везде
▍ Трудные вопросы
Во время пандемии я проходил через тяжёлый период рефлексии, который в шутку называл кризисом среднего возраста. Я начал задавать себе непростые вопросы вроде:
- Можешь ли ты искренне сказать, что рад тому, чем занимаешься?
- Не делаешь ли ты это в основном из-за того, что от тебя того ждут другие?
- Чувствуешь ли ты временами измотанность? Есть ли у тебя проблемы со сном?
▍ Обратный ход
Тогда я сделал один из труднейших выборов в своей жизни – решил уйти из собственной компании. К этому решению я шёл долго, но в итоге оно было принято, и дальнейший путь был для меня ясен. Мой бизнес-партнёр, к сожалению, не захотел продолжать бизнес без моего участия, так что пришло время закрывать компанию.
Существует множество руководств по открытию собственного бизнеса, но никто не учит его закрывать. За моим решением последовал трудный и эмоционально изматывающий год, полный ощущения незащищённости, провала и неловких бесед. Я уже не говорю обо всей административной возне, связанной с закрытием бизнеса.
▍ Горькая правда
Сегодня, когда с того момента прошло уже больше года, и трансформация практически завершена, я чувствую, что впервые за много лет у меня есть время подумать о себе. Но от некоторых горьких фактов всё же никуда не деться:
В 40 я уже далеко не так гибок, как раньше. У меня по-прежнему сохраняется куча ответственностей: обеспечение детей, оплата кредитов и т. д. Хотя я считаю, что мой опыт научил меня гораздо лучше разбираться в разных вещах и отбрасывать лишнее.
Мой разум больше не работает как губка. Я по-прежнему люблю осваивать новое, но даётся оно уже не так легко. Возьмём, к примеру, языки программирования. Я пришёл к заключению, что, спустя почти двадцать лет написания кода ни в одном из них не являюсь поистине экспертом. Получаемые мной знания устаревают, причём всё б’ольшими темпами.
Теперь я предпочитаю думать о языках программирования как о битах для шуруповёрта. Одни ты используешь чаще всего, другие являются специализированными и пригождаются редко, а ещё наверняка есть несколько таких, что так никогда и не пригодились. Однако если ты умеешь обращаться с шуруповёртом, биты уже не играют столь важной роли. И этот принцип распространяется далеко за пределы языков программирования.
Сегодня уже сложнее создавать что-либо. Это никак не связано со мной лично, а скорее относится к общей обстановке в сфере технологий. Крупные корпорации, обладающие практически безграничными ресурсами, привлекают к себе самых талантливых специалистов, предлагая беспрецедентные вознаграждения, с которыми очень трудно соперничать.
Включиться в сектор «передовых технологий» вроде ИИ и машинного обучения очень трудно, если только ты уже не сидишь на куче данных и денег. При этом в результате насаждения бизнес-моделей, построенных на рекламе, конечный потребитель уже привык, что всё для него либо бесплатно, либо дёшево.
Дискриминация по возрасту реальна. «Что?! Ты ещё программируешь?», — это актуальный вопрос, и он реально звучит. И хотя в большинстве случаев люди не подразумевают ничего плохого, он просто надоедает ;-)
Так что теперь, вскинуть белый флаг?
▍ Почему я сохраняю оптимизм
Несмотря на все эти мрачные истины, я иногда напоминаю себе, что после 40 ещё не всё потеряно.
Я люблю осваивать новое — мне как-то сказали, что в IT ты никогда не перестаёшь учиться. Это действительно так, и мне это нравится. Ещё я читаю много книг, никак не связанных с IT.
Я знаю, в чём я хорош — мне не нужно никому ничего доказывать. Я знаю, как преподнести себя, и осознаю ту ценность, которую могу дать. К тому же я прекрасно понимаю все свои слабые места.
Я эффективен — с возрастом приходит и опыт. Для меня опыт – это искусство минимизировать число неверных поворотов в пути.
Я до сих пор увлечён — когда я что-то делаю, то хочу сделать это отлично. Моё отношение к работе не изменилось, просто теперь я стараюсь работать более грамотно.
Ну и помимо изливания своих мыслей в эту статью, я строю новую компанию под названием Pixelverse, ориентированную на применение IT-технологий в творческих процессах, а также реализую проект на базе компьютерного зрения, STRICH, который вскоре планирую запустить.
Telegram-канал с полезностями и уютный чат