«Старший разработчик» дает интервью младшим вопросы, Или: где говядина? [закрыто]

Я чувствую, что часто звание «старший программист/разработчик» используется для того, чтобы заманить в компанию программистов, не являющихся старшими, при этом не платя им по званию «старший» — ведь они «не знают достаточно, чтобы оправдать это». ", - вот что сказал бы им рекрутер.

Может быть, так же, как сегодня в продовольственных магазинах США есть только средние и крупные яйца, но никогда не маленькие.

Во всяком случае, недавно я проходил собеседование на несколько должностей «Старший (Java) разработчик», и меня раздражало, что в некоторых из них мне задавали только младшие вопросы:

  • Что такое интерфейс?
  • Что такое абстрактный класс?
  • Что такое сбор мусора?
  • Что такое внедрение зависимостей?
  • Как удалить дубликаты из списка?
  • Как обойти дерево?
  • И т. д....

Все это я знал до того, как начал работать с Java, или где-то в течение первого года работы с Java.

Где вопросы о том, чему я научился за последние десять лет?

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

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

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

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

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

Я полагаю, что эти вопросы больше предназначены для того, чтобы увидеть, как вы объясняете вещи, а не для проверки ваших знаний.
Да ты слишком хорош для них - беги
« Если я думаю, что они могут увидеть меня и захотят увеличить свое предложение ». Это огромное, огромное заблуждение. Это может сработать в некоторых случаях, когда компания может использовать кого-то с большим опытом (следовательно, заслуживающим более высокой заработной платы), но в подавляющем большинстве приложений вы просто тратите время всех впустую. Они ищут определенный профиль и имеют определенный бюджет. Кроме того, люди могут оказаться на «старших» должностях всего через несколько лет, поэтому я уверен, что вы либо подаете заявку на неправильную работу, либо слишком заморачиваетесь над вопросами, разработанными для того, чтобы отсеять неопытных кандидатов.
Мне нравится задавать вопросы X против Y в интервью (где и X, и Y иногда хороши). Вы можете использовать некоторые из этих вопросов в качестве отправной точки для подобных ответов. Интерфейс против абстрактного класса. gc против подсчета ссылок против ручного управления памятью. Внедрение зависимостей против локатора службы против newи т. д.
Я ценю вашу потребность в более серьезном вызове и в том, чтобы чувствовать себя испытанным, но, в конце концов, если роль, зарплата, льготы - это то, что вам нужно, имеет ли это значение? В конце концов, если это легко для вас, это просто дает вам больше шансов получить роль, зачем вам усложнять ее. Должность не является реальной мерой вашей ценности в компании, если бы это было так, то люди, которых называют «менеджерами по развитию бизнеса», были бы менеджерами, а не просто продавцами с причудливой должностью.
Расслабляться. Они просто отсеивают программистов, которые не умеют программировать.
Почему это укрепляет стереотип Java-парня?
«Должен ли я убегать от предложений о работе, которые я могу получить после таких разочаровывающих собеседований?» - только если они не собираются платить ваши минимальные ожидания...
@Blrfl определяет разглагольствование и определяет вопрос.
Хе-хе... Я знаю большое количество "старших разработчиков", которые не могут понять ни орел, ни решку из дерева, не говоря уже о том, как пересечь его. То же самое для DI, интерфейсов и так далее. Наличие большого опыта и времени на поле автоматически не делает вас хорошим игроком!
Для меня такие вещи - полный красный флаг. Это демонстрирует, что компания/рекрутер может выполнять только самый базовый уровень фильтрации. В некоторых случаях, если есть больше времени, чтобы продемонстрировать решение, то, как вы подходите к проблеме и т. д., тогда хорошо, компания по понятным причинам нуждается в этом в качестве базового ориентира при отборе кандидатов. Но тип C # 101 или Javascript 101 с множественным выбором и т. Д. В тесте на заучивание «книжных знаний» ... На мой взгляд, оно того не стоит.

Ответы (3)

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

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

В моей последней фирме были люди с общим опытом всего 4 года, не разбирающиеся в интерфейсах или базовых навыках, таких как управление репозиторием, которых называли ведущими и старшими разработчиками. Некоторые люди просто получают эти роли из-за текучести кадров и автоматического продвижения по службе, а не из-за реальных навыков и способностей.
@Stormy это происходит во многих местах, я нанял (и вскоре уволил) парня с 11-летним опытом работы на высшем уровне в государственном отделе по его резюме. Парень на самом деле не знал, как делать НИЧЕГО, кроме как оправдываться и пытаться делегировать все другим.
Я выбрал его в качестве ответа на вопрос «Игнорируйте их, кроме как в качестве общего руководства, и сосредоточьтесь на том, что им платят. Это настоящая проверка того, что они ищут».

