I have started a wiki for learning how to program. It will eventually cover the specifics of programming in Ubuntu, but for not it is pretty agnostic and very little of what is covered has anything to do with what OS you are running.
It turns out that writing a guide on how to program is pretty difficult. Deciding what to introduce, in what order, and how in depth to cover each topic is not easy. A large part of the time it has taken to write this is just me sitting and working out in my head how to proceed. Once I have come up with what I think is best, writing it is usually pretty easy.
The link is http://maxolasersquad.com/wiki/