Я должен быстро оценить десятки новых учеников. У меня есть 30 минутная встреча с каждым из них (через два или три дня). Я хочу использовать большую часть времени для обсуждения нетехнических аспектов. Поэтому я планирую использовать 10 минут на технические вопросы. Те же вопросы для всех них.
Все они уже наняты (они студенты), мне нужно знать средний уровень, чтобы подготовить тренинг.
В идеале сложность must be progressive
для того, чтобы установить уровень для каждого. Уровень я буду средним, и я сделаю средний по каждому вопросу тоже.
Если бы у вас было всего 10 минут и 10 вопросов к кандидату, какими были бы ваши 10 лучших?
Ответы:
Три вопроса, уточняющие конец ответа Эрика Липперта здесь :
Вопрос 1:
Вопрос 2:
Вопрос 3:
Самый важный фактор в вашем решении - определить, где ученик (реально) размещает себя , и эти три вопроса помогут вам быстро это определить. Это также помогает идентифицировать людей, которые могут быть скомпрометированы эффектом Даннинг-Крюгера (с обеих сторон), но это уже другая тема.
Если кто-нибудь найдет ссылку на этот метод в SO и отредактирует этот пост, добавив ссылку, я был бы очень признателен.
Во всяком случае, это должно упасть менее десяти минут.
источник
Не стесняйтесь предлагать замены, этот список имеет много возможностей для улучшения.
источник
источник
Мой опыт работы со студентами я бы начал с нуля - я нашел то, что люди изучают в университете, и что полезно, это два довольно разных набора.
Но так как у вас есть возможность поговорить с ними, было бы глупо не принять это.
Я предполагаю, что у них мало общего, поэтому я избегаю языковых вопросов. Единственное исключение, которое я сделал для этого, - это предположение, что они что-то сделали в сети, но этот вопрос может быть заменен на что-то эквивалентное, если они специалисты по встраиванию или что-то еще.
Вы просили, чтобы они были прогрессивными, что я вроде пытался сделать, но если мои предположения об отсутствии общности верны, то правильные / неправильные вопросы относительно хитры, и большая часть их компетенции зависит от того, насколько хороши их ответы на более общие вопросы. вопросы есть.
Так или иначе...
1) С какими языками и технологиями вы познакомились? Сколько из них (и каких из них) вы потратили на программирование более 50 часов (не включая лекции, лабораторные занятия и т. Д., Но включая проекты и задания, в которых вы программировали соло).
2) Опишите самую сложную программу, которую вы когда-либо писали. Что сделало это сложным?
3) Чему вас учили в университете (в отношении программирования), что вы действительно не думаете, что понимаете правильно? Если вы думаете, что все поняли (проверьте их оценки на этом этапе), поговорите о приложении или элементе приложения, которое вы видели, что вы не знаете, как кодировать и как вы можете начать думать об этом.
4) Каковы основные принципы объектно-ориентированного программирования?
5) Расскажите мне как можно больше о реляционных базах данных за 1 минуту.
6) Для веб-приложения опишите способ хранения информации о пользователе между страницами. Какие преимущества и недостатки существуют для механизма, который вы описали.
7) Выберите часть часто используемых функций в вычислительной технике и очень кратко объясните, как они работают на программном уровне (например, шифрование, сжатие). Также объясните, как вы должны были использовать эту функциональность, чтобы реализовать ее (здесь я буду искать тот факт, что, хотя вы, возможно, знаете, как что-то работает, вероятно, лучше взять для этого библиотеку).
РЕДАКТИРОВАТЬ: Реструктурировать и добавить пару дополнительных вопросов, чтобы сделать его более прогрессивным, как первоначально просили.
источник
Если это учащиеся, и вы хотите быть в состоянии определить, где они находятся в учебе, то действительно не должно быть каких-либо хитрых вопросов или вопросов, которые заставят их задуматься. Мой совет - просто сосредоточиться на основах - бессмысленно просить их объяснить, как работает рефлексия, если они все еще не в полной мере владеют объектами и наследованием.
Вот несколько примеров вопросов, которые можно использовать, и вы можете начать с чего-то из категории базовых знаний, а затем переходить на основе того, как они отвечают на вопросы, например, как работает адаптивное тестирование .
основы
ядро
enum
ключевое слово и когда вы его используете?продвинутый
источник
Без ответа на мой комментарий выше, это вещи, которые приходят на ум в целом, но я не уверен, что я бы посчитал эти технические.
источник
Я понимаю, что вы пытаетесь построить обучение, основываясь на том, чего они не знают, и что вы планируете провести несколько «занятий» для разных групп студентов. Поскольку у вас есть всего десять минут, почему бы не составить список вещей, которые вы хотели бы включить в тренинг, и задать эти конкретные вопросы. Таким образом, вы планируете научить их C #. Спросите, хорошо ли они это знают. Спросите, использовали ли они какие-либо более новые функции (LINQ, обнуляемые типы, обобщенные элементы, ...). Если в вашем обучении есть база данных, задайте несколько вопросов об этом. В конце вы можете увидеть, что одна из запланированных вами тем не нужна, потому что они все это знают, а некоторые другие темы нужны всем и так далее. Это более практично, чем пытаться задавать вопросы, не связанные ни с тем, что вы
источник
Задайте им вопрос FizzBuzz
Они знали, как это закодировать? Какой язык они использовали? Почему они написали это так, как сделали? Они использовали Рекурсию? Loops? Другие методы / функции? Указатели?
Вы также можете использовать этот вопрос в качестве основы для других вопросов (например, почему вы не использовали рекурсию? Как бы вы написали это с помощью указателей?)
Он не охватывает всего, но может дать вам представление об их навыках кодирования
источник
Десять вопросов:
Покажите цикл for, который суммирует значения массива. Спросите тогда, что делает кусок кода. [Могут ли они прочитать основной цикл?]
Попросите их написать цикл for, который печатает числа от 1 до 10, разделенные запятыми. [В дополнение к "они могут это сделать?" Вы можете судить, насколько повторяется их код.]
Показать фрагмент кода с двумя ссылками
a
иb
, указывая на два разных объекта с целочисленным полем,x
установленным, скажем,7
и5
. Тогда переназначить:a = b;
,b.z = 9;
, а затем попросить стоимостиa.z
. [Они понимают ссылки?]Показать два вложенных цикла for (используя индексы
i
иj
), накапливая значения из некоторого выражения. В самом внутреннем цикле есть два вычисления:double x = Math.pow(2.0, i)
иdouble y = x * j
. Попросите их сделать код более эффективным. [Они знают о простой зависимости петли?]Спросите их, что не так в примере кода А. (См. Ниже.) [Могут ли они мыслить логически?]
Спросите их, что не так в примере кода B. (См. Ниже.) [Также о логическом мышлении.]
Попросите их обратить это условие:
(s != null && s.Length != 0)
без использования!
. [Они знают Закон Деморгана?]Покажите фрагмент кода, похожий на старые рекламные объявления Lint в журналах: попросите их найти ошибку. Например, перегрузка
equals
вместо переопределения. [Они хорошие языковые адвокаты? Подобные вопросы в основном проверяют опыт: видели ли вы этот вопрос раньше?]Могут ли они описать, как выполнить бинарный поиск через отсортированный массив?
Могут ли они описать, как может быть реализован метод сортировки?
Это может показаться «слишком коротким», но я считаю, что для оценки учеников эти десять минут могут оказаться довольно трудными. Вы действительно хотите увидеть, как они занимаются кодированием. (Похоже, вы сделаете FizzBuzz, основываясь на одном комментарии.)
Если вы можете считать себя более сильным учеником, то вам также нужно будет спросить некоторых классиков, таких как рекурсия, реверсирование связанного списка, и, возможно, более сложный шаблон, например, объяснение списка XOR, или какие интуиции у них могут быть для почему сортировка набора чисел облегчает сжатие, а не сортировку.
Пример кода A:
Пример кода B:
источник
Конечно, вы идете об этом неправильный путь. Определите группы, в которые вы хотите поместить каждого учащегося
например
и так далее. Когда вы определили подходящие группы, которые будут зависеть от материала курса, решить, какие вопросы задавать, будет тривиально.
источник
Студенты уже наняты, и вы хотите создать программу обучения, поэтому частью сделки является выяснение того, как быстро они могут учиться (и / или что они знают: кого это волнует?). Почему бы не выбрать простые, средние и сложные вопросы и задать их заранее. Зачем засадить их вопросами, которые они могут не знать, если их можно легко выучить (некоторым)?
Вы увидите, вопреки тому, что думает большинство людей, что многие ученики не очень хорошо справляются даже с поставленными вопросами. Таким образом, вы узнаете о своих учениках, их знаниях и их способности учиться.
источник
Создайте 5 простых конструкций блок-схем и отдельный список ответов. Попросите их сопоставить картинку с фразой.
Нарисуйте следующее:
Попросите, чтобы они объяснили разницу между 1 и 2.
Попросите, чтобы они объяснили разницу между 3 и 4.
Попросите их дать пример того, когда может быть применима Конструкция Ситуации.
источник
Я не уверен, что можно было бы сделать это за 10 вопросов за 10 минут. Может быть, дать им 5 минут, чтобы рассказать вам, что они знают о .net. Затем подготовьте список из 20 тем и выберите 2 или 3 из того, что они упомянули, и 2 или 3 из того, чего у них нет.
Например, вы можете начать:
Затем после этого:
Затем задайте 5 вопросов для следующего:
Кратко объясните, как работает сборка мусора в .Net
....
Как вы отлаживаете что-то, если у вас есть проблемы?
источник
Я верю в "самооценку"! Если вы объясните человеку точную ситуацию, в которой он окажется, например: «вам придется кодировать SQL ... с базой данных из 100+ таблиц и 500K + записей, которые должны выполняться менее 4 секунд ...». И если вы спросите его: «Как вы думаете, вы можете сделать это?» - вы получите правильный ответ.
Я потратил 5 вопросов на ожидания студентов и еще 5 технических:
Чем вы можете пойти с некоторыми техническими вопросами, как (это должно быть в соответствии с темой). для ООП например:
источник
Я ищу решение проблем, сильную привычку к обучению, профессиональное развитие и широкое знание подходов.
chicken
как объект? Как это связано с другимиbirds
? Как насчетmammals
аanimals
?Я ожидаю, что разработчики:
источник
Таксономия Блума полезна здесь. Вы хотите достичь различных уровней знаний, начиная от механического запоминания до аналитического. Это дает вам возможность узнать, где находится их уровень квалификации. Поскольку ОП искала вопросы, которые нужно задать студентам, в приведенном ниже списке не предполагается, что у них будет больше знаний, чем у студентов 3-го или 4-го курса (я надеюсь).
концептуальный
практический
источник
Поскольку они уже наняты, для быстрой оценки, я думаю, следует (наряду с вопросами программирования), следует спросить их о
Эти вопросы просто для того, чтобы узнать их осведомленность о системе, которую они используют при программировании,
источник
Начните с самых низких уровней программного стека и выше.
источник
источник