Pull to refresh

Математика карьеры

Reading time 6 min
Views 7K
Original author: Eric Sink
catchy image Пару недель назад все начали писать о предстоящей майкрософтовской конференции PDC (Professional Developers Conference). В частности, Дуг Рейли написал пост «Кто управляет вашей карьерой?». Многие прочитали и сослались на пост, а некоторые (например, Сэм Джентайл или Роберт Херлбат) даже развили идею в ответных постах.

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

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


Думали, математика никогда не пригодится?


Помните начало мат. анализа? Наверное, нет. Может, вы глазели на одноклассниц, а, может, вы были похмельным первокурсником. В любом случае, как-то прошло мимо ушей. А ведь первые главы учебника намекали на секрет успешной карьеры.

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

        К = D + О*T

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

D — это дар, то есть врождённые способности. Для каждого человека D является константой, однако для разных людей D разное.

О — это обучаемость, то есть скорость, с который человек приобретает (или теряет) знания.

Т — это время. Мы будем откладывать Т по оси абсцисс.

Из уравнения видно, что успех карьеры определяют три переменных. Мы можем менять лишь одну:
  • Очевидно, что Т не изменить. Время для всех безжалостно бежит вперёд.
  • D также не изменить. Правда в том, что есть более одарённые люди. С этим ничего не поделаешь. Однако, D не полностью определяет успех. Я был знаком с очень одарёнными программистами, карьеры которых не сложились. Я также знал не очень талантливых людей, у которых были очень успешные карьеры.
  • А вот О можно изменить. На самом деле, каждый день, осознанно или нет, мы принимаем решения, влияющие на О.

Работайте над первой производной


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

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

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

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

O == 0

Ведь очевидно? Не очень. Многие не понимают этого, а понявшие сильно вырываются вперёд. Для большинства разработчиков О равно нулю. Любое положительное О отделяет от толпы.

O gt 0

Если О станет положительным числом, то карьера пойдёт в гору при любом значении D. Возможности того, кто становится более компетентным, растут с каждым днём.

Постоянно учитесь


К примеру, можно самому заплатить за PDC. Это пример положительного О. Можно сходить на PDC и научиться дженерикам в C#, оптимизации запросов к Yukon'у, managed API в Longhorn'е и многому другому. За последнюю неделю октября К увеличится.

Однако, PDC устраивают раз в пару лет. Как поддерживать О положительным в остальное время? Успешную карьеру не построить, если О лишь изредка отличается от нуля. Учиться надо постоянно.

Нужно, чтобы обучение стало процессом, а не событием. Формального обучения не достаточно для того, чтобы поддерживать О положительным. Надо каждый день приходить на работу с желанием чему-то научиться.

Чему можно научиться за обычный рабочий день? Мы проводим 250 дней перед монитором. Сколько дней можно поддерживать О положительным?

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

Однако, кое-что удерживает нас от роста О. Самые важные уроки мы извлекаем из своих ошибок.

Учитесь на ошибках


Кроме формального обучения (например, PDC) можно учиться на ошибках. Значение О сильно зависит от того, как мы относимся к своим ошибкам.

Мои ошибки сильно повлияли на мою карьеру. Когда SourceGear завоевал приз Inc 500 прошлой осенью, редакторы попросили меня сказать, что меня как предпринимателя удивило больше всего. Я ответил, что меня больше всего удивило, что несмотря на многочисленные глупые ошибки, я всё же оказался в списке Inc 500.

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

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

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

Иногда мы так хорошо прячем ошибки, что даже сами их не можем найти. Что первое приходит в голову, когда сломался ежедневный билд? Кто-то другой сломал? Люди с положительным О скорее всего тут же проверят, не их ли чекин сломал билд. Желание научиться предполагает, что человек быстро понимает свои ошибки и может их обсудить с другими.

Итого, есть только два варианта:
А) Управлять своей карьерой.
Б) Управлять тем, что другие о тебе думают.

Если выбрать А, то можно построить выдающуюся карьеру. Если выбрать Б, то карьерный рост остановится.

Баг 5909


Не так давно у нас появилась возможность поупражняться в этом тут, в SourceGear. Один из наших лучших разработчиков (назовём его Данил) совершил действительно серьёзную ошибку. Сама ошибка в коде была небольшая, не очень правильный if, но последствия бага были очень серьёзными.

Данил полностью принял ответственность на себя. Сначала он пофиксил сам баг. Потом Данил стал работать напрямую с каждым клиентом, которого могла затронуть допущенная ошибка. Он не побоялся, что коллеги будут меньше его уважать. На самом деле, он насколько хорошо справился с ситуацией, что его понимание C улучшилось, хотя это и не было целью.

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

Риски


Мне очень хочется сказать, что учиться каждый день дешевле, чем ходить на PDC :)

Однако, справедливости ради, надо признать, что постоянное обучение имеет некоторый риск. Высокое О делает сотрудника уязвимым по следующим важным причинам:
  • Если сотрудник рассказывает о своих ошибках, то начальник может за них наказать. Последствия могут быть очень разные. Может, начальник будет просто считать сотрудника идиотом. А может, вообще уволит.
  • Начальник может испугаться сотрудника. Некоторые начальники предпочитают подчинённых с нулевой производной. Осознанно или нет, они окружают себя людьми, которые остановились в своём росте и не представляют угрозы для самого начальника. Если сотрудник, работающий в такой команде, вдруг становится «разработчиком с ненулевой производной», то он нарушает очень хрупкое равновесие. Начальник может отреагировать неадекватно: сотрудника могут назвать смутьяном или даже найти повод и уволить.

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

Однако, зачем работать на идиотов? В любой из этих двух ситуаций надо искать другого начальника. Так мы пришли к первому закону управления своей карьерой:
Не работайте на начальника, который мешает вам постоянно учиться.

Следствие: в следующий раз на интервью притворитесь, что всё наоборот: не начальник пытается выяснить, достойны ли вы работы, а вы тратите своё время, чтобы понять, достоин ли этот человек быть вашим начальником.

P. S.


Кстати, раз уж вы хотите всему научиться, то, может, стоит попробовать себя не только в области кода и программной архитектуры? Если вы работаете в небольшой НСК, или в ваши обязанности входит управление людьми, то, может, пора поучиться ещё кое-чему? Раз пошла такая пьянка, может, поучиться маркетингу?

От переводчика:
Большое спасибо Youri_M4U за ссылку на статью и идею перевода.
Эту статью написал Эрик Синк в своём блоге в августе 2003. Мне кажется, что она до сих пор очень актуальна.
Tags:
Hubs:
+57
Comments 100
Comments Comments 100

Articles