Должен ли я дать ответ на провал упражнение кодирования интервью? [закрыто]


14

У нас был кандидат на собеседование старшего уровня, не прошедший нюанс в вопросе FizzBuzz 1 2 .
Я имею в виду, действительно, совершенно, полностью, не удалось вопрос - даже близко.
Я даже тренировал его через думать об использовании цикла и что 3и 5было на самом деле стоит рассматривать как частные случаи.

Он взорвал это.

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

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

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

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

Я знаю, что упражнения по кодированию можно использовать для настройки кандидатов на неудачу (опять же, см. Вторую ссылку сверху). И я действительно пытался помочь ему ответить на суть вопроса. Но это был кандидат высокого уровня, и Fizz-Buzz, честно говоря, до смешного легко даже после учета допросов.

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

Как правильно справиться с этой ситуацией?


1 Хорошо, это не ссылка на реальный вопрос FizzBuzz, но это хорошая дискуссия о P.SE вокруг FizzBuzz и ссылки на различные ее аспекты.

2 Чтобы пояснить, это нюанс Fizz-Buzz, который я задал, и это первая проблема Project Euler . Заменитель печати Fizz | Жужжание для суммирования чисел и у вас тот же фундаментальный вопрос.
If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23. Write a function that finds the sum of all the multiples of 3 or 5 below 1000.

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

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


34
Отпусти их и продолжай свой день. Насколько я понимаю, провал FizzBuzz на «старшем уровне» намеренно и злонамеренно тратит мое время.
Стивен Эверс

6
Недавно я провел собеседование по нескольким позициям в моем регионе, и те, которые требовали наличия кода, указали мне, что у них возникли проблемы с поиском кандидатов старшего уровня, которые могли бы пройти свои собственные тесты "FizzBuzz". В каждом случае моя реакция была «ты не можешь быть серьезным». Очевидно, есть много ужасных программистов, маскирующихся под старшего уровня, которые даже не близки.
Джоэл Этертон

6
@JoelEtherton - То же самое здесь. Я настаивал на экранах телефонов везде, куда бы я ни шел. Если вы подаете заявление на должность старшего по программе C # и не можете сказать нам разницу между типом значения и ссылочным типом, вы не получите интервью.
Теластин

3
@ 0A0D, ведущие команды является другой вид мастерства от того , чтобы быть хорошим разработчиком. Я видел командных лидеров, которые тоже были плохими разработчиками.
Kyralessa

4
@JoelEtherton, не удивляйся. Я думал, что «199 из 200 претендентов не могут кодировать» - это просто гипербола, пока я на самом деле не начал помогать отбору и интервьюировать кандидатов. Годы (предполагаемого) опыта просто не имеют значения. Названия должностей не имеют значения. Большинство претендентов действительно невероятно младшие, знают ли они это или нет.
Энтони Пеграм

Ответы:


15

Большинство моих интервью было со студентами, которые искали место для стажировки, и чаще всего они облажались с простыми (?) Упражнениями. Я хотел простой и дружелюбный способ сообщить о своих ошибках, и то, что я придумал, было довольно просто: я сам выполнил упражнения и показал им свои решения после того, как они закончили со своими.

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


Имеет смысл; Недавно я искал новую работу и обнаружил, что большинство интервьюеров делали то же самое, когда я давал неправильные ответы (или слегка «не по теме») на их вопросы. Это действительно хорошая практика. Главным образом потому, что это открывает кандидата (например, меня) и делает собеседование более привлекательным с обеих сторон. Но, конечно, мы обсуждали шаблоны, RAII и многопоточность в C ++. Вопрос в том, что вы скажете человеку, который не может решить fizzbuzz?
Чани

11
@RitwikG Честно говоря, если кандидат проходит собеседование на должность программиста и не может справиться с fizzbuzz, я бы, наверное ... смеялся (эй, я никогда не говорил, что я хороший интервьюер;). Тем не менее, несколько месяцев назад я потерял пару дней, борясь с тем, что в моем коде оказалось чрезвычайно тривиальным OBOE . У всех нас есть свои выходные, и я бы не стал зацикливаться на том, чтобы кандидат испортил одно упражнение, скорее всего, я бы быстро перешел к следующему. Если они потерпят неудачу и в следующем, я бы, наверное, поблагодарил их за потраченное время и пошел дальше.
Яннис

1
@YannisRizos Это, вероятно, хороший подход; всегда есть шанс, что человек не преуспевает в ситуациях интервью или как-то избегает операции по модулю в своей работе (хотя это не сулит ничего хорошего, если не сказать больше). По моему опыту, значительное количество кандидатов попадают в тупик, когда их просят написать любой простой цикл (на любом языке по своему выбору), даже на руководящие должности. Теперь , что , я считаю , совершенно невозможно оправдать.
Даниэль Б

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

