Потенциальный работодатель просит образец кода

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

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

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

Ответы (5)

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

Поскольку вы представили свой собственный код, а не образец компании, вы должны получить некоторые другие мнения о вашем коде. Code Review Stack Exchange — один из вариантов. Если у вас есть друзья, которые также являются разработчиками программного обеспечения, они тоже могут помочь. Если вы работали над проблемой, предоставленной компанией, вы должны спросить их, прежде чем передавать код кому-либо еще, поскольку они могут не оценить потенциальные решения своих проблем с кодированием, размещенные в общедоступных местах, даже если решение не соответствует их стандартам. .

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

Если компания не предлагает проблем, вы можете найти примеры. Вы можете перейти на Project Euler , Programming Praxis , TopCoder или Programming Puzzles и Code Golf Stack Exchange . Создайте репозиторий GitHub и потратьте столько времени, сколько считаете нужным, на разработку некоторых примеров. Что разумно, зависит от вас. Поскольку это общедоступные образцы, я бы последовал моему совету, приведенному выше, — попросите других людей просмотреть и оставить отзыв.

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

«Code Golf Stack Exchange» для мазохистов.
@gnasher Возможно, но я не говорил, что ты должен там участвовать. Некоторые вопросы интересны и могут быть решены и добавлены в общедоступный репозиторий.
Я согласен с запросом на обратную связь. Что именно они ищут? Конкретная демонстрация концепции, форматирование, документация, все вышеперечисленное. Мне кажется странным, что разработчик носит с собой набор кода, но я не разработчик, так что....

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

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

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

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

Для начала изучите Git и настройте себе репозиторий Github . Как только вы это сделаете, просто придумайте какой-нибудь проект, которого на самом деле не существует, и начните писать код. Взгляните на некоторые образцы проектов Microsoft, чтобы найти идеи. Затем вы делитесь этим портфолио со всеми, кому вы хотите его иметь. В любом случае, это также, вероятно, будет найдено в Google.

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

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

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

Джефф Этвуд (один из основателей Stack Exchange) хорошо сказал :

[портфолио] часть должностной инструкции графического дизайнера, но почему это правило не должно применяться и к разработчикам программного обеспечения? ... Любой может составить шаблонный текст резюме, полный напористых глаголов и причудливых ключевых слов. Бла-бла-предприятие, бла-бла, стратегическое бла-бла, архитектор, бла-бла. Преимущества принципа «показывай, а не рассказывай» гораздо более убедительны.

Я думаю, что ОП спрашивает, что такое «хороший» образец кода и что ищут работодатели. Вместо того, как доставить код.
Вот что я пытаюсь донести. Спасибо, что дали мне знать, что я этого не сделал. Я отредактирую, чтобы уточнить.
Есть разница между художниками и программистами. Когда я сделал профессиональные фотографии, фотограф спросил меня, может ли он использовать фотографии в демонстрационных целях. Программист спрашивает, может ли он поделиться фрагментами кода, а тем более менее значимыми проектами, за пределами компании? Это будет редко летать. Другие варианты, которые вы представляете, требуют больших затрат времени. Если я работаю минимум 40 часов в неделю, мне не хочется больше идти домой и сидеть за компьютером. У меня есть друзья и семья, с которыми я могу проводить время, а также хобби, не связанные с программированием.
Карьерный рост и повышение жизнеспособности занятости — это не хобби. И нигде я не предлагал делиться значимыми проектами вне компании. Наоборот.
@ChristopherEstep Вы предложили создать репозиторий GitHub и участвовать в Open Source. После изучения новых инструментов и технологий и написания проприетарного кода более 40 часов в неделю мне не нужно идти домой и проводить еще больше времени перед своим компьютером, чтобы продемонстрировать потенциальным работодателям, что я могу писать код для того, чтобы получить работу.
@ChristopherEstep Я предоставил ссылку на репозиторий github, как они получили доступ к коду. Данные (JSON) были получены из общедоступного API. Вариант с открытым исходным кодом, безусловно, то, что я могу рассмотреть.
Да, @ThomasOwens, ты это уже говорил. Я понял. Вы хотите оставить работу на работе. Вы тоже не одиноки, я уверен. Но (как я уже упоминал в своем ответе), есть уважаемые эксперты, которые считают портфолио необходимым. Найдите в поиске «портфолио программиста» еще больше примеров. Я не исключение здесь с этим мнением.
Я не согласен с теми экспертами или компаниями, которые ожидают, что у вас будет портфолио. Сохранение потребности в портфолио для программистов оказывает медвежью услугу профессии.
Я думаю, что это очень хороший ответ. Такие области, как наука о данных, чрезвычайно конкурентоспособны. У всех есть степень магистра или доктора философии, но солидное портфолио действительно выделяет вас. Кроме того, @Thomas Owens, я бы сказал, что портфолио, особенно проекты с открытым исходным кодом, продвигают вперед такие области, как наука о данных.
Если вы выберете проект с открытым исходным кодом, потенциальному работодателю может не понравиться ваш выбор, и он может не захотеть просматривать проект, чтобы найти части, над которыми вы работали. Однако работа над одним из них может быть хорошим практическим способом развить свои навыки, особенно когда речь идет о работе с другими участниками, а не только о сольном проекте.
Проблема в том, что ваш работодатель, вероятно, владеет кодом, который вы создаете в нерабочее время, если только он не имеет никакого отношения к вашей основной работе.
@Пепон наверное? Не в США. Очень немногие имеют договоры о найме. Никто не предлагает ему выполнять свою работу у своего работодателя. За 30 лет мне только запретили делиться секретами или соревноваться. У меня никогда не было работодателей, которые даже предлагали, чтобы они могли владеть работой, созданной в мое свободное время.
@ChristopherEstep Трудовое законодательство США происходит от общего права, также известного как Закон о господах и слугах, проверьте ваш контракт.
@ThomasOwens Если проект не был с открытым исходным кодом и на нем указано ваше имя. У моей прошлой компании было множество проектов с открытым исходным кодом на git, и если вы внесли свой вклад, я не понимаю, почему вы не можете публично объявить об этом.
@Dan Я хочу сказать, что это относительно небольшое количество людей и такой небольшой объем кода. Большая часть программного обеспечения не является открытым исходным кодом, а некоторые компании разветвляются и не открывают исходный код.
@ChristopherEstep Мне несколько раз приходилось бороться с контрактами, чтобы удалить пункты, которые помещали бы все , что я делал, особенно в любое время (в одном случае это было без ограничения по времени даже после окончания работы), на любом устройстве (независимо от того, кому принадлежит устройство) в собственности работодателя. Это было в Техасе. Я всегда получал это, но я знаю, что некоторые коллеги не спрашивали. Я не знаю, будет ли это иметь законную силу, но это было в контрактах.
@ChristopherEstep «есть уважаемые эксперты, которые считают портфолио необходимым». Джефф Этвуд, которого вы назвали «экспертом», в каком смысле здесь эксперт? Эксперт по найму людей? Эксперт в том, чтобы рассказывать людям через свой блог, как им следует поступать?

Прошу более конкретных отзывов. Что насчет вашего кода, который делает его «младшим»?

Вы также можете опубликовать его на сайте Code Review SE для получения дополнительных отзывов.

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

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

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

Я полагаю, вы слышали шутку про медведя.

введите описание изображения здесь

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

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

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

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

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