views:

182

answers:

1

I've been a Software Developer now for over 10 years. I've mostly worked in Embedded C with some time spent on C++ (limited) and Java.

I'm looking to learn some new technologies and skills. I thought that database programming may be interesting to learn. I would like to make my own pet project in order to learn these things.

My platform of choice is Windows but can work in Linux also.

My ideal pet project would involve a GUI and some network/internet programming also which I have some experience doing.

I wouldn't mind getting into C# but don't want to bite off more than I can chew right now as my spare time is limited.

If I understand correctly SQLite allows for programs to use a database without running an ODBC server. Is this correct? Is that a good place to start?

What can I do to start that is not too complicated but not so simple that I won't learn the details also?

Your opinions and feedback would be appreciated.

+4  A: 

If you're wanting to learn database development (schema design, query languages) then you can use any of several technologies. SQLite, SQL Express (Microsoft), MySQL are examples of relational RDBMS. If you want to learn those you'll need to learn their SQL dialect. Good schema design practices are essentially the same whichever you use.

If you want to write database-dependent applications, you can use C++, but if you're looking to write GUI applications I suggest you consider digging into C#. The syntax is close enough to C++ and Java that I don't think learning it will get in your way as you focus on the database stuff.

There's also "dictionary" databases like MongoDB and NoSQL that essentially store data graphs. These are becoming more popular and allow developers to worry less about schema and more about the solving domain problems.

As for application ideas- start simple with a to-do list. Expand it to make it useful, as you do that you'll have to learn things to make it work. Once you're comfortable with the basics, go looking for open-source projects. CMS projects like DNN (which is VB) or Umbraco (which is C#) would be good learning tools.

Dave Swersky
Thank you very much for your comment. My current thoughts are to use my 19GB music collection (3900 songs) to create some sort of music library viewer.
DarthNoodles
That's a good idea for an app. I suggest you think about the entities you'd want to track- Song, Artist, Album, etc. Use your collection to design a schema, then read the data off the files and populate a database. Take a look at TagLibSharp: http://developer.novell.com/wiki/index.php/TagLib_Sharp
Dave Swersky