How can I find and adapt the source code for Ubuntu programs, and what resources are there for improving my programming knowledge in any language? I would like to improve my programming skills so that I can contribute to Ubuntu.
Source code of all programs which Ubuntu is composed from is not stored in one central location because it is developed and maintained by thousands of independent developers. So it would be easier to choose a project you're interested in and then trying to find its source.
Example: from the top of my head, I decided to find the source repository of Transmission, the BitTorrent client shipped with Ubuntu. A short Google search lead me to http://www.transmissionbt.com/ where, in the Download section, I found a source tarball. You can download it, read compilation instructions, try to compile, then read the code and possibly try to tweak it. Hours of fun guaranteed.
I couldn't find SVN/Git repository for transmission, but many projects are hosted on sites like github, launchpad or Google Code so their repositories are publicly available. For such projects, it's reasonably easy to push your changes back to the official repository in case you add a useful feature or fix a bug.
If you want to start your own project, Ubuntu Developer portal has extensive documentation on using Quickly, a tool for creating applications using Python and pyGTK
The source for almost anything you install from the Ubuntu software center or repositories can be easily downloaded using the apt-get command-line tool. For example, to get the source for transmission (the example given below), you simply type: