Как определить является ли человек программистом?
Дать задачку и слушать ответы:
«Буратино дали 3 яблока.
Два он отдал Мальвине.
Сколько яблок у него осталось?»
1. (initializing) Неизвестно, сколько яблок было у Буратино до того, как ему дали 3 яблока.
2. Неизвестно два "чего" он отдал Мальвине.
3. Неизвестно не является ли Буратино и Мальвина двумя разными сущностями, или одно из них это ссылка на другое.
4. Неизвестно что подразумевается под процессом "отдал", и результат этого процесса (может Мальвина не взяла).
5. Непонятно в какой момент "осталось". После того как он попытался дать в первый раз?
6. (state) Неизвестно не являются ли яблоки частью состояния Буратино, или самостоятельными объектами.
7. (волатильность) Не ясно, сколько времени прошло с момента нахождения яблок у Буратино до процесса "отдачи":
– может яблоки полураспадаются сами по себе (сгнивают), или возвращаются к тем, кто их дал.
– может их едят пока они у Буратино, а он просто этого не знает.
8. (длина переменной) Не ясно, сколько яблок может удержать Буратино.
Может, всего 2... и если он 2 отдал, у него нет яблок.
9. Если процесс дачи яблок рекурсивный, мы все останемся без яблок.
Короче, тёмная история...
#text@it_joke