15

Давать ответ

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

Интервью довольно быстрые. Я знаю, что часто смотрю вещи в течение нескольких дней после интервью.

Люди, которые не могут кодировать FizzBuzz Classic

Я полагаю, что большим камнем преткновения является знание оператора%. Вы могли бы надеяться, что кто-то подумает, что можно сравнить, (myInt / 3) == (myDouble / 3.0)но, может быть, со стрессом интервью ... Тем не менее, FizzBuzz Classic применяет грубый подход, относя его к категории самых простых алгоритмических задач, которые нужно решить. Как подсказка, вы пытались попросить людей просто набрать «Fizz» для получения половины кредита и, возможно, добавить «Buzz» позже в качестве улучшения?

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

Вопросы для интервью в целом

Мне часто было проще и продуктивнее просить кандидатов описать последний программный проект, которым они были рады. У меня был 100% -ный успех в этом вопросе, а это значит, что люди, которые оживленно говорили о программном проекте и могли отвечать на технические вопросы о нем, были отличными наемниками, а те, кто не мог, не были. Это имеет приятные побочные эффекты, позволяющие облегчить кандидатуру и поощрить открытую дискуссию. С этим вопросом кандидат, по сути, скажет вам, для чего он больше всего подходит.

Возможно, в алгоритме мозгового центра тоже нужны вопросы, но я отказался от них в пользу вопроса «любимого проекта».

Сум (Сын) от FizzBuzz

Ваш вопрос интервью не эквивалентен FizzBuzz:

Если мы перечислим все натуральные числа ниже 10, кратные 3 или 5, мы получим 3, 5, 6 и 9. Сумма этих кратных единиц равна 23. Напишите функцию, которая находит сумму всех кратных 3 или 5. ниже 1000

Если FizzBuzz Classic заставляет вас проходить n итераций (чтобы распечатать каждое число или Fizz / Buzz), ваша задача может быть решена в n / 5 + n / 3 + n / 15 итераций или даже без итераций - прямая фиксированная Возможен точечный расчет. Следующая программа сравнивает эти три метода:

public static void main(String[] args) {
  long n = Long.valueOf(args[0]).longValue();
  long sum = 0;
  long ms = System.currentTimeMillis();
  // Brute force method  Performance: cn
  for (long i = 1; i <= n; i++) {
    if ((i % 3) == 0) { sum += i;
    } else if ((i % 5) == 0) { sum += i; }
  }
  System.out.print("Brute force sum:    " + sum);
  System.out.println(" time: " + (System.currentTimeMillis() - ms));
  ms = System.currentTimeMillis();

  // Second solution: iterate through only numbers we are
  // interested in.  Performance: c * (n/3 + n/5 + n/15)
  // We counted multiples of 15 twice, so subtract one of them
  sum = countSum(n, 3) + countSum(n, 5) - countSum(n, 15);
  System.out.print("Only multiples sum: " + sum);
  System.out.println(" time: " + (System.currentTimeMillis() - ms));
  ms = System.currentTimeMillis();

  // Third solution: Use high school algebra.  Performance: c
  sum = sumSeries(n, 3) + sumSeries(n, 5) - sumSeries(n, 15);
  System.out.print("Sum of series:      " + sum);
  System.out.println(" time: " + (System.currentTimeMillis() - ms));
}

// Iteravely sum all multiples of skip
private static long countSum(long n, long skip) {
  long skipTotal = skip;
  long grandTotal = 0;
  while (skipTotal <= n) {
    grandTotal += skipTotal; skipTotal += skip;
  }
  return grandTotal;
}

// Thanks to @Caleb for pointing this out!  High school algebra
// tells us that the sum of a series is: (n * (a1 + an)) / 2
// where a1 is the first term and an is the nth term.  E.g. The
// sum of a series of 3 is: (n/3 * (3 + n - (n % 3))) / 2
// Since we are thinking about performance here, we'll shift
// right one instead of dividing by 2 for style points.  ;-D
private static long sumSeries(long n, long skip) {
  return (n/skip * (skip + n - (n % skip))) >> 1;
}

Выход (сумма FizzBuzz <1000):

$JDK_HOME/bin/java FizzBuzzNot 999
Brute force sum:    233168 time: 0
Only multiples sum: 233168 time: 0
Sum of series:      233168 time: 0

С большим n для сравнения производительности:

$JDK_HOME/bin/java FizzBuzzNot 1000000000
Brute force sum:    233333334166666668 time: 4744
Only multiples sum: 233333334166666668 time: 818
Sum of series:      233333334166666668 time: 0

Примечание для тех, кто проголосовал за это как не по теме

Смысл представления решения этого вопроса состоит в том, чтобы показать, что хотя решение Sum of FizzBuzz методом грубой силы аналогично FizzBuzz Classic, доступны более эффективные решения проблемы Sum, что делает ее принципиально другой проблемой. Сумма FizzBuzz чрезвычайно сложна, если вы не помните правильную формулу для суммы ряда или не понимаете, что она применяется при переходе на 3 или 5.

Если вы заново выведите формулу для суммы ряда, разделив ряд пополам, перевернув одну половину и спарив их, вы получите (n + 1) (n / 2), что может привести вас к действительно грязному пути что касается целочисленного деления и усеченных остатков. Версия (n (a1 + an)) / 2 этой формулы абсолютно важна для простого ответа для всех значений n.


3
Это можно рассчитать напрямую (Рубин): t = { |i| (i * (i+1)) / 2 }; fizzbuzz = { |n| 3 * t((n-1)/3) + 5 * t((n-1)/5) }
Кевин Клайн


1
@ GlenH7 Да, я удалил свой комментарий, потому что это был buzzkill. Глен заслуживает поддержки для своего анализа, даже если он не отвечает на вопрос ВСЕ: D (Кроме того, я полностью закодировал и попробовал свое собственное решение несколько минут назад)
Андрес Ф.

