Because back in the days when they first invented putting names on jerseys, there would have been too many "John's" and "James's" and "Tom's" (and "Dick's" and "Harry's") to keep everyone sorted out. First names in the US have become much more creative since then, but the tradition stands.

Why do Football players prefer to use their family name?
If you have the time and resources, what would be the most effective way to increase your salary as a full-time programmer, outside of just doing your job? 

By "salary" here, I mean salary (adjusted for location cost-of-living) coming from a single programming job. 
