Тест на способности программиста [закрыто]

14

У меня много друзей, которые видят, что я делаю, находят это интересным и задают мне вопрос

Do you think I could be a programmer?

Мой ответ

...   ummm  ...  do you like math?

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

jondavidjohn
источник
Я предлагаю BuzzFizz: учитывая три различных исполняемых файла, могут ли они запустить их и определить, какой из них является «FizzBuzz»?
Макнейл
15
Не смешивайте математику и программирование. Я работаю программистом в течение многих лет. Я ненавижу математику. Другой пример: Джефф Этвуд - отличный программист. Он ненавидит математику (см. Codinghorror.com/blog/2007/01/… , пункт 3).
Арсений Мурзенко
2
@MainMa Я не могу подчеркнуть, насколько это правда. Я нахожусь в точной одной лодке. Математика никогда не была моей страстью или даже сильной стороной в этом отношении. При этом многие, кто меня знает, подтвердят мою крайнюю склонность (читай: одержимость) к программированию. Математика может быть основной частью программирования, но одно не обязательно порождает другое.
Натан Тейлор
1
может быть, когда я говорю: «Тебе нравится математика?», я имею в виду «ты уважаешь математику?», я фактически сосу математику вручную, поэтому мне нравится заставлять компьютер делать математику за меня, но я уважаю и понять конечные принципы математики, которые, как я считаю, помогают мне в моих процессах логического мышления
Jondavidjohn
2
«apptitude» - действительно классная опечатка в этом контексте :-)
Ферруччо

Ответы:

12

«Любящая математика» - плохой тест. Мне никогда не нравилась математика (в основном потому, что 90% учителей математики в старших классах сосали).

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

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

Важна способность представить систему и понять, как она работает.

  • Вы думаете о том, как все работает?
  • Вы думаете о способах улучшения повседневных вещей?
  • Можете ли вы представить себе, как построить что-то из простых строительных блоков?
Hasen
источник
Это больше похоже на геометрию?
Гульшан
это прикладная наука, так что на самом деле она не имеет чистой науки, «эквивалентной» как таковой.
jondavidjohn
1
Программирование больше похоже на плотницкие работы: вы сначала визуализируете решение, выбираете инструменты, осторожно применяете свое ремесло, используя лучшее дерево TDD. Иисус был бы программистом, если бы коммодор 64 был изобретен немного раньше.
Будет
2
На самом деле то, что вы описали, звучит очень похоже на математику - в отличие от того, что считается в школах математики.
Уман
1
@Brennan: Единственная математика, которую я нашел похожей на программирование, была дискретная математика в университете. Большая часть другой математики, которую мы изучали, была о бездумном применении правил и формул для решения какого-то уравнения. Вы можете утверждать, что это не настоящая математика, но это не имеет значения для этой дискуссии.
Хасен
8

Я помню, как в детстве я проводил тест на способности Brainbench ; Я до сих пор храню сертификат где-то подальше ...

Схема теста:

Abstract Thinking
    Process Flow
    Spatial Manipulation
Analytical Reasoning
    Inductive Reasoning
    Logic Application
    Word Problems
Attention to Detail
    Following Instructions
    Reading Comprehension
    Rule Interpretation
    Writing Analysis
Mathematical Problem-Solving
    Word Problems
Process Mapping
    General Processes
    Letter Manipulation Processes
    Number Manipulation Processes
    Shape Manipulation Processes
Дэн МакГрат
источник
1
Это очень сложный тест. Если бы кто-то сказал мне пройти тест, прежде чем углубляться в программирование, я бы испугался. Хорошо, возможно, мне было бы все равно, но любой, кто серьезно отнесется к тесту, был бы напуган.
Хасен
2
Так? Программирование может быть сложной областью (как и другие). Если вас так легко отпугнуть, возможно, это не для вас. Представьте себе, если вас спросят, хочет ли кто-нибудь стать врачом, в чем он должен быть хорош? Я не думаю, что вы заботитесь о том, чтобы это напугало некоторых людей ... Жизнь тяжелая и сложная, они должны привыкнуть к этому.
Дэн МакГрат
2
Ну, это сложное поле, если вы подойдете к нему с головой, у вас ничего не получится . Все, кто начинал программировать, начинали с простых вещей и считали, что это действительно легко. Эта вера, вероятно, будет поддерживаться на основе их опыта обучения. Вы никогда не поймете, насколько это сложно, пока не оглянетесь назад или не увидите, как кто-то борется с чем-то, что вам кажется очень простым.
hasen
Извините, по приведенному выше списку необходимы навыки, которые вы будете использовать как программист. Я думаю, что вы напуганы их именами, а не вопросами, которые подпадают под них. Это не то, что спрашивает вас о сложных концепциях, используемых в программировании. Другими словами, тесты на aptitude не имеют ничего общего с тем, насколько вы понимаете концепции программирования, которые вы можете выучить, речь идет о aptitude , поэтому комментарий о «начинать с простых вещей» здесь не очень актуален
Дэн МакГрат,
7

