А что удерживает инженера-программиста?

Когда мне было 8 (то ли 5, то ли 10, не помню) мне постоянно задавали вопрос, с которым каждый должен сталкиваться и решать, каждый человек.

Кем ты хочешь стать?
Не знаю. Сон Гоку?

Через три года.

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

Три года спустя.

Кем ты хочешь стать? Хотели бы вы иметь детей? Жениться? Покупать дом?
Пап, прости, мой ответ на все твои вопросы по-прежнему Сон Гоку.

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

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

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

Триггер

Через два дня после того, как мой отец пришел, когда я обедал, и показал мне газетную статью, в которой говорилось:

За 3D-принтерами будущее, рабочие места, связанные с ними, будут расти и будут супер-мега хорошо оплачиваться, и вы должны поощрять своего сына изучать это, иначе они будут голодать вечно.

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

Мне потребовалось полчаса, чтобы полностью убедиться, что я хочу быть специалистом по информатике. Хотя я ненавижу 3D-принтеры. Нулевой интерес к ним, поэтому я не знал, будет ли моя работа хорошо оплачиваться или нет, мне было все равно.

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

В качестве первого шага я искал ответ на вопрос, который задал брату, когда он впервые показал мне, что такое Microsoft Word:

Если вы используете Word для создания документов, что вы используете для создания Word?

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

Вам нужны специальные машины? У них есть программы для создания программ? Как тогда их делать?

Моя первая программа

Google сказал мне, что ответом на этот вопрос будет C, C++, Java, Python и т. д. Поэтому я начал изучать Java с канала Youtube, где были представлены как классы, так и PDF-файлы с решенными упражнениями.

Хотя это были всего лишь консольные приложения, мне это нравилось. Я нашел программирование очень интересным, и я был взволнован, когда прочитал чистое решение упражнения и то, насколько оно отличалось от моего грязного спагетти-кода. Мои глаза широко открывались, а мой мозг выделял нужные химические вещества, это хороший показатель, верно?

Это было довольно круто, но я все еще был очень далек от создания программы. Люди обычно не используют консольные приложения, верно? Где окна, цвета, кнопки, анимация, пузыри, тени, заголовки… Как я могу сделать что-то ценное для мамы или друзей с помощью консольного приложения? Я просто не могу.

Только на четвертом курсе CS я сделал что-то полезное для людей: видеоигру с VanillaJS, HTML и CSS. Этот проект дал мне необходимые знания и начал замечать общую закономерность между приложениями, которые используют люди: вам нужна база данных, внутренний сервер с бизнес-логикой и внешнее приложение, чтобы рисовать приятный пользовательский интерфейс и вводить бизнес-данные в это. Удивительный! Я попал в Матрицу! Как сказал Эллиот Олдерсон: Теперь я чувствую, что вижу все, теперь все вот так.

Но

Почему я чувствую себя здесь не в своей тарелке? Почему я не такой, как другие? Я не ношу черные худи, не играю в League of Legends, у меня нет учетной записи Discord, мне не нравятся Dungeons and Dragons, и я нахожу программирование интересным занятием, но я не так увлечен как и все мои товарищи. Я не люблю чистый код, не люблю обсуждать использование React или Angular, не читаю технические статьи и не смотрю много конференций. Я сделал ошибку? Я здесь принадлежу?

Мне нужно было сделать шаг назад, чтобы ответить на этот вопрос. Почему я здесь? Почему я выбрал это? Из-за той газеты? Потому что мне было любопытно, как делаются программы? Что такого особенного в информатике, что заставляло меня заниматься на протяжении всей учебы и получать удовольствие от большинства предметов? Почему я выбрал ветку программного обеспечения, а не аппаратное обеспечение или кибербезопасность?

Зачем я программирую

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

Это был тот факт, который меня интересовал, когда я смотрел презентацию Стивом Джобсом первого iPhone. «Этот продукт меняет все».

Презентация не была новой, на тот момент iPhone 5 уже был в наличии, но все же для меня это было удивительно, потому что он объяснял источник проблем, которые они пытались решить. Пластиковая клавиатура, сложность, размер, стилус. И они решают их изящно с красивой прокруткой, всего одна кнопка «Домой»… Я не фанат Apple, но моя мама могла бы использовать одну из них!

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

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

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

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

Но кодирование само по себе не имеет ценности, как не имеет ценности ручка.

Вот почему мне все равно, какой JS-фреймворк вы считаете лучшим, мне все равно, предпочитаете ли вы Scrum или Cascade, практикуете ли вы TDD или DevOps. В конце концов, это больше ручки. Хочешь продать мне свое предложение о работе? Заинтересовать меня? Расскажите мне о вашем программном обеспечении, чем оно ценно для пользователей? Как вы помогаете людям? Как пользовательский опыт? Сколько места есть у дизайнеров и разработчиков в вашей компании, чтобы создать действительно ценное и качественное приложение?

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