Собеседование - это такая штука, которую программисту придётся учиться проходить.
Почему придётся - это понятно: чтобы найти работу.
Почему именно "учиться проходить"? Потому что собеседование это не работа и не программирование, это отдельный вид общественных отношений, со своими правилами, условностями и ожидаемым от всех участников поведением. И изучать всё это придётся отдельно.
Мой совет: не поленись погуглить и почитать умные статьи умных людей о том, как нужно вести себя до, во время и после собеседований, что нужно говорить, как одеваться и т.д.
Также нелишним будет погуглить и почитать "вопросы на собеседовании java, spring, hibernate".
Каждый раз, когда я икал работу, я заново повторял:
- все пазлеры ("коварные" вопросы по java, spring, hibernate),
- IO, NIO,
- пузырьковую и быструю сортировки (другие если и спрашивали, то только название и О-нотацию),
- уровни изоляции транзаций в PostgreSQL.
Ничего из этого ни на одной из работ сам не писал - использовал то, что есть в java, spring, hibernate.
Всё, что повторял перед собеседованиями, быстро забывалось за ненадобностью.
Можно взять любого программиста, который не повторял хотя бы ближайшие пару месяцев все те вещи, которые он не использует в работе, и проэкзаменовать его по ним. Результат будет таким же.
Для меня до сих пор загадка, как люди могут по году готовиться к собеседованию в FAANG и при этом через год после обеседования помнить то, с чего они начали свою подготовку (многие из них в приватных беседах признаются, что на самом деле, не помнят).
Считаешь, что повторять всё это для собеседования и спрашивать об этом на собеседовании - бессмысленно, бесполезно и никому не нужно? И тебя это расстраивает?
Зря расстраиваешься. Собеседование - это устоявшаяся штука. И, как я уже писал выше, со своими условностями и ожидаемым поведением. От кандидата ожидают, что он бдет соответствовать сложившемуся представлению о кандидате. Кандидат знает, каким его хотят видеть и, зная правила игры, может в обозримом будущем гарантированно найти себе работу. Все счастливы, процесс собеседования идёт как по маслу.
Есть куча статей в интернете: как проверить навыки спеца при приёме на работу. Общий приблизительный ответ: в условиях ограниченных ресурсов, практически никак. Кандидат может быть:
Что ты будешь у них спрашивать на собеседовании?
Да всё то же: сколько корзин в HashMap по умолчанию. )) Вот и остаётся работодателям только задавать кандидатам одни и те же шаблонные вопросы.
Совсем другая ситуация была бы, если бы собеседование в каждую компанию проходило, как собеседование в гугл или фэйсбук, на котором проверяют соответствие хард-скилов кандидата стандартам компании. В этом случае подавляющее большинство кандидатов не смогли бы найти работу. И им пришлось бы пройти ещё пар-тройку курсов, длительностью в полгода - год, на которых их учили бы, как правильно проходить такие собеседования.
Не думаю, что знание этих вещей (ответов на шаблонные вопросы) может достоверно показать: хороший программист пришёл на собеседование или плохой. Можно только понять:
- программист пришёл на работу или просто тот, кто решил на авось попробовать устроиться программистом,
- готовился кандидат к собеседованию или нет,
- как быстро начнёт искать новую работу. Например, если у кандидата при словах "алгоритм", "МЛ" и др. загораются глаза и "отскакивают от зубов" доказательства О-нотаций, градиентные спуски и т.д., а в работе это применяться не будет, то есть вероятность, что новую работу он начнёт искать очень скоро. 😏
Есть также мнение, что "опытных чуваков" на собеседованиях не спрашивают о количестве корзин в HashMap, а просто с ними беседуют.
Так то ж опытные чуваки. Скорее всего, их в таком случае каким-то другим способом проверяют:
Если всё устоялось, идёт по накатанной, то почему же у кандидатов возникают сложности с собеседованиями?
У меня возникают сложности потому, что со временем я начинаю писать код так же, как говорить: на автомате, не особо задумываясь о правилах языка. Например, пишешь ты хорошие и правильные программы потому что когда-то где-то усвоил, что так писать ПРАВИЛЬНО. А тут приходишь на собеседование и тебя спрашивают: а как писать НЕПРАВИЛЬНО? А затем следом: а почему так будет ПРАВИЛЬНО, а вот так - НЕПРАВИЛЬНО? И, если ты до этого нигде не читал, почему нужно писать так, а не по-другому, никогда не писал НЕПРАВИЛЬНО и не обжигался на этом, то ответить на такой вопрос будет очень сложно.
Один из реальных примеров: на курсе, где я учился, ментор часто повторял, что Singleton - это антипаттерн. Спроси любого выпускника из курса того времени, они будут свято уверены, что Singleton - это антипаттерн, но объяснить, почему они так считают, не смогут.
И напоследок, пара интересных случаев из моего опыта прохождения собеседований:
Полная аудитория желающих пособеседоваться в иностранную компанию. Сидим. Выходит чел. Спрашивает на английском:
Почему придётся - это понятно: чтобы найти работу.
Почему именно "учиться проходить"? Потому что собеседование это не работа и не программирование, это отдельный вид общественных отношений, со своими правилами, условностями и ожидаемым от всех участников поведением. И изучать всё это придётся отдельно.
Мой совет: не поленись погуглить и почитать умные статьи умных людей о том, как нужно вести себя до, во время и после собеседований, что нужно говорить, как одеваться и т.д.
Также нелишним будет погуглить и почитать "вопросы на собеседовании java, spring, hibernate".
Каждый раз, когда я икал работу, я заново повторял:
- все пазлеры ("коварные" вопросы по java, spring, hibernate),
- IO, NIO,
- пузырьковую и быструю сортировки (другие если и спрашивали, то только название и О-нотацию),
- уровни изоляции транзаций в PostgreSQL.
Ничего из этого ни на одной из работ сам не писал - использовал то, что есть в java, spring, hibernate.
Всё, что повторял перед собеседованиями, быстро забывалось за ненадобностью.
Можно взять любого программиста, который не повторял хотя бы ближайшие пару месяцев все те вещи, которые он не использует в работе, и проэкзаменовать его по ним. Результат будет таким же.
Для меня до сих пор загадка, как люди могут по году готовиться к собеседованию в FAANG и при этом через год после обеседования помнить то, с чего они начали свою подготовку (многие из них в приватных беседах признаются, что на самом деле, не помнят).
Считаешь, что повторять всё это для собеседования и спрашивать об этом на собеседовании - бессмысленно, бесполезно и никому не нужно? И тебя это расстраивает?
Зря расстраиваешься. Собеседование - это устоявшаяся штука. И, как я уже писал выше, со своими условностями и ожидаемым поведением. От кандидата ожидают, что он бдет соответствовать сложившемуся представлению о кандидате. Кандидат знает, каким его хотят видеть и, зная правила игры, может в обозримом будущем гарантированно найти себе работу. Все счастливы, процесс собеседования идёт как по маслу.
Есть куча статей в интернете: как проверить навыки спеца при приёме на работу. Общий приблизительный ответ: в условиях ограниченных ресурсов, практически никак. Кандидат может быть:
- олимпиадником, не знающим ни одного фреймворка и пишущим велосипеды и работающий, но неподдерживаемый код;
На сладкое: представь себе, что у тебя свой стартап и тебе нужно нанять прогеров. Не "рок-звёзд", но и не секретарей-машинисток.Что ты будешь у них спрашивать на собеседовании?
Да всё то же: сколько корзин в HashMap по умолчанию. )) Вот и остаётся работодателям только задавать кандидатам одни и те же шаблонные вопросы.
Совсем другая ситуация была бы, если бы собеседование в каждую компанию проходило, как собеседование в гугл или фэйсбук, на котором проверяют соответствие хард-скилов кандидата стандартам компании. В этом случае подавляющее большинство кандидатов не смогли бы найти работу. И им пришлось бы пройти ещё пар-тройку курсов, длительностью в полгода - год, на которых их учили бы, как правильно проходить такие собеседования.
Не думаю, что знание этих вещей (ответов на шаблонные вопросы) может достоверно показать: хороший программист пришёл на собеседование или плохой. Можно только понять:
- программист пришёл на работу или просто тот, кто решил на авось попробовать устроиться программистом,
- готовился кандидат к собеседованию или нет,
- как быстро начнёт искать новую работу. Например, если у кандидата при словах "алгоритм", "МЛ" и др. загораются глаза и "отскакивают от зубов" доказательства О-нотаций, градиентные спуски и т.д., а в работе это применяться не будет, то есть вероятность, что новую работу он начнёт искать очень скоро. 😏
Есть также мнение, что "опытных чуваков" на собеседованиях не спрашивают о количестве корзин в HashMap, а просто с ними беседуют.
Так то ж опытные чуваки. Скорее всего, их в таком случае каким-то другим способом проверяют:
- репозиторий на гитхабе,
- активность в соцсетях разработчиков,
- отзывы коллег и т.д.,
- на "простой" беседе могут спросить о последнем проекте, принятых архитектурных решениях и о причинах их принятия. Думаю, программер с небольшим опытом сразу "засыпется" на таких вопросах. Тогда ему будут задавать вопросы по HashMap. )
- активность в соцсетях разработчиков,
- отзывы коллег и т.д.,
- на "простой" беседе могут спросить о последнем проекте, принятых архитектурных решениях и о причинах их принятия. Думаю, программер с небольшим опытом сразу "засыпется" на таких вопросах. Тогда ему будут задавать вопросы по HashMap. )
Если всё устоялось, идёт по накатанной, то почему же у кандидатов возникают сложности с собеседованиями?
У меня возникают сложности потому, что со временем я начинаю писать код так же, как говорить: на автомате, не особо задумываясь о правилах языка. Например, пишешь ты хорошие и правильные программы потому что когда-то где-то усвоил, что так писать ПРАВИЛЬНО. А тут приходишь на собеседование и тебя спрашивают: а как писать НЕПРАВИЛЬНО? А затем следом: а почему так будет ПРАВИЛЬНО, а вот так - НЕПРАВИЛЬНО? И, если ты до этого нигде не читал, почему нужно писать так, а не по-другому, никогда не писал НЕПРАВИЛЬНО и не обжигался на этом, то ответить на такой вопрос будет очень сложно.
Один из реальных примеров: на курсе, где я учился, ментор часто повторял, что Singleton - это антипаттерн. Спроси любого выпускника из курса того времени, они будут свято уверены, что Singleton - это антипаттерн, но объяснить, почему они так считают, не смогут.
В этих ваших интернетах есть две интересные точки зрения о том, нужно ли ходить на собеседования без намерения получить работу:
1) так делать нужно, чтобы поддерживать у себя в актуальном состоянии навык прохождения собеседований;
2) так делать нельзя, т.к. тем самым ты "обманываешь" HR-ов и работодателей, отнимаешь их рабочее время, потому что проходишь собеседование без цели трудоустроиться.
Иногда мне кажется, что обе эти "точки зрения" придуманы одними и теми же людьми с целью создания хайпа и привлечения внимания.
Я придерживаюсь третьей точки зрения: делать так, как тебе нужно. Хочешь потренироваться перед собеседованием в компанию А, т.к. хочешь работать там, только там и нигде больше? Пройди несколько тренировочных (для тебя тренировочных) собеседований в компании X, Y, Z.
Если тебе пофиг где работать, лишь бы была здоровая атмосфера в коллективе и платили вовремя. Тогда нет смысла проходить собеседования ради собеседований. Собеседоваться только с целью найти работу. А свободное время потратить с большей пользой.
1) так делать нужно, чтобы поддерживать у себя в актуальном состоянии навык прохождения собеседований;
2) так делать нельзя, т.к. тем самым ты "обманываешь" HR-ов и работодателей, отнимаешь их рабочее время, потому что проходишь собеседование без цели трудоустроиться.
Иногда мне кажется, что обе эти "точки зрения" придуманы одними и теми же людьми с целью создания хайпа и привлечения внимания.
Я придерживаюсь третьей точки зрения: делать так, как тебе нужно. Хочешь потренироваться перед собеседованием в компанию А, т.к. хочешь работать там, только там и нигде больше? Пройди несколько тренировочных (для тебя тренировочных) собеседований в компании X, Y, Z.
Если тебе пофиг где работать, лишь бы была здоровая атмосфера в коллективе и платили вовремя. Тогда нет смысла проходить собеседования ради собеседований. Собеседоваться только с целью найти работу. А свободное время потратить с большей пользой.
И напоследок, пара интересных случаев из моего опыта прохождения собеседований:
Полная аудитория желающих пособеседоваться в иностранную компанию. Сидим. Выходит чел. Спрашивает на английском:
- Кто знает java?
Половина народу подняли руки.
Второй вопрос:
- Из джавистов, кто скалу знает?
Подняли руки человек 5.
- Из последних поднявших руки, кто Хаскел знает?
Поднял руку один.
- You are hired! - кричит HR, бросается к этому чуваку и вцепляется в него мёртвой хваткой. ))
Поржали, пожрали нахаляву и разошлись. )
Половина народу подняли руки.
Второй вопрос:
- Из джавистов, кто скалу знает?
Подняли руки человек 5.
- Из последних поднявших руки, кто Хаскел знает?
Поднял руку один.
- You are hired! - кричит HR, бросается к этому чуваку и вцепляется в него мёртвой хваткой. ))
Поржали, пожрали нахаляву и разошлись. )
Я с двумя офферами на руках просто по фану собеседовался 5 часов в Сбере и 4 часа в Люксофте. )