Как Я Устроился На Работу В Stack Exchange

От переводчика Вот перевод сообщения в блоге Коды Хейни .

NET .

Автор блога Дэвид Хейни работает техническим менеджером в Stack Overflow. Пару лет назад я уже переводил одну его статью: Путаница с названиями должностей .

Около месяца назад я разговаривал по видеосвязи с Джоэл Спольски (автор известного блога «Джоэл о программном обеспечении», сооснователь Stack Overflow — прим.

пер.

).

Даже сейчас кажется абсурдным писать что-то подобное.

В течение долгого времени, на протяжении всей моей карьеры, я регулярно читал Джоэла Спольски и разделял многие его взгляды на развитие.

И вдруг я общаюсь с глазу на глаз.

Завязать этот разговор было далеко не легко.

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

очень много интервью.

Сколько, спросите вы? До Джоэла я разговаривал с 5 или 6 другими замечательными людьми (включая Марк Гравелл и Николас Ларсен).

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

Разговор длился около часа, но для меня он пролетел за 5 минут – наверное, от волнения.

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

Даче (мой кеш с открытым исходным кодом) и еще несколько тем.

Затем Джоэл сказал нечто потрясающее: «Присоединяйтесь к нам на Stack Exchange!» В этот момент я почувствовал такой сильный прилив адреналина, что смог поднять машину голыми руками.

Через несколько дней я официально приступил к работе.

Я рад такой возможности и считаю, что мне очень повезло.

На данный момент Stack Exchange зарекомендовала себя как невероятно опытная и профессиональная организация, которая относится к сотрудникам как к людям, а не как к расходным ресурсам, и мне полюбились здешние социальные обычаи.

ВАЖНЫЙ: Прежде всего, высказанная позиция является исключительно моей, а не позиции Stack Exchange или третьих лиц.

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

Это не «срыв покровов» и не намек на облегчение пути.

Если вы хотите работать здесь, вам придется пройти те же тесты (подробности которых я не буду раскрывать), которые прошел я.

С этим отказом от ответственности, вот мои мысли о том, как я получил работу в Stack Exchange и как вы можете сделать то же самое: Эго — убийца разума, поэтому убейте эго.

У большинства разработчиков (в том числе и у меня - бывшего) есть массивное "Я".

Их эго настолько велико, что едва помещается в комнате.

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

Мы начинаем чувствовать себя очень сильными.

Досконально изучив стек технологий компании, мы делаем вывод, что знаем всё о любом программном и аппаратном обеспечении.

Думать, что вы знаете все, — это самый простой способ облажаться программисту.

Поверив в это, вы больше не изучаете новые продукты (вы их уже знаете).

Пока вы осваивали ASP.NET MVC 3 на своей нынешней работе, были выпущены 4-я, а затем 5-я версии фреймворка.

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

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

Кстати, я упоминал о тех вещах — Ruby и PHP или даже Java — о которых вы никогда не писали ни строчки? А как насчет MongoDB, Couchbase, Azure, EC2 и тысяч других платформ и языков программирования? Надеюсь, теперь вы понимаете, что ваши знания языков и конфигураций оборудования — это капля в море.

может быть, 0,1% всех знаний в области разработки.

Я знаю столько же, и это нормально.

Не будь рок-звездой.

Я делал это несколько лет, что только навредило моей карьере.

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

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

Компании ищут и нанимают рок-звезд, а рок-звезды воспринимают это как должное.

Они раздувают свое эго и напыщенно спорят на собраниях, перебивая и отталкивая других.

Они рассуждают в духе: «Я прав, потому что ты неправ, потому что я прав».

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

а другие ненавидят работать с таким человеком.

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

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

Хорошему разработчику не нужно хвастаться; его результаты скажут сами за себя красноречивее любых слов.

Естественно, окружающие оценят такого человека.

Пустые разговоры на тему «вау, он очень умный» или «она сделала это за час, а мы думали, что это займет несколько дней» станут сильнее, и это неплохо.

