My brother recently started programming in Python.
He’s been working as an economist for a number of years, and has spent a fair amount of time in Excel. So he’s familiar with functions and macros. Going back a bit further, he has some programming experience (albeit in BASIC on a Commodore 64) and an appreciation of programming concepts (acquired via his love of video games and fascination with how they work).
Since he lives on the other side of the country, I suggested that we setup a shared code repository so that I can take a look at what he’s working on if he gets stuck, has some questions, or wants some help. He seemed interested in working on something together, especially since he was having trouble deciding what to code.
Ha! As if I have any interesting ideas! 😛
Onto setting up the repository. Personally, I feel that revision control is essential for programming even at the earliest stages. However, learning about it at the same time as learning about programming (and a new language) can be daunting. So I decided to use something that would be easy to understand and use.
I considered using git (which I use for other projects), but there aren’t any good graphical clients for it yet (IMHO). He’s an Ubuntu user and I remembered that RabbitVCS (formerly NautilusSVN) provides a nice GUI frontend to Subversion, so I figured that would be a fine option and a soft introduction to version control.
RabbitVCS isn’t yet included in the Ubuntu package repositories, but there is a .deb package that works well in the latest version of Ubuntu (10.10). Just download the Nautilus plugin from the RabbitVCS Ubuntu installation page. It should load in the Ubuntu Software Centre and install without any problems. (There’s also a Thunar plugin for those Xfce types).
I created the standard basic directory structure and added a few files. So now my brother can check stuff out by right-clicking within a folder window in Nautilus and selecting “Checkout…”. That should bring up a dialog similar to this one:
I won’t got into the ins-and-outs of version control here, since I can just direct him to Version Control with Subversion and the Subversion FAQ. Although I will have to email him the repository login details…