Здесь две вещи.

  1. Вы будете удивлены, узнав, сколько «старших» разработчиков не могут сделать даже основы. На моем последнем крупном раунде найма разработчиков, возможно, 75% пула провалились на первом реальном собеседовании, и мы начали шуметь, не потому что это был отличный положительный показатель, но это привлекло многих, кто не мог даже этого. Многие старшие разработчики достигают этого, проработав там несколько лет, но не продвинувшись в своих навыках, поэтому эти вопросы необходимы.
  2. Сказав это, что вообще такое «старший»? Я бы не сказал автоматически, что технические навыки отличаются от роли джуниора, но я ожидаю, что это более мягкие навыки: способность управлять своим (и, возможно, джуниорским) временем; способность видеть задачу/историю с бизнесом от начала до конца и решать (или обострять) проблемы по мере необходимости; и возможность наставлять младшего в вышеперечисленном.

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

Пункт 1 абсолютно впечатляет. Я видел людей с более чем 10-летним опытом, которые не могли сделать запрос SQL с помощью простого соединения и знака И, и это после одной недели, пытающейся объяснить им. Более подробная запись: blog.codinghorror.com/why-cant-programmers-program
@ gazzz0x2z, я видел, что люди, подающие заявки на специалистов по программированию баз данных, не только те, где требуется небольшая часть кода.
Учтите также, что менеджеры, проводящие собеседования, могут не заниматься программированием в течение нескольких лет и, таким образом, не могут задавать более сложные вопросы, потому что они больше не уверены в ответах. Также учтите, что когда вы говорите о своих собственных достижениях, самое время обсудить это с глубокими знаниями, чтобы показать, что у вас есть больше, чем самый низкий уровень навыков.
Меня всегда поражают результаты теста FizzBuzz. Моя интуиция говорит: «Это всего лишь один плохой раунд», а потом я выясняю, что нет, это почти отраслевой стандарт, когда 1/4 или 1/5 могут его пройти… и это меня огорчает…

На самом деле это не «вопросы по Java», это «вопросы ООП» и «вопросы по любому языку программирования». Так что, если вы имеете в виду, что знали ответы на эти вопросы, работая с каким-то другим ООП-языком, тогда хорошо для вас.

Я думаю, что такие вопросы, а не вопросы о деталях синтаксиса или API Java, являются хорошим знаком. Это намекает на то, что компания осознает, что хорошим разработчиком программного обеспечения является то, что он понимает концепции, выходящие за рамки конкретных языков. Я был бы обеспокоен, если бы компания задавала мне такие вопросы, как «каков третий параметр функции foo в классе bar». Если не вспомню, могу поискать через минуту или две. Но если я не знаю, что такое сборка мусора, это долгая история.

Дайте интервьюеру немного слабины. Придумывать вопросы для интервью — непростое дело. Ваша проблема в том, что вопросы слишком простые? Если да, то хорошо для вас. Эти вопросы поставили бы в тупик большую часть разработчиков, с которыми я сталкивался. Если вы сможете правильно ответить на все из них, это, вероятно, поместит вас как минимум в 50% лучших, а может быть, и выше. Вы хотите, чтобы вопросы были достаточно сложными, чтобы вы могли отличить кандидатов, но если вы не даете им 20-страничный тест, вы не хотите исключать кандидата, потому что он не знал ответа на один сложный вопрос. Может быть, если бы вы попросили еще десять, он получил бы их все. Многое можно сказать не только по ответу, но и по тому, как отвечает кандидат. Очевидно, что если он понятия не имеет, это минус. Но если он отбарабанит определение из учебника, это может указывать на то, что он знает модные словечки, но на самом деле не знает, как все это работает. (Я как-то обжегся, когда нанял парня, который умел декламировать на собеседовании всякие технические термины и определения, но который оказался не в состоянии выполнить самые простые задачи. Да, он мог назвать все фреймворки и языков и продуктов, но когда мы попросили его написать экран с двумя полями ввода и сохранить его в базе данных, он понятия не имел.) Меня впечатляет, когда кто-то может объяснить концепцию четко и уверенно.

О, и спрашивать неясные факты мне кажется довольно бессмысленным. Несколько лет назад интервьюер спросил меня, какие данные находятся в индексном узле Unix. Я случайно знал — на самом деле я знал лучше, чем он, он думал, что имя файла было в индексе — но если бы я не знал, что с того? Я знал только потому, что случайно прочитал об этом однажды. Я не думаю, что когда-либо использовал эти знания при написании программы.