Позвольте людям говорить о вас все, что они хотят, но сохраняйте смирение и чувство реализма.

Вы можете быть лучшим разработчиком в команде или даже компании, но вы остаетесь человеком и продолжаете работать.

Никто здесь не был нанят для обслуживания вашего эго (даже те, чья основная работа работает на вас).

Тот факт, что вы хороший разработчик, не делает вас лучше; это просто сделает вашу карьеру более успешной.

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

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

По моему опыту, это очень редкое сочетание и мечта многих компаний о подборе персонала.

Даже если вы лучший (и это круто!) из всех, перестаньте хвастаться перед другими.

Им все равно, и вам тоже.

Знайте, что вы знаете достаточно, чтобы понять ограниченность своих знаний.

(оригинал знай, что ты знаешь достаточно, чтобы знать, что ты недостаточно знаешь - прим.

перев.

).

Осознавайте, что вы знаете, а что нет. Никогда не бойтесь сказать «Я не знаю», когда это правда.

Разработчик, который не стесняется сказать «Я не знаю» перед комнатой, полной людей, встречается редко.

Будучи честным, вы укрепляете доверие и авторитет. Вы также развиваете позитивные отношения с коллегами и компанией.

Если вы никогда не слышали об Angular.js или Couchbase, никто не вспомнит, но люди всегда будут благодарны, если вы не потратили зря их время и деньги.

Знайте свои структуры данных и алгоритмы.

Языки программирования высокого уровня, такие как C#, настолько абстрактны, что многие из нас понятия не имеют, что на самом деле происходит «под капотом» при запуске программы.

Замечательно использовать LINQ повсюду, но знаете ли вы вычислительную сложность того, что вы написали? Знаете ли вы, что такое хеш-таблицы и зачем они нужны? Можете ли вы отсортировать массив наиболее эффективным способом? Можете ли вы представить себе сценарий, в котором лучшим вариантом будет использование стека? Обратите внимание — вам не нужно запоминать такие вещи, как алгоритмы сортировки (черт возьми, я бы не смог, даже если бы попытался), но знание структур данных очень ценно: деревья, хеш, списки, очередь, стек; в сочетании с элементарными концепциями сортировки, поиска и кэширования.

В этом разница между хорошими и отличными программистами.

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

Эти основные принципы применимы ко ВСЕМ языкам программирования.

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

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

Узнайте, почему ваш код работает и почему ваш код не работает. Вы видели это изображение на Reddit и подобных сайтах?

Как я устроился на работу в Stack Exchange

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

Отличный разработчик стремится узнать, ПОЧЕМУ все работает так, как оно работает, а не только КАК это исправить.

Код не компилируется? ПОЧЕМУ? Состояние гонки? ПОЧЕМУ? Задавая вопросы «почему», вы расширите свой кругозор и набор навыков за пределы прагматичного «как», что позволит вам стать лучшим программистом.

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

Они просто делают новые и интересные ошибки! Я помню дни, когда я писал дрянной код, а затем копировал строки из Stack Overflow и подобных сайтов до тех пор, пока код не начал работать (хотя я не был уверен, как и почему это произошло).

Те дни остались далеко позади.

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

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

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

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

Создать ошибку или совершить ошибку — это нормально, но повторять одну и ту же ошибку несколько раз — нет! Итак, я описал вам свой набор навыков и ключевых компетенций — то, что показал команде Stack Exchange во время собеседования.

Я не мог дать точный (или оптимальный) ответ на каждый технический вопрос, но я был скромным и никогда не боялся попросить о помощи или сказать «Я не знаю», когда что-то застревал.

Мои ответы включали эффективные структуры данных и алгоритмы, и я смог объяснить, почему именно эта структура была лучшим выбором для решения проблемы.

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

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

Теги: #интервью #карьера #Stack Exchange #Джоэл Спольски #Карьера в ИТ-индустрии

Вместе с данным постом часто просматривают: