Schwieriges Thema:
Es kommt halt drauf an, was du programmieren willst. Für den praktischen Einsatz oder auf Professorniveau?
Eine joomla-4-moderne Komponente im Vergleich zu Joomla 3 ist ein ganz anderes Kaliber als ein kleines Plugin oder Modul. Letztlich ändert sich aber auch bei letzteren beiden ständig was.
Z.B. Core-Module sind mit kommendem Joomla 4.3. schon wieder anders aufgebaut als man das so kennt. Heißt nicht, dass die alten Varianten eines Module-Aufbaus nicht auch noch laufen und/oder der neue Aufbau nicht auch unter 4.2 läuft, aber halt nicht unter 4.1 oder 4.0.
Man kann halt weitestgehend davon ausgehen, dass Erweiterungen, die man auf Stand 4.0/4.1 programmiert hat, auch noch auf höheren 4ern funktionieren (sollten).
Vieles aber mit Sicherheit dann nicht mehr unter Joomla 5. Wenn man schon so weit blickt (so weit ist das übrigens gar nicht mehr, scheint es), wärs wahrscheinlich am Besten, immer "supermodern" zu programmieren und entsprechend nachzuarbeiten.
Ich schaue täglich auf GitHub unter den PullRequests zu, um mich täglich zu wundern bzw. mich zu ärgern, warum ich mir so viel Mühe gemacht habe "Joomla-4-modern" zu sein, wenn dann so was z.B. kommt: https://github.com/joomla/joomla-cms/pull/39552/files . Stichwort "Provider" und "Dispatcher" und wo ganze Dateien, die man so kennt und lieben gelernt hat, verschwinden. Übrigens auch eine letztlich komplett undokumentierte Geschichte; außer, dass man eben im Joomla-Core sich Erweiterungen als Vorlagen anschaut.
Zusätzlich kann man auch noch Joomla-3-4-kompatibel programmieren und das "halbmodern" und nicht ganz so veraltet wie im Joomla-3-Core zu sehen (weil der Core halt noch PHP5.3 unterstützen muss). Aber halt nur "halb". Für solche mache ich mir nicht die Mühe jeweils doppelt zu programmieren. Seit Joomla 3.9 war vieles möglich, was den gedanklichen Umstieg auf Joomla-4-Denke ""leichter"" machte. PHP-Namespaces z.B. Ja auch kein Muss, aber final eine praktische Angelegenheit.
Hilft nur mit kleineren Projekten, Ideen anzufangen, die man immer mal wieder auffrischt, so wie ich jetzt für ein ganz simples Modul im JED, dass ich halt auf das "ultramodern" (für wie viele Tage wohl?) angepasst habe.