В идеале они будут иметь следующие характеристики:
-
Они могут быть завершены только вечером кодирования. Для получения интересных результатов не потребуется неделя или больше. Таким образом, я чувствую, что я научился и что-то сделал в одном (возможно, нескольких часах) сидении.
-
Проблемы происходят из реального мира, или они, по крайней мере, являются игрушечными версиями реальных проблем.
-
Если проблема требует данных для тестирования решения, есть доступные в реальном времени наборы данных, или просто тривиально создавать интересные тестовые данные.
-
Легко оценить, насколько хороша работа, которую я сделал. Когда я проверю свое решение, из результатов будет ясно, что я выполнил что-то нетривиальное, либо путем простой проверки, либо количественной оценкой качества результатов.