Я продолжаю терпеть неудачу в части интервью, предложений? [закрыто]

13

Так что у меня есть несколько программ / сайт в моем портфолио. Они делают деньги, но не очень много.

Поэтому я решил получить некоторый опыт работы, в основном, работая на младших позициях по разработке на Java / PHP.

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

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

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

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

Какие-либо предложения?

joelonjobinterviews
источник
По-видимому, вы, по крайней мере, думаете, что тесты для собеседования могут быть простыми, но, похоже, вы не одиноки в том, что у вас проблемы с этими тестами: infoworld.com/d/application-development/…
то программист чувак
2
Я должен не согласиться с этой ссылкой. Учитывая различие между хорошим разработчиком и плохим, вы действительно хотите рискнуть похитить некоторых хороших кандидатов, чем получить плохих.
Deadalnix
7
@deadalnix Я не согласен с твоим несогласием. :-) Я видел достаточно хороших программистов, проваливших тесты, и плохих программистов, проходивших тесты, которые, я думаю, тестирование бесполезно и часто контрпродуктивно. ИМО, все, что они делают, это заставляют интервьюера / HR чувствовать себя хорошо.
Брайан Кноблаух
2
@BJoachim и все: если вы прочитаете первые абзацы в этой ссылке, это хороший совет о том, как сохранить тесты актуальными и полезными: он не говорит, что тесты бесполезны.
MarkJ

Ответы:

18

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

Кевин Хсу
источник
2
Я не думаю, что это вопрос качества / содержания вопросов, просто условия ответов. Я плохо написал, bool isPalindrome(string)потому что должен был написать это на бумаге, в срок (15 минут?). С учетом текстового редактора и без ограничения по времени, я считаю, что я мог бы сделать это идеально за минуту.
SF.
9
@SF: ты пробовал это после интервью? Сколько времени это заняло у тебя?
Кевин Клайн
2
Также продолжайте практиковаться, работая над своими слабостями. В этом случае найдите небольшие похожие проблемы и сами проведите их через бумагу. Сначала попрактикуйтесь в том, чтобы что-то работало (даже если это не так), затем итерируйте, чтобы все получилось правильно. Таким образом, вы можете показать свой мыслительный процесс как часть интервью. Кажется, это самый большой навык, которого вам не хватает (сейчас), чтобы получить минимальный результат сейчас, а затем улучшить его со временем. Многим компаниям нравится это :-)
Аль Биглан
Просто видел это связано с Слэшдот; несколько похожий
Кевин Хсу,
Если проблема в том, что вы не можете программировать на бумаге, то это, на мой взгляд, реальная проблема. «isPalindrome» не должен нуждаться в каких-либо непонятных вызовах API или языковых возможностях; у вас должна получиться скомпилированная программа, подобная этой, без преимуществ intellisense или IDE.
Эойн Кэрролл
12

Это очень распространено. Большинство программистов способны эффективно программировать, когда они находятся в своей зоне комфорта. Например, я могу работать только в Ubuntu, с vim, если у меня нет этого рабочего пространства, мне не хочется программировать. Я также требую , в некоторой степени, Google для исследований.

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

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

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

РЕДАКТИРОВАТЬ : Этот вопрос напоминает мне к продавцу, спрашивая, как чувствовать себя комфортно и лучше при холодных звонках. Лучший ответ - продолжать делать холодные звонки и размышлять над каждым звонком. Через некоторое время продавцы улучшают свои навыки и комфорт. Я думаю, что программисты ничем не отличаются при посещении интервью, ведь главное - продать себя интервьюеру.

Рик Роудс
источник
Кто такая Софа? Красивая близнец Софи?
uɐɪ
@Rick: к сожалению, как интервьюер, я не могу просто поверить кому-то, что он эффективный программист. Мне нужно увидеть, что они действительно могут программировать. Ни сообщенный опыт, ни GPA, ни сертификация, ни примеры кода не могут мне этого сказать. Мне нужно, чтобы кандидаты занимались программированием.
Кевин Клайн
@kevincline Я согласен, поэтому я рекомендую ему продолжать ходить на собеседования и чувствовать себя комфортно с такими интервьюерами, как вы.
Рик Родс
6

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

user841923
источник
1
+1, и дух предпринимательства можно рассматривать как очень позитивное качество.
maple_shaft
5

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

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

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

Кристиан П
источник
1
Вы должны также погуглить некоторые из этих типов тестовых вопросов. Распечатайте их так, как вы получите их в интервью, и решите их. Сядьте за стол, а не за компьютер. Вы должны попытаться воссоздать давление интервью.
Билл Липер
3

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

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

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

Шон Макмиллан
источник
3

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

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

  1. Соберите требования : что именно спрашивает ваш интервьюер. Убедитесь, что в эфире нет вопросов до того, как кодировать. Например, если вы столкнулись с давним вопросом «isPalindrome», задайте такие вопросы, как «что если в строке есть специальные символы?» или "строки нечетной длины, такие как 'ada', считаются палиндромами?" Вы должны знать, как уточнить требования, прежде чем разрабатывать алгоритм.
  2. Создайте свой алгоритм : разбейте его на логические разделы, если это имеет смысл. Поговорите об этом .. Может, напишите какой-нибудь псевдокод, если вы занимаетесь доской. Проведите интервьюера через ваши шаги. Попробуйте выполнить его с несколькими различными входными данными (действительными и недействительными), чтобы получить желаемые результаты.
  3. Теперь начните кодировать : к этому моменту вы должны быть очень уверены в том, что собираетесь писать. По сути, вы должны просто проходить движения на любом языке, с которым вы знакомы. На данный момент, не имеет значения, есть ли синтаксические ошибки, поскольку интервьюеры, которые стоят десять центов, простят их за сеанс доски (если у вас есть PC / IDE для решения проблемы, это другая история).

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

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

Демиан Брехт
источник
3

Проект Эйлера

Мне кажется, что вы провалили тест на fizzbuz . Запомните простые алгоритмы, которые обычно не служат какой-либо практической цели, кроме как определить, понимаете ли вы основные концепции программирования.

Почистить основы

Я бы порекомендовал вам освежить свои основы.

http://projecteuler.net/

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

Джастин Шилд
источник
2

Попросите обратную связь во время или после интервью. Что им понравилось? Что им не понравилось? Вы можете быть удивлены ответами.

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

Лучший способ стать лучше во всем - это практиковаться. Попробуйте записать список коротких проблем. Затем для каждого элемента в списке напишите небольшую программу, которая решит проблему. Начните с очень простых задач, таких как FizzBuzz , и увеличивайте сложность по мере продвижения . Можете ли вы решить проблемы, которые вы видели в предыдущих интервью? Найти самую большую подстроку, которая имеет две общие строки? Рассчитайте простую факторизацию n !?

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

Калеб
источник
2

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

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

JB King
источник
2

Разработчики программного обеспечения довольно часто проваливаются, когда их просят пройти тестирование кода или написать небольшой кусочек кода на собеседовании. Как кто-то уже упоминал, это потому, что большинство из нас может писать код только тогда, когда мы находимся в нашей «зоне комфорта» и сидя в маленькой комнате, окруженной 2-5 интервьюерами, на самом деле не добавляет особого комфорта.

Ответ тройной:

  • практиковаться и практиковаться больше. Попробуйте в течение месяца выполнять 30-40 минут программирования с бумагой и ручкой, и вы удивитесь, насколько легко это станет. Во время практики - попробуйте те задачи программирования, которые вы ожидаете получить на сеансах кодирования интервью - например, внедрите одиночный код, переверните строку и т. Д. С «прочесть этот кусок ненужного кода еще проще» и найдите, что не так. "- попробуйте печатать и анализировать эти распечатки в течение двух недель, и вы значительно улучшите этот навык.

  • научитесь контролировать свой страх. если вы считаете, что тест слишком сложный и вы можете выполнить только 20%, сделайте это 20%, не беспокойтесь об остальном. Может случиться так, что тест неоправданно велик для времени, отведенного на его проведение (например, ребята на собеседовании должны дать вам 20 минут, чтобы завершить его, но им нужно завершить собеседование за 5 минут из-за какого-то взрыва производства и т. Д.) , Также возможно, что другим кандидатам удалось пройти только 10% тестирование, поэтому, пройдя 20%, вы все равно будете опережать других кандидатов.

  • При написании кода на собеседовании - не беспокойтесь о том, чтобы сделать его идеальным с первого прохода. просто внедрите «счастливый путь или самый распространенный сценарий в первую очередь», а потом обработайте ошибки. если у вас не хватает времени - просто добавьте заметку внизу листа с описанием - что бы вы сделали, чтобы улучшить код, если бы у вас было больше времени.

[Должен бежать, отредактирую / улучшу мой ответ позже]


источник
1

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

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

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

gnash117
источник
0

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

Мое предложение состоит в том, чтобы сообщить компании, прежде чем вы пойдете на собеседование, о том, что вы не будете участвовать в такого рода тестах, однако вместо этого вы рады X. (Придумайте альтернативу, которая имеет смысл, и вы чувствуете себя комфортно.) Для себя я предложил отправить им код, и однажды я предложил, чтобы они дали мне простую программу для написания, и я принесу ее со мной собеседование через 3 дня.

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

боб
источник