The following text is a partial translation of the original English article, performed by ChatGPT (gpt-3.5-turbo) and this Jekyll plugin:
Каждый день я получаю несколько писем от программистов, заинтересованных в удаленной работе с Zerocracy. Обычно я первым задаю вопрос “какая у вас ставка?” (мы платим почасово). Меня удивляет, насколько часто люди неправильно оценивают свою стоимость, в обе стороны.
Я слышу самые разные цифры, от 5 до 500 долларов в час. Я никогда не отказываю, но обычно сам придумываю свою оценку почасовой ставки. В этой статье я объясняю, какие факторы я учитываю и не учитываю. Это мои личные критерии; не считайте их стандартом в отрасли. Хотя я считаю их объективными и логичными - позвольте мне объяснить.
Это первая и самая важная характеристика разработчика программного обеспечения. Вы вносите вклад в проекты с открытым исходным кодом? У вас есть собственные библиотеки с открытым исходным кодом, которые используются сообществом? Вы пишете код, который является общедоступным и используется?
Если у вас здесь нечего показать, я вижу три возможные причины.
Во-первых, вы “слишком застенчивы, чтобы поделиться” своим кодом, потому что “он ужасен”. Очевидно, это нехороший знак. Не потому, что ваш код может быть плохим, а потому, что вы не достаточно смелы, чтобы столкнуться с этим фактом и улучшить его. В наших командах мы уделяем большое внимание качеству кода, и большинство наших новых членов команды удивляются тому, насколько высокие у нас требования к качеству. И вы тоже будете удивлены. Вопрос в том, сможете ли вы адаптироваться и улучшиться или вы сдастесь и уйдете. Если вы никогда не делились своим кодом раньше и никогда не сталкивались с негативной обратной связью, вам будет неприятно работать в наших проектах, где требования к качеству очень высоки.
Вторая возможная причина заключается в том, что вы работаете с девяти до пяти, за еду, “без страсти”. На самом деле, никто этого не признает прямо. Вместо этого я часто слышу что-то вроде “моя компания не платит мне за вклад в открытый исходный код, а дома я хочу проводить время с семьей”. В современной разработке программного обеспечения большая часть кода, с которым мы работаем, является открытым исходным кодом - библиотеки, фреймворки, инструменты и т. д. Почти все, что вы используете в своих коммерческих проектах, является открытым исходным кодом. Зарабатывая свою зарплату, ваш работодатель уже инвестирует в продукты с открытым исходным кодом, потому что вы являетесь активным пользователем этих продуктов. Проблема в том, что вы не заинтересованы в более активном участии в этом вкладе. Я вижу это как отсутствие страсти и самомотивации. Будете ли вы эффективным разработчиком в наших проектах? Совсем нет, потому что наша вся модель управления основана на самомотивации.
Последняя возможная причина заключается в том, что вы не знаете, что писать и куда вносить вклад, что означает отсутствие креативности. Как я уже упоминал выше, почти все, что мы используем сейчас, является открытым исходным кодом, и эти инструменты полны ошибок и не реализованных функций. В то же время вы не видите областей для улучшения? Вы не знаете, что можно сделать лучше? Вы не можете хотя бы найти, сообщить и исправить одну ошибку в каком-то продукте с открытым исходным кодом, который вы используете каждый день? Это означает, что вы не сможете найти области для улучшения и в наших проектах, в то время как мы полагаемся на вашу способность находить проблемы творчески.
Таким образом, если ваш аккаунт на GitHub пуст, и ваше резюме не указывает вас как “активного участника ядра Linux” (да, почему бы и нет?), я тут же теряю интерес. С другой стороны, когда я вижу проект с более чем 100 звездочками в вашем аккаунте на GitHub, я восхищаюсь и готов предложить более высокую ставку.
Обычной практикой является выплата более высоких ставок тем, кто живет в более дорогих странах. Когда я получаю резюме от программистов из Сан-Франциско, их ставки составляют $70+ за час. Те же навыки и опыт в Карачи обходятся в $15-20. Причина здесь заключается в стоимости жизни — она намного выше в США, чем в Пакистане.
Однако, мне не кажется, что эта причина логична. Если вы ездите на более дорогом автомобиле, нам придется платить вам большую зарплату? То же самое касается места проживания. Вы выбрали страну, в которой живете. Вы пользуетесь всеми преимуществами развитой страны, и платите за них. Это ваш выбор. Вы решили потратить больше денег на качество своей жизни — что это имеет общего со мной?
Хотите заплатить $30 за обед? Станьте лучшим инженером. Пока что купите хот-дог за несколько баксов. Просто сказать “Я уже здесь, и мой обед стоит $30” не является аргументом.
Таким образом, чем дороже место, где вы живете, тем меньше денег остается в вашем кармане. Для нас это означает, что $100 будет стимулировать программиста из Карачи гораздо сильнее, чем ту же самую сумму $100 будет стимулировать ту же самую личность, если она живет в Сан-Франциско. Поэтому мы предпочитаем работать с людьми, у которых расходы ниже. Наши деньги просто будут работать лучше.
Мы все знаем, что Stack Overflow существует, но очень мало людей (удивительно мало!) активно вносят свой вклад в него. Если ваш профиль там пустой (или у вас его вообще нет), то я понимаю, что 1) у вас нет вопросов для задания и 2) у вас нет ответов.
Во-первых, если вы ничего не спрашиваете там, вы не развиваетесь. Ваш процесс обучения остановился какое-то время назад, вероятно, сразу после того, как вы получили офисную работу. Или может быть, вы слишком застенчивы, чтобы задавать вопросы? Или не можете описать свои вопросы точно и ясно? Или, может быть, у вас уже есть ответы на все вопросы? В любом случае, это грустно.
Во-вторых, если вы не отвечаете, значит, у вас просто нет, о чем сказать. В большинстве случаев это означает, что вы не решаете сложные и уникальные проблемы. Вы просто соединяете известные компоненты и получаете свою зарплату.
Очень часто я слышу от людей, что они решают большинство своих проблем, обратившись к коллегам, сидящим рядом с ними в офисе. Они говорят, что им не нужен Stack Overflow (или аналогичные ресурсы, если они существуют), потому что их команда настолько великолепна, что на любой вопрос можно получить ответ внутри организации. Это хорошо для команды, но плохо для вас. Почему? У вас нет очень важного навыка - находить ответы в открытом интернете. В наших проектах мы не поощряем горизонтальное общение между программистами, и вы не сможете получить помощь от кого-либо. Вы останетесь один на один и потерпите неудачу, потому что вы привыкли быть охраняемым кем-то старшим в своем офисе.
Stack Overflow - это не только индикатор вашего ума и количества голосов, которые вы получили за “лучшую шутку о программировании.” Это доказательство того, что вы можете находить ответы на свои вопросы, общаясь с людьми, которых вы не знаете. Это очень важный навык.
“Я пишу на Java уже 10 лет!” - и что? Это число означает для меня только одно - вы сумели выжить в каком-то офисе в течение десяти лет. Или, может быть, в нескольких офисах. Вы смогли убедить кого-то, что он должен платить вам за десять лет сидения в его здании. Это означает, что вы писали что-то полезное? Это означает, что ваш код был идеальным? Это ничего не означает.
Опыт работы в течение многих лет - это ложный показатель. На самом деле, он может работать против вас, в сочетании с другими указанными выше показателями. Если в вашем резюме указано, что вы только начали программировать два года назад, а ваши учетные записи GitHub и Stack Overflow пусты - всё равно есть шанс на улучшение. Вы только начинаете свою карьеру. Однако, если в вашем резюме указано, что вы “опытный архитектор со стажем 10 лет” и у вас нет ни одного вклада в открытый исходный код - это значит, что вы либо лжете о тех десяти годах, либо вы совершенно бесполезны в качестве архитектора.
Мой посыл заключается в том, что аргумент “опыт работы в течение многих лет” следует использовать очень осторожно. Используйте эту карту только при наличии других заслуг. В противном случае, оставьте это при себе.
Oracle, Zend, Amazon, IBM, MySQL и т. д. - речь идет о таких сертификациях. Чтобы их получить, вам нужно сдать экзамен. Не простой и не онлайн. Это настоящий экзамен, который сдают в центре сертификации, где вы сидите перед компьютером несколько часов без книг и доступа в Интернет, отвечая на вопросы. Довольно унизительная деятельность для уважаемого разработчика программного обеспечения? Действительно. И есть высокая вероятность неудачи, что также довольно неловко.
Это очень хороший знак, если вам удалось пройти через это. Если вы сделали это несколько раз, то еще лучше. Однако, если вы не получили ни одной сертификации за всю свою карьеру, это может быть по одной из следующих причин:
Во-первых, вы боитесь проиграть. Серьезная сертификация может стоить несколько сотен долларов (я заплатил более 700 долларов за SCEA), и вы не получите возврата, если не сможете сдать экзамен. Если вы боитесь проиграть, значит, вы боитесь сражаться. Это означает, что вы уклонитесь от реальной ситуации, где требуется решить сложную проблему.
Во-вторых, вы не инвестируете в свой профиль. Скорее всего, это означает, что вы не хотите менять компании и предпочитаете найти спокойный офис, где можете остаться навсегда. Я помню, я однажды сказал своему другу: “ваше резюме значительно улучшится, если вы сдадите эту сертификацию”. Он ответил со смехом: “Я надеюсь, мне больше не понадобится резюме, мне нравится эта компания”. Такое отношение очень выгодно для компании, в которой вы работаете, но оно точно работает против вас.
По моему опыту, лучшие игроки в команде - те, кто работает для себя. Здоровое индивидуализм - это ключевой фактор успеха. Если вашей основной целью является заработок для себя (деньги, репутация, навыки или знания), вы будете очень эффективны в наших проектах. Сертификации в вашем профиле являются показателем этого здорового индивидуализма, которого мы ищем.
Чем больше технологий или языков программирования вы знаете, тем меньше вам стоите. Я не говорю, что невозможно быть экспертом во многих областях одновременно - это вполне возможно. Но позвольте мне дать вам прагматическую причину, почему вы этого не должны делать - конкуренция. На рынке есть тысячи “программистов Java7” - мы легко можем выбрать того, кто нам нужен. Но “программистов Hadoop” или “дизайнеров XSLT” не так уж и много.
Если вы сосредоточитесь на какой-то конкретной области и станете экспертом в ней, ваши шансы найти работу будут ниже, но вознаграждение будет больше. Обычно мы вынуждены платить больше узкоспециализированным специалистам, преимущественно потому, что у нас нет выбора. Если проект, над которым мы работаем, требует эксперта по Lucene, мы найдем подходящего человека и сделаем все возможное, чтобы привлечь его к сотрудничеству. Сделать все возможное в большинстве случаев означает повышение цены.
Таким образом, когда я слышу, что вы “опытны в MySQL, PostgreSQL, Oracle и SQLite”, я понимаю, что вы знаете очень мало о базах данных.
Я думаю, очевидно, что иметь блог (о программировании, а не о вашей любимой кошке) - это положительный фактор. Еще лучше быть иногда докладчиком на конференциях или митапах. Когда это блог, я обращаю внимание на количество комментариев, которые люди оставляют к вашим статьям. Если это конференция, самым важным критерием является то, насколько сложно было попасть в список докладчиков.
И блог, и презентации на конференциях делают вас намного более ценным специалистом. Прежде всего потому, что эти вещи показывают, что некоторые люди уже рассмотрели вашу работу и ваш талант. И это было не только одним работодателем, но группой других программистов и инженеров. Это означает, что мы также можем полагаться на ваши мнения.
Кроме того, если вы пишете и регулярно выступаете, то у вас есть очень важный навык/талант - вы можете излагать свои идеи “усваиваемым” образом. В наших проектах мы не приветствуем неформальные коммуникации и вместо этого используем системы учета обращений. В этих обращениях вам придется объяснять свои идеи, вопросы или опасения так, чтобы все могли вас понять. Без достаточных навыков презентации вы не выживете в своих проектах.
Кстати, некоторые разработчики программного обеспечения даже подают патенты на свое имя - почему бы вам не сделать это? Или, может быть, даже издать книгу. Почему бы и нет?
Я обычно не обращаю много внимания на этот раздел вашего резюме. Наша модель управления настолько отличается от всего, что вы можете видеть где-либо еще, что не имеет значения, сколько раз вас увольняли раньше и какую вы занимали/занимаете должность у своего основного работодателя. Даже если ваше звание “CTO Twitter” - это для меня ничего не значит.
Мой опыт говорит мне, что чем больше компания и выше должность в ней, тем дальше вы находитесь от исходного кода и реальных технических решений. Вице-президенты и технические директоры проводят большую часть своего времени на управленческих совещаниях и внутренней политике.
Меня гораздо больше интересует, что вы делали за последние несколько лет, чем где вы это делали и как вас называли во время этого.
BSc, MSc, PhD… нам это важно? Не совсем. Образование очень похоже на “предыдущее место работы”, упомянутое выше. Не имеет особого значения, где именно вы провели эти пять лет после школы. Важно то, что вы делали в этот период времени. Если у вас нет ничего сказать о вашей активности в университете, то что мне скажет его название?
Хорошо, конечно, если это Стэнфорд или Массачусетский технологический институт, это будет иметь значение. В этом случае я вижу, что вы смогли пройти их требования к окончанию и найти деньги для обучения там. Это хороший знак и определенно повысит вашу почасовую ставку. Но если это какой-то университет “мамбо-джамбо” из ниоткуда (как тот, в котором я учился), лучше оставьте эту информацию при себе.
Мы с удовольствием платим от 100 долларов в час эксперту, владеющему несколькими популярными продуктами с открытым исходным кодом; имеющему рейтинг Stack Overflow выше 20 тысяч; обладающему сертификатами, статьями, презентациями, а может быть, даже патентами.
Мы платим от 50 долларов в час профессиональному программисту, который имеет собственные проекты с открытым исходным кодом или является активным участником; рейтинг Stack Overflow превышает 5 тысяч; пишет о разработке программного обеспечения; обладает несколькими сертификатами.
Мы платим от 30 долларов в час программисту, который регулярно вносит вклад в открытый исходный код; активен на Stack Overflow; имеет некоторые сертификаты.
Мы платим 15 долларов в час остальным.
Не поймите меня неправильно и не принимайте эти числа на свой счет. Ваша ставка - это измеряемая метрика вашего профессионального уровня, а не вашего лично. Кроме того, уровень не является статическим, он меняется каждый день, и это полностью зависит от вас.
Я написал эту статью в основном для того, чтобы вас мотивировать к росту.
Все эти критерии применимы к новым участникам наших команд. Как только вы начнете писать код, мы измерим вашу производительность, и у вас могут быть совершенно другие цифры, см. Как рассчитывается почасовая ставка.
Кстати, иллюстрации, которые вы видите выше, созданы Андреей Миронюк.
Translated by ChatGPT gpt-3.5-turbo/42 on 2023-12-27 at 05:03