...The second reason, which is largely where a lot of my projects start: to learn key programming concepts by developing simple and useful applications.
It may be viewed as "re-inventing the wheel" and I know that this is not the only to-do list application out there, but it helped me learn some good things about programming, SQL queries, and how to best apply file permissions to my programs to make it as seamless as possible for end-users.
If you have any ideas of things you would add, let me know!