Есть шанс, что уже есть хороший.

См., Например, обсуждение отделения овец программирования от непрограммированных коз :

Все учителя программирования считают, что их результаты отображают «двойной горб». Как будто есть две группы населения: те, кто может [программировать], и те, кто не может [программировать], каждая со своей независимой кривой колокольчика. Почти все исследования в области преподавания и обучения программированию были сосредоточены на преподавании: измените язык, измените область применения, используйте IDE и работайте над мотивацией. Ничего из этого не работает, и двойной горб сохраняется. У нас есть тест, который выбирает население, которое может программировать, до начала курса. Мы можем разобрать двойной горб. Вы, вероятно, не верите этому, но вы будете после того, как услышите разговор. Мы не знаем точно, как / почему это работает, но у нас есть несколько хороших теорий.

То , что тест определяет, как согласуются люди с Операционализацией последовательности инструкций. Это означает, что они могут строить модели (абстракции) в своих умах и работать с ними.

Макнейл
источник
2

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

Джастин этир
источник
2

"Тебе нравится математика?" неплохое начало. Математика имеет решающее значение, после этого ...

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

  • Как бы вы сказали роботу, как сделать чашку чая? Будьте максимально конкретны.
  • Как заказать еду в McDonalds, какие шаги необходимо предпринять для обработки заказа, от первоначального указания до предоставления сдачи / еды.
  • Как работает телефонная система?

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

Orbling
источник
1

Как только вы подвергаетесь кодированию, у вас либо есть принуждение сделать это, либо нет. Способность - это только один из факторов того, насколько хорошо вы это сделаете. Подверженность хорошим примерам, инструкциям, время на задачу, усилия другие. Реальное желание / необходимость что-то сделать значительно облегчает использование других факторов.

JeffO
источник
1

Лучший вопрос, чем «Тебе нравится математика» - это «Тебе нравится решать логические головоломки»? Это такие вещи, как судоку и т. Д., Или выяснение ответа на такие загадки, как «Джон, Энн, Питер, Мэри и Бретань - соседи. У Джона белая машина, Бриттани живет слева от Анны, бла-бла, в каком порядке». чтобы они жили?

Потому что вот что такое программирование: одна огромная логическая головоломка.

Леннарт Регебро
источник
1
Я (в некоторой степени) люблю математику, но головоломки - это просто ненужные удары головой о стены. Я думаю, что вам нужна мотивация для создания чего-то полезного - в отличие от умственной гимнастики, чтобы показать, насколько вы умны.
Омега Центавра
Ну, ладно, тебе это не нужно, просто будь хорошим. :-)
Леннарт Регебро
1

Я думаю, что лучший вопрос: "Вам нравится строить вещи из блоков lego?"

davidk01
источник
1

Как и Гасто, персонаж из фильма Рататуй сказал:

Любой может готовить.

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

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

Pablo
источник
2
Я категорически не согласен, что любой может программировать. Это отстой, но это жизнь.
Уман
0

Я думаю, что математика важна. Не с точки зрения того, что вам нравится строго проверять материал, который требовался бы для серьезного математика. Но, учитывая проблему, которая важна для вас, вы можете сформулировать вопросы, связанные с ее решением, математическим путем. Я утверждаю, что все, что делает компьютер, - это математика, он принимает какие-то символические данные и выполняет на нем какие-то операции. Это суть математики. Таким образом, вы должны иметь возможность абстрагировать вещи в какую-то математическую структуру и рассуждать о шагах вперед. Не имея этого, вы просто взламываете, выбрасываете некоторый код и надеетесь, что он делает то, что вы хотите. Быть способным решать сложные алгебры, не делая опечаток и заблудиться, вероятно, не так необходимо. Но возможность сформулировать план очень важна. Я часто пишу десять программ, чтобы убедиться, что моя не слишком сложная математика была выполнена правильно. Объединение компьютеров с математикой для целей проверки, обнаружения и «да» для выяснения деталей, когда их много, является реальным ключом.

Омега Центавра
источник