Сложные проекты, которые стоит попробовать сделать каждому программисту: от текстового редактора до эмулятора игровой консоли. Список Остина Хенли с объяснениями, чему вас может научить каждый из проектов → http://web.eecs.utk.edu/~azh/blog/challengingprojects.html