Q:

Learning event driven programming

I want to learn more about event driven programming. Especially where and why I would consider using events. What resources/books should I consider reading to this end? (note: I'm indifferent to language. )

A:

Other than Jalayn's excellent answer I'd like to add:
Consider learning the Observer pattern
It is a Design Pattern used to implement event handling. If your programming language doesn't have first class support on delegates and events (see in Java how it solves with event handling in AWT and Swing) then you'll be implementing it using this pattern instead.
Note that Java has an Observer/Observable available in it's class library, but it is surprisingly simple to implement these yourself. In C# there are the IObserver/IObservable (that has some LINQ capabilities through Rx), but you can use delegates and events as well for the same purpose.

A:

.NET/C#
If you're indifferent to languages, you may try it in C# (Visual Studio Express C# is free). C# has specific event and delegate keywords for event-drive programming, and it is quite easy to grasp the idea. It starts with how event listening works, and ends with how to write your own events. There is also an interesting, but a bit further advanced article, on how to implement event-based asynchronous patterns here.
Now, there is an MSDN tutorial to start you up with the basic idea.
Java/Swing
If you want to try it in Java, you may, while programming a Swing application. There is also an Oracle tutorial on that subject, more specifically the intro. Edit: check out @Spoike's answer about the Observable pattern.
Javascript/JQuery
It is more specific to how JQuery's handles events, but you may find Benson Wong's tutorial helpful. Also, you just need to download JQuery, and you're ready to try.

