You have to do a medicine residency (3 years) to do cardiology fellowship (3-5 years). If you want to do pediatric cards instead of adult cards, you have to do a peds residency first (3 years).
Apply to cards fellowship during 2nd year or 3rd year. If 2nd year, you could start right after IM residency. If apply during 3rd year you'd have to work for a year or do research.
Oncology = same deal. Do internal med or pediatric residency first, then an oncology fellowship.