Важно задавать на собесах вопросы, способствующие выявлению способности разрабов к абстрактному мышлению, проектированию и построению систем, а не просто на знание синтаксиса или деталей конкретного ЯП (привет душным собесам).
Автор приводит (https://proglib.io/w/8f53f35e) примеры «нормальных» вопросов по Java, с которыми недавно столкнулся: «Что такое полиморфизм?», «В чем разница между List и Set и когда использовать одно вместо другого?», а также более специфические вопросы, касающиеся пакетов и ключевых слов для наследования.
Однако зачастую всё выглядит иначе — кандидату задают узкоспециализированные вопросы, отвечая на которые он демонстрируют лишь способность запоминать и воспроизводить факты, а не глубину понимания или способность к инженерному мышлению.
Такой подход может привести к отсеву потенциально подходящих кандидатов, обладающих необходимыми навыками и способностями, но не способных на момент собеса вспомнить каждую мелочь.
Хороший инженер — это не тот, кто может заменить компилятор, зная все тонкости синтаксиса, а тот, кто способен думать абстрактно, проектировать и строить системы c использованием современных инструментов.
не совсем. какая связь между синтаксисом языка и типами коллекций List и Set? сразу чувствуется джун, который и написал этот крик души. так вот, товарищ «хороший инженер» ака джун: знание базовых коллекшенов, их отличий и применения тебе не повредят, и я даже знаю почему тебя о них спрашивали на собеседовании. Недавно совсем на глаза попадался код такого вот «хорошего инженера», который наворотил циклов чтобы отфильтровать в массиве уникальные значения, попутно навешав кучу багов.
Максим, еще одна жертва курсов. 1) нет, результат не был верным, 2) кроме правильного результата есть еще такое понятие как качество кода, которое включает в себя много фич, таких как читаемость, поддерживаемость, оптимизиция, итд.
Сергей, после Джавы перешёл на Котлин, обратно не затащишь. И 20 лет назад казался графоманским, и сейчас. Хотя читать, по мне, проще, чем эти доллары в других языках.
В собеседовании первостепенную важность имеет вопрос способен ли человек думать. Но дальше всё зависит от специфики конкретной потребности команды / проекта. Если человек должен вот прямо с корабля на бал сесть фигачить конкретные задачи на потоке и у команды нет времени ждать пока он будет разбираться - тут нужно давать блок вопросов, которые покажут набита ли рука в той или иной технологии / языке / инструменте и т.п. Это не всегда должно быть решающим фактором, но наличие вопросов на простое знание определенной базы - это нормально. При этом уже скорее ненормально это наличие каких-то специфичных академических вопросов, ответ на которые не показывает ничего, кроме того, что кандидат знает ответ на этот вопрос.
Как раз на прошедшей неделе обсуждали эту тему. Проблемные области бывают сильно разные, поэтому полный ответ зависит от задачи, но если человек не понимает, как это всё работает внутри, то ожидать от него оптимальных результатов было бы наивно. Есть и такие задачи, где нужны именно знания деталей внутреннего устройства машины и ОС.Показать ещё Думать абстрактно при написании драйвера устройства? Не очень хорошо получится. И какие там современные инструменты проектирования, если там почти без вариантов C и ассемблер, и полностью ручная работа? Можно C++ с отключенной половиной возможностей, как C с более удобным синтаксисом — но даже для этого нужно понимать внутреннее устройство машины, языка и процесса компиляции намного больше, чем абсолютное большинство сегодняшних программистов.
Я в своё время (1987 год), начинал учиться программированию с калькулятора МК-61 (105 шагов программы) и компа БК-0010-01 (16 кб основной памяти). Там поневоле придётся научиться разбираться во внутреннем устройстве всего этого, иначе в такие ресурсы не уместить вообще ничего полезного. Была бы у меня возможность — заставил бы всех потенциальных программистов начинать именно с такой техники, и только после её полного и успешного освоения переходить к C, C++, Java и к «современным инструментам». Иначе сегодня тяжело становится найти человека, который действительно понимает, как это всё на самом деле работает, а главное — не готовы в этом разбираться. Большинству именно «современные инструменты» подавай — то есть, научились рисовать формы в каком-нибудь Delphi и думают, что крутые специалисты. А самое интересное, что вполне находятся задачи, на которых таких знаний достаточно, с приличной оплатой труда, поэтому их никак не убедишь, что помимо этой конкретной работы они мало чем отличаются от нуля.
Создать алгоритм, реализовать его и отладить - это большие трудозатраты. Гораздо проще и дешевле взять готовый код и использовать его. Вот что с этим делать? Деньги приходится считать - бизнес есть бизнес.
Виталий, а насколько много и часто мы все пишем драйвера?
Ну да, все бы начали на мк-61 и через 15 лет можно было уже стартовать джуном за 250$ - бест практис, как говорится. Это ведь необходимый каждому бекграунд, без которого работать невозможно(нет).
Библиотека программиста запись закреплена
Важно задавать на собесах вопросы, способствующие выявлению способности разрабов к абстрактному мышлению, проектированию и построению систем, а не просто на знание синтаксиса или деталей конкретного ЯП (привет душным собесам).
Автор приводит (https://proglib.io/w/8f53f35e) примеры «нормальных» вопросов по Java, с которыми недавно столкнулся: «Что такое полиморфизм?», «В чем разница между List и Set и когда использовать одно вместо другого?», а также более специфические вопросы, касающиеся пакетов и ключевых слов для наследования.
Однако зачастую всё выглядит иначе — кандидату задают узкоспециализированные вопросы, отвечая на которые он демонстрируют лишь способность запоминать и воспроизводить факты, а не глубину понимания или способность к инженерному мышлению.
Такой подход может привести к отсеву потенциально подходящих кандидатов, обладающих необходимыми навыками и способностями, но не способных на момент собеса вспомнить каждую мелочь.
Хороший инженер — это не тот, кто может заменить компилятор, зная все тонкости синтаксиса, а тот, кто способен думать абстрактно, проектировать и строить системы c использованием современных инструментов.
Последние записи:
reTermAI — ИИ-помощник для терминала
Новая платформа для быстрой разработки полноценных..
так вот, товарищ «хороший инженер» ака джун: знание базовых коллекшенов, их отличий и применения тебе не повредят, и я даже знаю почему тебя о них спрашивали на собеседовании. Недавно совсем на глаза попадался код такого вот «хорошего инженера», который наворотил циклов чтобы отфильтровать в массиве уникальные значения, попутно навешав кучу багов.
1) нет, результат не был верным,
2) кроме правильного результата есть еще такое понятие как качество кода, которое включает в себя много фич, таких как читаемость, поддерживаемость, оптимизиция, итд.
При этом уже скорее ненормально это наличие каких-то специфичных академических вопросов, ответ на которые не показывает ничего, кроме того, что кандидат знает ответ на этот вопрос.
Я в своё время (1987 год), начинал учиться программированию с калькулятора МК-61 (105 шагов программы) и компа БК-0010-01 (16 кб основной памяти). Там поневоле придётся научиться разбираться во внутреннем устройстве всего этого, иначе в такие ресурсы не уместить вообще ничего полезного. Была бы у меня возможность — заставил бы всех потенциальных программистов начинать именно с такой техники, и только после её полного и успешного освоения переходить к C, C++, Java и к «современным инструментам». Иначе сегодня тяжело становится найти человека, который действительно понимает, как это всё на самом деле работает, а главное — не готовы в этом разбираться. Большинству именно «современные инструменты» подавай — то есть, научились рисовать формы в каком-нибудь Delphi и думают, что крутые специалисты. А самое интересное, что вполне находятся задачи, на которых таких знаний достаточно, с приличной оплатой труда, поэтому их никак не убедишь, что помимо этой конкретной работы они мало чем отличаются от нуля.
Ну да, все бы начали на мк-61 и через 15 лет можно было уже стартовать джуном за 250$ - бест практис, как говорится. Это ведь необходимый каждому бекграунд, без которого работать невозможно(нет).