If you are new to web programming I urge you to take a look at the widget documentation for the google widgets. I think the instant gratification of seeing these things in action will keep your interest high. I also think that there is an opportunity for you to release code (as google allows you to submit modules for others to use).
Even if you don’t have access to a publicly available web server, they have space for you to upload your modules. In addition, one of the cool things you can do is to use the content type ‘url’. Effectively this would allow you to write a little bit of code (in whatever web enabled language you’d like) and put the result into a widget. Below is my no nonsense guide to getting started :)
The module:
< ?xml version="1.0" encoding="UTF-8" ?>
<module>
<moduleprefs title="My Wonderous Module" />
<content type="url" href="http://mydomain.com/cgi-bin/wonderModule.pl"/>
</module>
Then the backend code (and feel free to use whatever web enabled language you like here, I am mearly using perl for the heck of it). Make sure that this file is named and located according to the url you put in the content type above. In our case we would name this file wonderModule.pl and it would be located in the $DOC_ROOT/cgi-bin/ directory of our publicly available webserver.
#!/usr/bin/perl -wT
use strict;
use CGI;
my $q = new CGI;
print $q->header();
print "Hello World!";
Then using the Developer Module from Google, add the url to the XML file (note, the XML file, not the cgi script)
Lastly refresh the Google personal homepage (as I have read elsewhere and experienced myself, if you uncheck the ‘cached’ box on the developer widget, it really only works about half the time. So if you have made a change to the file but it is not showing up, hit refresh a few times and it will come around). Our example would show up like so:
There is of course way more you can do then that, however that will get you up and running. Then using JavaScript and whatever language you use to generate the content for the url means there are very few boundries to what you can make your particualr widget do.
Happy hacking!