I think Ubuntu is good too, but for a programmer, it may be "too" simple. For example, (without jumping thru some special hoops) it boots directly to a gui, so no terminal (on an old underpowered laptop the gui may be too slow). It dosn't give you root access by default, so you don't get a real feel for administrating a linux OS. But it does install and run well.
Most of the newer distros have GUI installers, and an old underpowered laptop may not handle it well. I would recommend either Slackware( which still uses the console based installer) or something like DamnSmallLinux.