Comparing the average software engineer to a cardiologist is just silly. If you're going to select a small, highly skilled portion of the medical field to analyze, you should compare it to a skilled portion of the software engineering field.
Let's draw a more valid comparison: that between cardiologists and graduates of good engineering programs. Graduates from top CS programs are making significantly more than 58K fresh out of college. The standard offer from Microsoft for a good UIUC CS student is 80K + starting bonus. Conservatively assuming an average salary of 100K over 15 years for the programmer, he is 1.5 million ahead once the cardiologist is finally debt free (12 years of school + 3 years to pay back debt). The cardiologist will then take 7.5 years to catch up, by which time the cardiologist will be in his 50s. I don't know about you, but I'd rather be debt free and making 100K in my 20s, 30s, and 40s, then being the guy on top when I'm 50.