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

ы находите интересные проблемы для решения?

Я часто хочу изучать новые языки программирования. Тем не менее, я чувствую, чтодействительно понять это, я должен написать что-то, что:

Реальный - это должно решить некоторую реальную проблему. Эта проблема не должна быть новой (на самом деле, иметь эталонное решение может быть хорошей идеей), но она должна быть чем-то, что заставляет меня прорабатывать некоторые грязные, грязные детали. Я не хочу решать математические головоломки или реализовывать алгоритмы и структуры данных, потому что это только учит меня, как решать математические (или A & DS) задачи в'new-language.

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

Готово - связано со страстным аспектом, я хочу что-то, что, я уверен, я могу привести в состояние доставки, только работая в свободное время. Хотя "компилятор C"очень реальный мир, и мне действительно нравятся компиляторы, это довольно большой глоток. Даже простой анализатор выражений - это то, что вы можете перепроектировать, отладить и оптимизировать много раз, когда вы не знакомы с идиомами конкретного языка.

Итак, как вы (или вы) решаете проблему поиска чего-то интересного для работы?

Особые решения, то есть проблемы, над которыми нужно работать, будут высоко оценены, но (извините за высокомерие), они просто «тупые знания». Что меня больше всего поразит, так это новые способы думать и атаковать проблему (то есть алгоритмы >> data: D).

РЕДАКТИРОВАТЬПока победителями являются «создать игру» и «исправить то, что вас раздражает (программирование | использование компьютеров)».

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

«Исправление чего-то раздражающего» имеет встроенную страсть и понимание реального мира, но оно требует, чтобы я не был избалован тем, что все работает, и что исправление не изменяет некоторые программы, написанные не на языке, который я хочу учиться.

(Вы оба заработали upvote. Прием может быть в пути)