Ein "nützliches" Programm liegt immer im Auge des Betrachters. Was für jemanden nützlich erscheint, ist für jemand anderen unnötiger Müll. Es gibt eine sehr große Menge an Programmen und Tools, da wird es immer schwerer etwas zu finden, das es (so) noch nicht gibt. Eine andere Möglichkeit wäre, wenn du bereits ein Programm kennst, das eine bestimmte Aufgabe erledigt, aber eben nicht ganz so wie du es dir vorstellst, dann entwickelst du es eben neu.
Zum Üben kann man natürlich auch andere Programme kopieren und je komplexer die Geschichte ist, desto mehr lernst du auch daraus. Nur musst du dich auch fragen, ob diese Tools jemand nutzen wird, denn warum sollte man deine Tools nutzen, wenn es andere viel ausgereiftere gibt. Was das angeht hätte ich vielleicht sogar eine Idee. Du könntest, so wie viele andere es auch tun, eine kleine Homepage einrichten, auf der du deine Tools veröffentlichst. Vielleicht auch einen kleinen Blog einbauen, in dem du deine Kenntnisse, Probleme und deren Lösungen mitteilst. Auf so einer Homepage würdest du zudem auch Feedback zu deinen Tools und eventuell sogar Vorschläge für neue bekommen. Wenn du auch noch die Sourcecodes public machst, z.B. als OpenSource, dann könnte es durchaus auch sein, dass dich jemand anschreibt und dir Tipps gibt, z.B. zum Programmierstil oder was man besser hätte machen können. Ich finde eine Überlegung ist es jedenfalls wert ^^ Ich muss dazu auch ehrlich sagen, dass man sich da keine große Hoffnungen machen sollte. Das Projekt wird nicht gleich am ersten Tag wie eine Bombe einschlagen. Bis jemand die Seite bemerkt, können mehrere Wochen oder Monate vergehn. Aber du solltest dennoch fleißig weiter bloggen, damit man auch sieht, dass da etwas passiert. Irgendwann würdest du einige Besucher bekommen, keine Frage, nur es wird eben etwas dauern.