2
Вы ищете сумму ряда, учитывая, что этот ряд имеет модуль = 0, можно использовать формулу n / 2 * (m + nm). Где m = число по модулю и n = количество элементов в ряду (он же пол (х / м). После этого легко, S (3) + S (5) - S (3 * 5) [так что некоторые числа не учитываются дважды].
Jmoreno

3
Одна из причин, по которой у вас могут возникнуть проблемы, заключается в том, что вы учитываете несколько чисел дважды (те, которые делятся на 15). Для примера программы см. Ideone.com/clone/oNWrhJ
jmoreno

8

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

Мне все равно, для какого уровня интервью, и даже на самом деле, если это вопрос "FizzBuzz" или сложный вопрос. Если вы попросите кандидата решить вопрос, а он не сможет, но даже не потрудится попросить вас дать правильный ответ, тогда он не стоит вашего времени. Как в мире ты мог быть таким интеллектуально ленивым?!?

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

Так что нет, вы не должны «давать» ответ, но вы должны ожидать, чтобы кандидат настаивал на том, чтобы услышать правильный ответ после того, как он потерпит неудачу. Если нет, это огромный красный флаг в моей книге.

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


1
Почему? Вы можете просто гуглить ответ позже. FizzBuzz довольно популярен. Я был бы честно обеспокоен, если бы кто-то не знал деление модуля.
Брайан

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

Я действительно высказал свое мнение о FizzBuzz ... но это правильный ответ. Если кандидат не просит ответа, не давайте его ему.
Джеймс П. Райт

@ JamesP.Wright - Я в некоторой степени согласен, и, вдаваясь в интервью, мне было немного стыдно использовать это в качестве основного вопроса кодирования. Это должно было быть смехотворно легко, и я даже предварял это предупреждением, чтобы не перечитать вопрос. У меня было продолжение, которое также должно было быть легким, а затем у меня был третий, который позволил бы ему продемонстрировать навыки разработки / дизайна более высокого уровня. Мы так и не добрались до третьего вопроса ....

1
@ 0A0D, «математика», используемая в FizzBuzz, просто проверяет, делится ли данная переменная на 3 и / или 5. Этот уровень математики присутствует практически в каждом приложении, которое вы пишете. Даже такие «деловые разработчики», как я, которые просто реализуют одни и те же проекты снова и снова, используют этот уровень математики. GlenH7, я даже не уверен, что использование рекурсии в FizzBuzz произведет на меня впечатление или отпугнет меня ... Конечно, это кажется опасным излишним.
Грэм

4

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

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

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


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

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

@ Грэхем: Наймите его как временного специалиста на 6 месяцев ..
Брайан

@ 0A0D К сожалению, я никогда не работал в таком месте, где бы была такая гибкость. Если рекламируемая должность была занятой полный рабочий день, это ВСЕ, что мы могли бы предложить человеку.
Грэм

3
В этом сценарии нет ограждения. Если его «пример кода» демонстрирует сильные знания, и он не может кодировать fizzbuzz, вытащите образец и спросите его об особенностях. Если он не может подтвердить это, то пришло время для моей любимой строки: «У нас еще есть несколько кандидатов для проверки, мы свяжемся с вами».
Майкл Браун

4

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

Было бы интересно узнать, что вы думаете о «правильном» ответе на ваш вопрос FizzBuzz. От того, где я сижу, хороший (в C) написано на письмо вашего вопроса:

int f(void) {
    // sum the multiples of 3 and of 5 and subtract multiples of 15 so we don't count them twice
    return ((1000/3)/2)*(999+3) + ((1000/5)/2)*(995+5) - ((1000/15)/2)*(990+15);
}

Лучше может быть:

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

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

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

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


+1 за солидный ответ в вашем последнем абзаце. И вы отметили, что мне следовало сказать «ответ» вместо «ответ». Есть несколько способов решить этот конкретный. Что касается discuss the problemэтого элемента, возникли другие вопросы во время интервью. К сожалению, кандидат был ... менее готов ответить. Я не добавил этот аспект в исходный вопрос, так как действительно пытался придерживаться рекомендаций P.SE для «хорошего субъективного».

1
«Это не ваше место преподавать кандидату урок», - не согласен я. Хороший программист всегда учится. Если они реагируют на ваш урок, действуя благодарно за изучение новых вещей, то это признак того, что они хороший программист. Если они проигнорируют ваш урок, то они, скорее всего, дерьмовый программист.
nbv4

Если бы я был вашим интервьюером, а вы дали мне такой ответ, я бы направил вас в школьный округ, который нуждается в учителях алгебры. FizzBuzz - это демонстрация базовых знаний в области программирования, чтобы интервьюер мог перейти к вопросам, которые отличают вас от других, в основном, приличных программистов. Ваши ответы умны, но они не доказывают, что вы понимаете цикличность, модульную арифметику и т. Д., Оставляя интервью либо двигаться вперед, предполагая, что люди, знающие алгебру, также знают программирование (неправильно), либо просто пожать руку и двигаться дальше (скорее).
user1172763

@ user1172763 В этом суть - в отличие от FizzBuzz, на вопрос об интервью ОП можно ответить с помощью одного расчета. Поэтому плохой выбор, если нужно посмотреть, сможет ли кандидат написать цикл. Вы не можете ожидать, что кандидат выберет более медленное, гораздо более подробное решение, если предположить, что вы задаете вопрос по определенной (и неустановленной) причине. В самом деле, интервьюер может легко быть «хитрым» вопросом, чтобы увидеть, замечает ли кандидат, что зацикливание совершенно не нужно. Чтение ваших мыслей не является обязанностью кандидата.
Калеб

2

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

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

Поэтому, если вы хотите дать собеседнику решение после факта, вы делаете это исключительно для себя. В целом, я бы предпочел использовать это время, чтобы позволить собеседнику решить другую проблему. Но «старшего» программиста, который не может ответить на FizzBuzz, вероятно, нет в списке. Если вы решили дать решения, убедитесь, что вы не обманываете себя, думая, что интервью прошло лучше, чем оно (если вы обнаружите, что думаете, «он не мог решить проблему, но когда я объяснил это, он понял это хорошо», тогда ты на опасном пути).

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


2

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

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

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


+1 за комментарий how they work to arrive at the answer is a critical factor. Хотя я ожидал, что будет использоваться оператор модуля, это только потому, что я бы так решил. Я был очень открыт, чтобы увидеть любой другой подход, который решил проблему без создания явных ошибок граничных условий (см. Мои различные комментарии о подходе с рекурсией ....).

2

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

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

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


Стоит также отметить, что проблема FizzBuzz имеет разные «лучшие» ответы в зависимости от того, как вы ее задаете. Если вы спрашиваете о «простейшем» решении и «наиболее эффективном» решении, лучшие ответы радикально отличаются. И это может несправедливо повлиять на ваше суждение ... если вам неясно, каким образом вы задали вопрос. (С другой стороны, хороший / опытный кандидат мог бы предвидеть это, прежде чем начинать кодировать ...)


2

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

Более актуальный вопрос: когда вы можете назвать себя старшим разработчиком? Это варьируется между организациями и странами. Например, компания, с которой я работал, считалась инженером-программистом с 5-летним опытом работы в качестве пожилых людей. Там не было никакого акцента на качество опыта, только длина.

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

Пару недель назад был задан вопрос «Когда вы должны называть себя старшим разработчиком» . Я также написал пост в блоге на эту тему.


Не могли бы вы пересмотреть ссылку на свой блог?
Андре

@ Андре ссылка обновлена.
Чак Конуэй
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.