Посоветуйте, кто знает - небольшой (в плане объема кода), хорошо написанный (в плане языка) проект на языке C для ковыряния в целях обучения программированию на C. (Linux, gcc).
Лучше как раз изучается чтением чужого кода и его правкой. Идеальный вариант - это выбрать более-менее понятный для себя проект из открытых и почитать баглисты и todo. И пытаться это реализовать. Попутно будет вырисовываться понимание работы. И понимание vcs.
А велосипедизм - это прошлый век, пора за это карать анально.
Посмотрите исходные тексты coreutils. Там много относительно мелких программ вроде cat, wc и т. п. Однако, не смотря на небольшой размер, они содержат достаточно интересных фрагментов. Один код нумерации строк в cat чего стоит!