http://habrahabr.ru/post/233757/
Есть один курс, который я бы добавил в программу обучения по всякой инженерной специальности, и он не о компиляторах или сложности алгоритмов. Это “Введение в реальность индустрии”, ибо об этом не говорят и это приводит к никому не нужным обломам. Эта статья претендует стать README.txt для молодого инженера в деле построения карьеры. Ее цель — сделать вас счастливее, заполнив пробелы в образовании относительно того, как работает реальный мир. Я не призываю следовать написанному как подробному руководству, но я надеюсь, что эта информация окажется для вас более ценной, чем то ничто, что вам рассказали об этом в университете.
90% работы для программиста — это корпоративное ПО
Основы экономики: цена чего-угодно (включая вас) — это функция спроса и предложения. Давайте сначала посмотрим на спрос. Большинство ПО не продается в коробках и не доступно для скачивания в интернете или App Store. Большинство ПО — это тоскливые узкоспециальные корпоративные приложения, поддерживающие глобальную экономику со всех вообразимых сторон. Эти приложения подсчитывают издержки, оптимизируют расходы на пересылку, помогают составлять бухгалтерские отчеты, проектировать новые интерфейсы, вычислять цену страховки, помечать подозрительные заказы для ручной проверки и т.д. ПО
решает проблемы бизнеса.
ПО решает проблемы бизнеса несмотря на свою
душераздирающую скучность и
отсутствие технологической сложности. Например, представьте себе электронную форму отчета о командировочых расходах. Для компании размером в 2000 человек она может сэкономить порядка 5000 человеко-часов в год в сравнении с ручной обработкой бумаг, что при средней стоимости часа работы в $50 сэкономит $250,000. Компании все равно, что это самое примитивное на свете CRUD-приложение. Единственное, что имеет значение, это то, что оно сокращает издержки или генерирует прибыль.
Есть компании, которые создают ПО, которым пользуются реальные люди, и под это описание попадает почти все, что приходит вам в голову, когда вы думаете о ПО.
Очень маловероятно, что вы будете работать в такой компании, если только вы не предпринимаете для этого целенаправленных шагов. И даже если вы таки окажетесь в такой компании, большинство программистов все равно не работают над пользовательской частью приложения.
Программистов нанимают для того, чтобы они приносили пользу компании, а не для того, чтобы они программировали
Периодически компании предпринимают что-то из иррациональных или политических причин (читайте ниже), но в основном их действия направлены на увеличение прибыли или сокращение издержек. В хорошо поставленной компании котируются люди, которые занимаются именно этим. (Что может, но совсем не обязательно, подразумевать реально выполняемую работу.) Тот, кто решил нанять еще одного или нескольких программистов, решил сделать так не потому, что ему нравятся гики в кабинете, а потому, что эти гики позволят довести до конца проект (или проекты), которые увеличат прибыль или снизят издержки. Создание красивого ПО не является целью, также как и решение сложных проблем программирования или написание беспроблемного кода. Повысить прибыль или сократить издержки — ваши единственные задачи.
Питер Друкер — возможно, вы не слышали о нем, но он пользуется уважением среди людей, которые подписывают финансовые документы — предложил определения центра прибыли (profit center) и центра издержек (cost center). Центры прибыли — это та часть организации, которая непосредственно зарабатывает на хлеб с маслом: партнеры в юридических фирмах, продажники в компаниях, инвесторы на Уолл-стрит и т.д. Центры издержек — это, по сути, все остальное.
Вам надо быть частью центра прибыли, потому что это принесет вам больше денег, статус, и больше возможностей во всем, чем вам хотелось бы заниматься. Это не сложно: толковый школьник легко определит центр прибыли компании по ее описанию длиной в один абзац. Если вы хотите работать в этой компании, цельтесь именно туда. Если не можете, то или а) идите работать куда-нибудь еще, или б) организуйте себе перевод после того, как будете наняты.
Программисты — особенно дорогие центры издержек, что вызывает оптимизационный зуд у любого выпускника MBA. Это выливается в такие замечательные инициативы, как аутсорсинг, что можно понимать как “давайте заменим очень дорогие центры издержек, которые занимаются какой-то магией, суть которой нам вроде как не важна, но без нее никак, более дешевыми центрами издержек в стране с более низкой стоимостью труда”. (Лирическое отступление: вы можете абсолютно спокойно игнорировать аутсорсинг как угрозу своей карьере, если прочтете эту статью до конца.) Никто и никогда не отдаст на аутсорсинг центры прибыли. Попытка сделать так родит множество управленческих шуток. Это как если бы вам предложили заменить систему контроля версий файлами на дискетках.
Перестаньте называть себя программистом
“Программист” звучит как “аномально дорогой холоп, пишущий непонятную ерунду в другой непонятной ерунде”. Если вы называете себя программистом, знайте, что кто-то
уже работает над тем, чтобы вас уволить. Слышали о Salesforce, Software as Service компании? Их слоган “Без ПО” (“No Software”) буквально сообщает будущим клиентам: “Если бы вы использовали Salesforce, вы бы могли уволить половину программистов, работающих над вашим внутренним ПО, и положить разницу себе в карман.” (В этом, кстати, нет ничего страшного. Вы в индустрии, которая лишает людей работы. Если вы думаете, что это неправильно, идите назад в университет и обучитесь чему-нибудь ненужному.)
Вместо этого, говорите о себе в контексте своих достижений по увеличению прибыли и сокращению издержек для других работодателей. Если у вас пока не было возможности чего-то в этом достичь, говорите о себе так, чтобы было понятно, что вы способны увеличить прибыль и снизить издержки и рассказывайте о своих идеях на этот счет.
Есть множеcтсво высокооплачиваемых профессионалов, которые работают с кодом, но при этом не называют себя программистами. Квонты (
от “quantitative analyst” — аналитики, занимающиеся алгоритмизацией торговли на бирже, моделированием рисков и т.д. — прим. переводчика) с Уолл-стрит — самый яркий тому пример: они используют компьютеры и знание математики, чтобы принимать решения более эффективно, чем группа людей без такой поддержи, и в результате их компании зарабатывают миллионы долларов. Бонусы успешного квонта в хороший год превышают заработок многих талантливых программистов за десяток лет.
Аналогично, даже если Google кажется вам подходящей компанией, то там тоже есть программисты, и есть люди, чья работа привела к увеличению кликабельности AdWords-объявлений на 1%. (Последние стоят миллионы долларов, намек ясен?) Я недавно наткнулся на сайт парня, у которого в профессиональной биографии было написано: “создал код системы биллинга, через которую проходит 97% прибыли Google”. Сейчас он занимается ангельским инвестированием (это красивый способ сказать, что он очень богат).
Вы не ограничены своим стеком технологий
Недавно я спросил в Twitter, что начинающие программисты хотели бы знать о том, как строить карьеру. Многим было интересно, какой язык программирования или стек технологий изучать. Мой ответ: не имеет значения.
Java-программисты зарабатывают больше, чем .NET-программисты? Все, кто считает себя Java-программистом или .NET-программистом уже в пролете, потому что а) они программисты (а вы, как написано выше, нет) б) они закрывают для себя возможность быть нанятым на большинство позиций. В реальном мире изучение основ нового языка занимает пару недель, и через 6-12 месяцев уже никто не догадается, что вы не занимались этим всю свою карьеру. Я занимался Enterprise Java разработкой еще в марте 2010 (
статья написана в октябре 2011 — прим. переводчика). Поверьте, всем все равно. Если компания, занимающаяся разработкой на Python, будет искать технаря, способного заработать им денег, тот факт, что я в жизни не написал ни строчки кода на Python не сыграет против меня.
Талантливые программисты редко встречаются, гораздо реже, чем в них возникает потребность, поэтому сейчас самая благоприятная конъюнктура для соискателей почти во всех отраслях. В Matasano пишут на Ruby. Если вы не знаете Ruby, но вы хороший специалист, вас все равно наймут. (У хорошего специалиста есть опыт в — повторяйте за мной — увеличении прибыли или снижении издержек.) В FogCreek используют стек Microsoft. Я не могу написать ASP.NET без ошибки, но они все равно наймут меня.
Есть компании с таким криво поставленным процессом найма, что если в вашем резюме нет искомого ключевого слова, вас даже не пригласят на собеседование. В таких компаниях лучше не работать, но если вам очень хочется, то потратив несколько вечеров и выходных вы сможете добавить в свое резюме нужные слова. Но еще лучше влиять на выбор технологий на своем текущем месте работы так, чтобы это продвигало вашу карьеру. Хотите изучить Ruby, работая в .NET-компании? Сделайте одноразовый проект на Ruby. И, о-па, вы стали профессиональным Ruby-программистом, вы писали на Ruby и вам за это платили. (Смешно? Я провернул это в компании, занимающейся Java. Единоразовый проект на Ruby заработал нам $30,000. Мой начальник был ожидаемо счастлив и
никогда не интересовался, на чем был сделан проект.)
Коллеги и начальники вам не друзья
Вы будете проводить с коллегами очень много времени. Рано или поздно с некоторыми из них вы можете стать друзьями, но в общем случае в течение трех лет вы смените работу и, несмотря на теплые отношения,
никогда не пригласите никого из них в гости. И они будут относиться к вам точно также. Вам стоит хорошо относиться ко всем людям, с кем вас сводит жизнь, — это просто правильно, и кроме того поможет развитию связей, — но не пребывайте в иллюзии, что все вокруг ваши друзья.
Например, когда при приеме на работу вы беседуете с приятным 28-летним парнем, который кажется вам просто улучшенной копией вас самих из будущего,
это ни к чему не ведет. Он не видит в вас приятеля, вы для него не больше чем ресурс, необходимый для деятельности компании, который он стремится приобрести по наименьшей цене. Треп о World of Warcraft — это не более чем установление контакта, и он наверняка (надеюсь, порядочно) попробует сделать что-то такое, чего ваши друзья никогда не допустят, например, уболтать вас сбросить несколько тысяч в год с вашей зарплаты, или сманипулировать вами, чтобы вы задержались и поработали подольше, когда вы могли бы провести это время со своими настоящими друзьями. Также, у вас будут и другие коллеги, которые, учтиво и порядочно, будут предлагать вещи, идущие вразрез с вашими интересами, от “я присвою себе твои заслуги на этом проекте” (возможно, это будет сформулировано чуть короче) до “нам стоит заняться тем, что продвигает мои профессиональные интересы, а не твои”. Не удивляйтесь, когда это случится.
Вы сильно переоцениваете средний по рынку уровень компетентности ваших конкурентов, ориентируясь на тех людей, которые непосредственно вас окружают
Многие их тех, кто сейчас работает старшим программистом, на деле не может написать
FizzBuzz. Занавес. Основной вывод: вы, скорее всего,
достаточно компетентны для того, чтобы работать компании мечты. Пусть они нанимают лучших из простых смертных, но, тем не менее, они нанимают простых смертных.
“Объявление. Резюме. Интервью. Работа.” — скорее исключение, чем правило в процессе найма
О большинстве вакансий никогда не будет объявлено публично, точно так же как и лучшие кандидаты никогда бывают открыто свободны (читайте об этом
здесь). Информация о вакансии распространяется приблизительно со скоростью бокала пива, и иногда смазывается email-перепиской. Кто-то хочет нанять программиста. Он сообщает об этом друзьям и партнерам по бизнесу. Кто-то из них точно знает кого-то подходящего — члена семьи, соседа по комнате из университетской общаги, знакомого с конференции, бывшего коллегу, и т.д. Людей представляют друг другу, случаются встречи, они достигают принципиального соглашения о найме. И только после этого начинаются танцы с резюме/отделом кадров/контрактом и прочими формальностями.
Это особенно правдиво относительно
наиболее стоящих вакансий. Быть первым сотрудником успешного стартапа имеет определенный флер среди айтишников, и ни одна из таких вакансий не была закрыта с помощью резюме, отправленного в отдел кадров, отчасти потому что у стартапа из 2-х человек пока маловато подкожного жира, чтобы организовать отдел кадров. (Скорее всего, вам не стоит стремиться стать первым сотрудником стартапа, лучше станьте последним из со-основателей.) Хотите работать в Google? У них есть официальный процесс, чтобы чуть-чуть вас протолкнуть вперед просто за то, что вас порекомендовал другой сотрудник Google. (Кроме того, у симпатизирующего вам сотрудника Google есть еще порядочно неофициальных способов повлиять на этот процесс. Один из вариантов — купить компанию, в которой вы работаете. Когда у вас есть пара миллиардов в кармане, у вас появляется много интересных способов решения проблем.)
Есть много причин к тому, почему найм происходит приватно. Одна из них — это то, что в ответ на опубликованную вакансию приходит огромное количество нежелательных резюме (особенно при нынешней конъюнктуре) от вопиюще неподходящих людей. Другая — то, что в некоторых компаниях настолько не умеют нанимать, что если со стороны нанимателя никто лично не знаком с кандидатом, они могут запросто принять на работу кого-нибудь, неспособного написать FizzBuzz.
Сетевое взаимодействие — это не только TCP пакеты
Развивать связи значит а) встречаться с людьми, которые однажды могут оказаться вам полезны (и наоборот) и б) производить на них хорошее впечатление.
Есть много мест, где можно познакомиться. Например, отраслевые события, такие как конференции или открытые лекции в университетах. Пользовательские сообщества (user groups) — другой вариант. Имейте ввиду, что эти события привлекают разную аудиторию, и подстраивайтесь соответвенно.
Всегда стремитесь помочь. Это правильное дело, особенно учитывая, что люди имеют тенденцию хорошо запоминать, кто им помог или принял их помощь. Если однажды случится так, что вы сами не сможете помочь человеку, но будете знать кого-то, кто способен решить его вопрос, познакомьте их между собой. Если все делать правильно, эти двое будут счастливы сейчас и расположены помогать вам в будущем.
Знакомиться можно и в интернете, но что-то в нашем унаследованном от обезьяны мозгу придает особенно большое значениe взаимодействию лицом к лицу. Я знакомился с людьми в интернете и затем переводил контакт в реальный мир. Физическое рукопожатие — это большая подвижка в отношениях, даже если во время общения в сети своими советами вы уже помогли кому-то заработать больше. Пишите блог, участвуйте в форумах на Hacker News или на других заметных в вашей отрасли ресурсах, но не забывайте ходить на реальные встречи.
Университеты далеки от реального мира
Ваш средний балл не имеет значения (за редким исключением, как в одном международном рекламном агентстве). Он влияет только на то, будет ли ваше резюме отобрано для приглашения на собеседование. Если вы читали то, что написано выше, то вы знаете, что рассылка резюме — не единственный способ попасть на собеседование, поэтому не тратьте слишком много времени оптимизируя то, что и так работает достаточно хорошо (поскольку со средним баллом в 3.96 вам будут звонить так же часто, как и с 3.8), или то, что вам просто не нужно (поскольку вы умеете находить работу, приглашая правильных людей на кофе).
Специальность и кафедра на которой вы учились не имеют значения. Большинство руководителей в отрасли не знают разницы между информатикой и прикладной математикой. Было дело, я был готов расплакаться от того, что небольшой прокол с учебой поставил под вопрос мою возможность получить более престижную специальность в дипломе. В научном сообществе эти мелочи важны. В реальном мире — нет.
Ваши преподаватели могут знать, как работает рынок труда в научной сфере (в двух словах: он дико неэффективный и запутанный сверх всякого человеческого понимания), но при этом имеют довольно идеалистические представления о том, как это происходит в реальном мире. Например, они могут убеждать вас получать дополнительные специализации, потому что это а) кажется им хорошей мыслью б) им всегда нужны рабы, работающие за Роллтон, для ведения их научной работы. Помните, что рыночная стоимость специалиста, способного вести научную работу $80 — $100 тысяч в год.
Роллтонами на эти деньги можно уесться.
Преподаватель, у которого я писал научную работу, предлагал мне место на кафедре, оплату обучения и аж $12,000 в год в качестве стипендии, если я подпишусь работать с ним следующие 4-6 лет. Это отличное предложение в том, и только в том случае, если вы только что иммигрировали из страны с более низким уровнем оплаты труда и вам нужна поддержка в получении визы.
Если вам очень нравится сама атмосфера в университете, то никаких проблем, накиньте на плечо рюкзак и вы в любое время сможете войти в здание любого университета в Соединенных Штатах. Купить рюкзак намного дешевле, чем остаться работать в науке. В коммерческих компаниях вы тоже сможете работать головой, но при этом там будет меньше политики и вам будут лучше платить. Вы даже сможете публиковаться в журналах, если оно вам нужно. (Поле того, как вас попустит безумная атмосфера научного сообщества, вы можете справедливо начать сомневаться, действительно ли публикация в научном журнале это что-то более значительное, чем, например, публикация статьи в блоге, который читают умные люди.)
Сколько зарабатывают программисты?
Неправильный вопрос. Правильный вопрос: на какие предложения о работе программисты обычно соглашаются? Потому что зарплата — это всего лишь один из рычагов, которые могут использоваться, чтобы вас привлечь. И мой ответ на этот вопрос вам не особо поможет: на всякие.
В целом, крупные компании платят больше (деньги, соц. пакет, и т.д.), чем стартапы. Программисты, знающие себе цену, зарабатывают больше, чем те, кто в себе сомневается. Старшие программисты зарабатывают больше, чем младшие. Люди, работающие в более денежных отраслях, зарабатывают больше, чем те, кто работает в менее денежных.
Люди, умеющие вести переговоры, зарабатывают больше тех, кто в этом не силен.
У нас есть культурное табу никогда на говорить о зарплате. Но это не абсолют. Во многих культурах, о деньгах вполне приемлемо говорить в профессиональном контексте. (Если бы вы были японцем среднего класса, вы бы посчитали уместным рассказать о своих доходах уже на второй встрече кому угодно, от ребят из вашей команды по футболу до повара, который крутит вам суши. Если бы вы были владельцем компании, вы бы, возможно, были более уклончивы говоря о себе, но зарплаты своих сотрудников обсуждали бы так же, как программисты обсуждают компиляторы — достаточно часто и без тени смущения.) Если бы я был марксистом или сторонником теории заговора, я бы предположил, что американская культура была специально заточена под интересы нанимателей и против интересов наемных работников. Прежде чем обсуждать зарплату с потенциальным работодателем, стоит поговорить с кем-нибудь, кто уже работает в этой компании на схожей позиции и уточнить вилку. На дворе <%= Date.today.year %>;, такого человека вполне можно найти в сети (с помощью LinkedIn, Facebook, Twitter или любой другой не-графовой социальной сети).
В том или ином виде программистам обычно предлагают соц. пакет. В Соединенных Штатах имеет смысл побеспокоиться о страховке здоровья (обычно работодатель оплачивает большую часть стоимости) и о пенсионных накоплениях, которые обычно предлагаются в формате “мы доложим в на ваш пенсионный счет сумму, равную той, что вы внесете туда сами, вплоть до максимума в х% от вашей годовой зарплаты”. Что вы получите в результате легко посчитать: х% от годовой зарплаты. (Это дополнительные деньги, поэтому всегда по максимуму пользуйтесь пенсионными программами работодателя. Инвестируйте эти деньги и забудьте о них на следующие 40 лет.)
Есть и другие плюшки, такие как бесплатные напитки, обеды в офис, оплачиваемые книги по программированию, и т.д. Это в большей степени социальные па. Если я предлагаю покупать вам напитки, это в первую очередь говорит о порядках в моей компании и о том, как я буду относиться к тем, кто у меня работает. (Буквально, “я собираюсь вдохновлять неискушенных молодых программистов на трудовые подвиги, проставляя им копеечную газировку и экономя десятки тысяч долларов на оплате труда, одновременно помогая им разрушать свое здоровье”. Я люблю газировку.) Умейте видеть такие социальные па и реагируйте соответвенно. Например, компания, готовая оплачивать обучение своих сотрудников, может оказаться стоящим местом для работы, но не соглашайтесь на существенно более низкую зарплату в замен на то, что вы запросто можете пойти и купить себе сами.
Как мне стать лучшим переговорщиком?
Об этом можно написать целую отдельную статью. Но если кратко, то:
- Помните о том, что вы продаете решение бизнес-проблем (увеличение прибыли и сокраение издержек), а не ваш навык программировать или интеллигентное лицо.
- Ведите переговоры в меру агрессивно и уверенно, как профессионал. С той стороны будут держаться именно так. Если вы стремитесь прийти к взаимовыгодному предложению, не соглашайтесь на все подряд.
- “Сколько вы зарабатывали на предыдущем месте?” понимайте как “подскажите мне причину предложить вам меньше”. Отвечайте соответвенно.
- Всегда имейте на готове контр-предложение. Будьте готовы торговаться чем-то, кроме денег. Если они не могут предложить вам большую зарплату, попросите более длинный отпуск.
- Говорить о деньгах уместно только после того, как вы достигли принципиальной договоренности о переходе. Обычно этот разговор происходит в самом конце, когда они со своей стороны уже вложили довольно много времени и денег в то, чтобы заполучить вас, то есть не на собеседовании. Помните, что не суметь договориться с вами на этом этапе сулит им потери, поэтому они, скорее всего, не будут слишком сильно настаивать на незначительных для компании, но существенных для вас вещах, как если бы вы накинули на их предложение по зарплате несколько тысяч и твердо это отстаивали.
- Прочтите книгу. Их много написано по теме ведения переговоров. Мне нравится «Путь к согласию» («Getting to Yes»). Мысль о том, что неумение вести переговоры стоит вам тысячи долларов ежегодно, может смущать, и поэтому программисты часто не делают направленного усилия, чтобы научиться этому, вместо этого тратя время на игры с какой-нибудь новой технологией.
Сколько стоят акции
Roll d100. (Вы не из этих? Прошу прощения, rand(100).)
0 — 70: Ваши акции не стоят ничего.
71 — 94: Ваши акции стоят сумму, приблизительно равную той, которую вы не заработали, когда пошли работать в стартап, вместо крупной компании с более высокой зарплатой и соц. пакетом.
95 — 99: Стоимость ваших акций существенно изменит вашу жизнь. Тем не менее, вы не будете чувствовать себя богатым, потому что многие из тех, с кем вы плотно работали в последние пару лет, богаче вас по определению. Но зато ваша семья больше не будет вас критиковать за то что вы не пошли работать в $TA_SAMAYA_KOMPANIYA как хороший $NA_KOGO_VAM_PREDLAGAUT_RAVNYATSYA
100: Вы работали в убийце Google и ваше состояние огромно. Поздравляем.
Пытливый читатель заметит, что 100 никогда не будет результатом вызова d100 или rand(100).
Почему ты так скептически настроен о работе за акции?
Потому что вы сильно перееоцениваете вероятность того, что стартап, в котором вы работаете, выстрелит, и очень сильно перееоцениваете кусок пирога, который достанется вам, если это случится. Почитайте об очередности выплат акционерам при ликвидации компании на Hacker News или Venture Hacks, а потом подумайте о том, что люди, которые там об этом пишут, понимают в вопросах венчурных сделок не меньше, чем вы в программировании, и о том, как вы можете наколдовать в коде, когда на кону несколько миллионов долларов.
Стоит ли начинать карьеру в стартапе?
Есть высокая вероятность того, что пару лет вы будете очень тяжело работать, часто и больно обламываться, в конце концов останетесь без работы и будете искать себе новый стартап. Если вы правда хотите поработать в стартапе, поработайте в крупной компании, накопите денег, опыта и связей и через пару лет после окончания университета сделайте свой.
Когда вы работаете в стартапе, вашим кругом общения становятся такие же стартаперы, как и вы сами. Через несколько лет большинство из этих людей не смогут нанять вас. Работая в крупной компании, вы крутитесь среди людей, которые работают в крупных компаниях. Многие из них через несколько лет смогут предложить вам работу сами или порекомендовать вас кому-то.
Так работать в стартапе или нет?
Работа в стартапе это, безусловно, пусть развития карьеры, но в большей степени это образ жизни. Это чем-то напоминает работу в финансовой отрасли или в науке. Это три очень разных подхода к жизни. Многие люди пытаются завлечь вас туда из своих собственных интересов. Если вам искренне нравится жить как стартапер, вперед. Если вам нравятся только некоторые аспекты, то помните, что если очень хочется, то многое можно организовать для себя и так. Например, если вы хотите работать с самыми новыми технологиями, и вместе с тем вам важно быть дома к 5:30, чтобы успевать видеть детей, то вы можете работать с новыми технологиями в огромном количестве крупных компаний.
(Кроме шуток. Если что-то генерирует прибыль, то компании будут в это вкладывать. Конечно, помимо этого они также будут делать огромное количество CRUD-приложений, но стартапы в этом мало отличаются от крупных компаний, разве что у них лучше получается вкусно описать свое CRUD-приложение.) Первый час работы над новой социальной сетью — это попытки сделать CRUD-приложение интересным, все остальное время — это драма развода пары гетеросексуальных мужчин.)
Коммуникация — ваш основной профессиональный навык
Всегда помните о том, что программистов нанимают не для того, чтобы они программировали, а для того, чтобы они приносили пользу бизнесу. Основное качество, которое влияет на то, получите вы работу, или нет —
ваша способность убедить других в том, что вы полезны. При этом быть полезным совсем необязательно.
Многие из лучших программистов, что мне встречались, патологически неспособны поддержать разговор. В результате другие люди а) не хотят с ними работать б) недооценивают их вклад, потому что чтобы что-то узнать о том, что они сделали, об этом нужно поговорить, а те просто не реализуют этот протокол. Обратное тоже верно: люди в среднем думают, что я один из лучших программистов, которых они когда-либо встречали, потому что я а) очевидно, могу программировать б) очень, очень хорошо пишу и говорю.
(Было время, когда я считал себя программистом “чуть ниже среднего”. С тех пор я понял, что я довольно искаженно представлял себе распределение навыков, что навык программирования это не то, на чем стоит сосредотачиваться, и что моя скромность играет против меня. Сегодня, если вы спросите меня, насколько я крут как программист, я скорее всего начну рассказывать вам о том, как писал систему, которая помогла миллионам детей научиться читать или которая помогла компании заработать миллионы. Где я нахожусь со своим навыком программирования на кривой Белла никого не волнует, так почему это должно волновать меня?)
Коммуникация — это навык. Упражняйтесь, и у вас будет получаться все лучше и лучше. Один из важных навыков второго порядка — умение быстро, кратко и уверенно рассказать о том, чем вы полезны, кому-нибудь, кто не разбирается в предметной области и у кого нет причин быть к вам расположенным. Если во время этого упражнения в вашей речи появляются технические термины (“сократил на 200 мс время работы 99 процентов запросов оптимизировав индексы...”), попробуйте еще раз без них. Вы должны уметь объяснить то, что вы делаете, толковому восьмилетке, главбуху вашей компании, программисту другой специальности, или смотрите сами, какая абстракция вам больше всего подходит.
Вам придется заниматься продажами и другими вещами, которых вы надеялись избежать, становясь программистом
Корпоративные продажи — это когда вы приходите в компанию и пытаетесь убедить их потратить шести- или семизначную сумму на ПО, которое либо увеличит их прибыль, лиюо снизит издержки. Всякое собеседование — это корпоративные продажи. Ваши политические и коммуникационные навыки, а также способность строить отношения имеют решающее значение, тогда как ваши технические навыки второстепенны.
Когда вы пытаетесь убедить коллег реализовать ваши идеи, вы тоже продаете. Если делать дело — ваша прямая обязанность, то уметь убеждать людей — ваш основной профессиональный навык. Потратьте время и отточите его. Это значит уметь эффективно перередавать информацию в официальных письмах, по электронной почте, в разговорах один на один, на собраниях и с помощью PowerPoint-презентаций (где это уместно). Это значит уметь написать бизнес-кейс под технологическую инициативу. Это значит понимать, что иногда придется пожертвовать технологичностью ради достижения бизнес-целей, и это правильно.
Ваша скромность работает против вас
У многих программистов есть проблемы с уверенностью в себе. Многие были так воспитаны, что хвастовство своими достижениями не поощрялось. В американской корпоративной культуре такая скромность не ценится. Более правильный тон для интервью и общения можно описать как “уверенный сдержанный профессионализм”.
Если вы работали в команде и ваша команда добилась успеха, не говорите “это не моя заслуга, это была работа команды”, если только вы не находитесь на такой позиции, что всем понятно, что вы врете, чтобы показаться скромным. Попробуйте так: “я был счастлив сделать свой вклад, координируя усилия команды в $VASHA_SPETSIALNOST”. Тренеруйтесь перед зеркалом, пока у вас не станет получаться говорить это с серьезным лицом. Вам может казаться, что вы преувеличиваете свой вклад. Не думайте об этом. Тот, кто заявляет, что координирует оптимизацию производства, на деле являясь упаковщиком бутербродов, преувеличивает свой вклад. А вы программист. Вы делаете свои магические штучки и жизнь людей становится лучше. Если вы отвечали за базу данных на важном проекте, в котором кроме вас участвовали другие люди, то, черт побери, да, вы координировали усилия команды по работе с базой данных и это было критически важно для успеха проекта. Такие правила игры. Если вам от этого как-то не по себе, то вы как бейсболист, который не крадет базы (
кража базы — игровая ситуация в бейсболе — прим. переводчика): вы не высокоморальный, вы просто не умеете играть.
Все бизнес-решения принимаются многоклеточными родственниками шимпанзе, а не следуя правилам и алгоритмам
Люди есть люди. Социальные танцы — это важный навык. Люди часто поддерживают идеи своих друзей, несмотря на то, что другие идеи могут быть лучше. Люди часто более расположены к тем, с кем ели за одним столом. (Есть такая книга, “Никогда не ешьте в одиночку” (“Never Eat Alone”). Возможно, ее стоит прочесть, название не врет.) Люди отдают предпочтение людям, похожим на них самих. (К этому можно относится хорошо, нейтрально или по-разному. Просто принятие этого факта — первый шаг к тому, чтобы извлечь свою выгоду из такого положения вещей).
Ваш внешний вид тоже как минимум имеет значение, потому что к людям
до смешного просто подобрать ключ с помощью таких простых уловок, как одежда, адекватная обстоятельствам, профессиональный внешний вид, уверенный тон голоса и т.д. Ваш костюм будет стоить не меньше нового монитора. Он будет вам нужен крайне редко, но в эти редкие моменты вы будете очень, очень рады, что он у вас есть. Честное слово, если я иду в государственное учереждение одетый в свою повседневную одежду, со мной разговаривают, как с неблагополучным подростком, в то время как когда я одет в костюм, ко мне относятся как к директору мультинациональной компании. На самом деле я неблагополучный подросток, являющийся директором мультинациональной компании, но я сам решаю, на что сделать упор, когда мне предстоит общаться с бюрократами.
(Люди, с которыми я работаю, могут начать возражать, что я лукавлю, говоря о себе как о директоре мультинациональной компании, потому что моя компания не очень похожа на то, что приходит в голову большинству, когда речь идет о “мультинациональной компании”. Ну извините, это простой разговорный трюк. Если вы думаете, что людям не нравятся, когда им таким образом пускают пыль в глаза, я вам скажу что есть еще и такие, которые вообще рьяно ненавидят людей в костюмах. Но это не умяляет ценности костюма. Просто будьте адекватны обстановке. Ответы, верные только технически, — это, кстати, самый лучший тип ответов, когда министерство миграции грозит вам депортацией.
В конце концов, ваше счастье по жизни не зависит от карьерных успехов
Поговорите с людьми постарше или просто поверьте социологам, которые утверждают, что семья, вера, хобби и т.д. более важны для счастья, чем деньги и карьерные успехи. Делайте выводы. Сделать карьеру важно, и прямо сейчас это может казаться самой важной вещью в вашей жизни, но есть вероятность, что с течением времени вы пересмотрите свои взгляды. Работайте чтобы жить, а не наоборот.