Эта заметка есть в виде подкаста. Подпишись на подкасты или слушай меня в разделе Подкасты на этом сайте. Сейчас прочитал интересную заметку, в которой сравнивают процесс интервью, через который приходится проходить программистам с другими профессиями.
Допустим, что какой-то госпиталь хочет нанять хирург. Рекрутеры нашли для госпиталя хирурга с опытом операций в 20 лет и после короткого телефонного разговора потенциального кандидата приглашают на тест. Хирурга заводят в морг, дают трупа и говорят - проведите нам операцию по пересадке сердца.
Вы можете представить себе такую ситуацию с врачом в какой-нибудь крупной больнице? Уверен, что хирург с 20-ю годами опыта развернется и уйдет, а вот программисты продолжают решать задачи на собеседованиях, которые потом никогда в жизни не нужно будет решать в реальной работе.
Хороший пример и может показаться, что программисты тоже должны начать бастовать и перестать проходить тесту или подаваться в компании, где тестируют позорным методом через решение алгоритмов.
Я как-то записывал видео на тему интервью:
Я сам считаю алгоритмические задачи - глупостью. Они не говорят о том, какой будет в будущем программист. Я считаю теоретические вопросы на интервью не самым лучшим способом определения навыков программиста. Я уже много раз говорил, что знание определения инкапсуляции не дает никакого понимания о том, как потом программист будет писать реальный код.
Но правильно ли сравнивать программистов с врачами и пытаться сравнить их процесс найма? Не уверен, что это одно и то же. Все же у нас профессии разные, спрос/предложения разные.
К сожалению в ИТ тесты пока самое лучшее средство для поиска хороших специалистов, главное, чтобы тесты были не на сложные задачи, а достаточно простыми, чтобы программист не ломал голову над решением, а больше концентрировался на написании кода и объяснении, что он делает.
Я также говорил в видео, что очень полезно было бы делать ревью кода. Это как бы и теоретический вопрос, но в то же время и практический, потому что в этот комент можно много порассуждать, если подготовить хороший пример кода.
Может ли GitHub выступать проездным, который будет пропускать нас мимо интервью. Хороший вопрос, ведь в ИТ достаточно легко взять какой-то код, модифицировать его немного, переименовать переменные и представить этот код за свой. Потом никто не докажет, что программист украл код, а не написал сам.
В принципе, компании могут и даже должны нанимать программистов без тестов, если они сами находят себе нужных кандидатов. Я понимаю, когда я подаюсь в компанию и меня никто не знает, в таком случае для знакомства можно делать тест. Но если программист достаточно известный, компания находит именно его и хочет его, то тут делать еще и какой-то тест глупо и позорно.
Мне кажется, что сравнивать с хирургами неверно и хорошие тесты все же пока единственный способ понять, какой перед нами программист. Просто более сложный вопрос - какой тест является хорошим. Проскакивать мимо тестов можно, если о ваших достижениях реально известно работодателю. Если вы работали в Google 10 лет, то после этого пытаться тестировать человека на алгоритмы - глупо и даже унизительно.
В США и Канаде нет трудовых книжек и тут в резюме можно писать что угодно. Я могу запросто написать в резюме, что я 10 лет работал в Google и большинство не сможет этого проверить. Чтобы проскочить мимо теста, нужно реальное доказательство того, что я там работал и не просто уборщиком туалетов, а программистом.
Недостаток трудовых книжек пытаются компенсировать рекомендательными письмами, но тут тоже есть обход, которым часто пользуются особо хитрые люди - пишем в резюме, что работали в компании XYZ, даем телефон друга для контактов относительно рекомендаций и друг делает вид, что он сотрудник XYZ и дает по телефону положительную рекомендацию.
Как я говорил в видео, поиск хорошего программиста - очень сложный процесс. Теория и практика в процессе интервью могут обмануть, подвести и отсеять очень хорошего программиста и привести к найму плохого.
Но что делать? Как улучшить найм? К сожалению, у меня нет голубой таблетки, или какую там выбрал Нео. Сам найм и поиск хорошего программиста - это умение. Тут нужно чувствовать.
Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым
Испытательный срок и небольшое тестовое задание лучше IT-тестов.
При испытательном сроке к человеку приставляют ментора, который тратит своё время и очень часто этот ментор достаточно сирьорного уровня. Так что компания будет тратить не только деньги на плохого кандидата, но и синьор будет заниматься фигней
Суть алгоритмических заданий не в конечном решении (хотя это большой плюс), а в возможности посмотреть как человек думает и находит решение проблемы. Если компания работает с софтом ABC и дает такое задание на собеседовании, человек может за короткое время подготовиться и успешно пройти такой собес. А вот логическое мышление и применение разных подходов к решению одной проблемы быстро не натренируешь. Я сам раньше думал что важнее спрашивать именно практическую часть, но хороший, именно хороший программист, всегда должен понимать основы. А применительная часть придет сама
Правильно, и для этого задача должна быть относительно простая, чтобы задание было простым и его не нужно было объяснять 10 минут.
Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.