По моему опыту, менеджеры и даже сотрудники потенциального работодателя, как правило, во время собеседований подчеркивают приверженность качеству своей компании или своей команды. Меня также регулярно спрашивают о моих навыках работы с инструментами и процессами для улучшения и поддержания качества кода. Также принято писать какой-то код во время собеседования или в качестве задания.
Имея опыт работы с несколькими проектами по сопровождению, мне пришлось на горьком опыте узнать ценность хорошего кода. Это стало очень важным для меня при написании собственного кода. И я не хочу работать в компании, которая не занимается написанием хорошего кода, не говоря уже об определениях хорошего кода.
Однако, как только унаследованный код оказывается на столе, я часто разочаровываюсь, поскольку оказывается, что приверженность качеству кода — это скорее фигура речи. Он, как правило, изобилует простыми ошибками, которые были введены много лет назад, не имеет последовательного форматирования, не имеет последовательных идиом и иногда демонстрирует гротескное непонимание основных методов и принципов кодирования. Я, наверное, проповедую здесь хору :)
Стоит ли сначала попросить потенциального работодателя показать исходный код? В частности, я хотел бы увидеть несколько примеров производственного кода.
Как я могу попросить об этом, чтобы потенциальный работодатель понял мои опасения и действительно позволил мне взглянуть.
Могут ли они отказать по другим причинам, кроме плохого качества кода (конфиденциальность и т. д.)?
Если они откажутся, как мы можем прийти к соглашению, которое устроит обе стороны?
Ради аргумента предположим, что я смогу определить качество кода по довольно небольшой выборке — мой вопрос на самом деле только о том, нужно ли и как это запрашивать. Предупреждать меня о низкой ожидаемой доходности — это хорошо, но не по теме.
Я не соискатель. Ко мне обратились из-за моей квалификации, и я хотел бы оценить, действительно ли я заинтересован. Я не боюсь быть исключенным из гонки. Моя основная цель — выяснить, нравится ли мне еда, не съедая всю тарелку.
Крайне маловероятно, что они предоставят вам образец кода, поэтому на самом деле вам нужно выяснить, как вы можете отвечать на свои вопросы, не видя кода. Вы пытаетесь убедиться, что они ценят хорошие методы кодирования, поэтому спросите их об этом .
Вот несколько примеров вопросов, которые должны помочь вам понять, какое значение компания придает поддержанию качества кода с течением времени. Есть много других вещей, которые вы можете задать в зависимости от вашей ситуации и приоритетов.
РЕДАКТИРОВАТЬ:
Некоторые люди отмечают, что только потому, что интервьюер говорит вам что-то, не означает, что это полностью правда. Их стандарты рецензирования могут не совпадать с вашими, или, возможно, менеджер не так много знает о методах кодирования своей команды, как он думает. Это относится ко всему, что вам говорят на собеседовании, по всем темам, и в определенный момент вы должны полагаться на доверие. Если вы действительно чувствуете себя более комфортно, увидев какой-нибудь код, то, во что бы то ни стало, спросите! Я просто не думаю, что вы можете предположить, что ответ будет да.
Checkstyle
.Если вы поддерживаете код, вы также можете предположить, что код, который вы поддерживаете, будет каким-то образом структурно дефектным.
Просить код для проверки нехорошо, потому что этот код считается конфиденциальным и проприетарным, если только он не был с открытым исходным кодом. Вы можете взглянуть на код с открытым исходным кодом, но если он хорошо написан и хорошо структурирован, нет гарантии, что устаревший код так же хорошо написан и структурирован.
Даже если вам позволили увидеть какой-то проприетарный код, нет никакой гарантии, что этот код на самом деле не является их лучшим шагом вперед.
Если вы брали у меня интервью и попросите показать часть нашего проприетарного кода, я буду считать, что вы не знаете значения слов «конфиденциальный» и «проприетарный», и пропущу вас как кандидата. Зачем мне вообще вас нанимать, если мне нужно беспокоиться о том, какой унаследованный код вы готовы поддерживать?
Просто спроси. Не ставьте ультиматум, что если вы не увидите код, вы выйдете за дверь. Могут быть законные причины, по которым они не могут показать это. Если вы чувствуете, что это нарушает условия сделки, просто откажитесь от следующего собеседования.
Хотя они не продавали коммерческое программное обеспечение, я видел код во время интервью, и мне даже не пришлось спрашивать. Они хотели знать, понимаю ли я это.
Очистка кода всегда будет частью работы. Вам может казаться, что вы придерживаетесь очень высоких стандартов для своих текущих методов кодирования, но через год или около того вы не будете так довольны этим.
Не будь таким суровым. На картинке может быть тысяча слов, но она показывает только одну сторону истории.
Редактировать: я думаю, что ключ здесь в том, что они собираются поставить вас в положение, чтобы писать плохой код. Это может быть причиной того, что текущая кодовая база имеет низкое качество, или это может быть связано с тем, что предыдущие программисты не были такими опытными. Уборка не всегда доставляет удовольствие, но терпимо, если вы знаете, что компания поможет вам успешно и качественно выполнять свою работу.
Не просите копию чего-либо: это просто звучит жутко и неразумно. Не спрашивайте руководство: кодовая база может не соответствовать амбициозным целям текущего руководства. Даже не спрашивайте о тесте Джоэла, так как они могут заявлять о вещах, которых на самом деле у них нет.
Но попросите сесть с существующим разработчиком для ознакомления с кодовой базой и набором инструментов, а также с текущими проблемами. Это разумная просьба, не исключительно необычная. В это время вы можете спросить о проблемах с обслуживанием кода. Если кодовая база плохая, вы об этом узнаете довольно быстро. Если все хорошо, вы установили взаимопонимание с командой.
Вы говорите, что не считаете себя кандидатом и не боитесь быть отвергнутым, но настаиваете на использовании термина «потенциальный работодатель»; вам нужно изменить свой фокус.
Вы хотите работать в качестве подрядчика. Они не потенциальный работодатель; они потенциальный клиент.
Ни один подрядчик по благоустройству дома не даст оценку, не увидев место работы, условия и не понимая, какие риски связаны с этим. Вы, как подрядчик по улучшению кода, должны выполнить те же действия.
Один из подходов состоит в том, чтобы взять одно-двухнедельное задание, чтобы изучить ситуацию и оценить, что им нужно и сколько это будет стоить. Если вам не нравится ситуация, предлагайте высокую цену или отказывайтесь браться за работу.
Вы, конечно, подпишете любые соглашения о конфиденциальности, которые они потребуют.
Примечание: даже если бы я предложил вам стать сотрудником, я исключил бы вас из рассмотрения, если бы вы настаивали на доступе к моей кодовой базе. Но если бы я хотел нанять вас в качестве подрядчика для достижения конкретной цели, я бы ожидал, что вы проявите должную осмотрительность.
Я бы попытался поговорить с будущими коллегами . Желательно больше одного.
Настоящие программисты с большей вероятностью, чем их менеджеры, расскажут вам повседневную правду, а не видение того, где компания, как мы надеемся, будет в будущем. Вы также можете сравнить мнения нескольких коллег, чтобы еще больше отделить факты от желаемого за действительное.
Еще одним преимуществом является то, что люди, с которыми вы работаете, также очень важны для вашего удовлетворения от работы, поэтому вы все равно хотите с ними встретиться.
Просто задайте несколько вопросов, взятых из теста Джоэла :
Как уже говорили другие, вы можете сравнить их с помощью нескольких простых вопросов, но я действительно понимаю, откуда вы пришли... Из личного опыта.
Люди тут же говорят кучу всякой всячины, которую либо не знают наверняка, либо отвечают, не понимая вопроса. Что-то вроде теста Джоэла действительно здорово, но только если они понимают вопрос и технологию (и если они не лгут отморозки).
Утвердительный ответ на вопрос «Используете ли вы систему управления версиями?» на самом деле может быть так же ужасно, как «мы работаем с FTP и резервируем это в CVS в конце месяца». Если этот материал важен для того, собираетесь ли вы работать с этими людьми или (возможно, что более важно) сколько вы собираетесь брать с них, чтобы компенсировать их некомпетентность, вам нужно выяснить это путем непосредственного наблюдения . Люди, которые не заключают контракты с разработчиками программного обеспечения, вероятно, этого не поймут.
Но профессиональные люди понимают оценку риска . Это все, чем ты здесь занимаешься. Объясните это, скажите, что вы счастливы подписать [хорошее, не смешное] соглашение о неразглашении, и если они откажутся, заставьте их взять на себя риск, сославшись на самый худший сценарий (или его фактор). Вот как любая другая отрасль управляет этим.
Я не говорю, что вы не должны также сравнивать их с такими тестами, как тест Джоэла. Просто убедитесь, что вы увидели, что важно для вас, прежде чем что- то делать.
По моему опыту, менеджеры и даже сотрудники потенциального работодателя, как правило, во время собеседований подчеркивают приверженность качеству своей компании или своей команды.
Считается, что каждый работодатель стремится к качеству. Тем не менее, существуют тонны дрянного программного обеспечения и существует множество нарушений безопасности.
В общем, вы смешиваете напыщенность деловой речи, потому что фраза «мы стремимся к качеству» в конечном итоге является расплывчатым утверждением. Чье качество? Что такое эталон? Это просто дерьмо, созданное для того, чтобы вы чувствовали себя прекрасно.
В общем, все, что вы услышите во время собеседования, будет — за неимением лучшего термина — «ложью во спасение», созданной для того, чтобы вы почувствовали, что потенциальный работодатель — лучший выбор, который у вас есть.
Мой совет? Скорее всего, вы никогда не увидите производственный код, пока не окажетесь в самой компании. И если это не соответствует вашим стандартам, просто продолжайте искать новый концерт.
Суровая реальность такова, что многие компании имеют дрянные системы, дрянное программное обеспечение и дрянные практики. И это связано с тем фактом, что этот тип компьютерной работы «невидим» для большинства, и большинству людей это сойдет с рук.
Все очень просто: предложите подписать соглашение о неразглашении (NDA) . Это юридически (но не технически) не позволит вам использовать их код в ваших собственных проектах.
Кроме того, убедитесь, что ваш запрос звучит логично. Делайте запрос только на те фрагменты кода, которые вам нужны . Это поможет направить обсуждение проекта и сделать ваш запрос разумным.
Спросите о:
Я говорю ... «не тратьте время на компании, которые каким-то образом ожидают, что вы «напишете код» импровизированно. Если они действительно не верят, что вы действительно можете написать исходный код на {вставьте здесь язык программирования}, почему- черт возьми, они пригласили вас на собеседование?
Теперь – только что сказав это – я также должен признать, что «есть самозванцы». И есть также причины, по которым компании научились проводить поверхностную проверку криминального прошлого каждого кандидата...! (Я мог бы сейчас рассказать вам истории, но не буду.)
Так что - решать вам, я думаю. «Насколько сильно ты хочешь эту работу?»
Вы не можете, как в других ответах.
Однако у вас больше шансов получить от них согласие сообщить вам идентификаторы пользователей некоторых из их программистов, у которых есть учетные записи в StackOverflow и Programmer.
Глядя на проблемы, с которыми сталкиваются их сотрудники, вы получите некоторое представление о том, на что похож их код.
джморт253
джморт253
джморт253
Careerasaurus.com