Also da jetzt zum einen
@LimDul eine recht deutliche Aussage getroffen hat und
@M.L. das etwas angesprochen hat, möchte ich kurz dazu meinen Senf abgeben und es versuchen, etwas kurz zusammen zu fassen und in Bezug auf die Frage vom TE einzuordnen.
Mit Stack ist in der Regel eine Kombination von Technologien gemeint, die aufeinander aufbauen. Full Stack bedeutet: Ein Entwickler kennt sich mit dem ganzen Stack aus.
Dies findet man vor allem im Bereich Web-Entwicklung. Wenn man nach Full Stack oder Full Stack Developer sucht, findet man nicht wirklich viel. Auf Wikipedia habe ich auch nur an einer Stelle den Full-Stack-Web Developer gefunden - was auch den Bereich aufzeigt, der in der Regel gemeint ist.
Der Stack umfasst dann Backend (incl. Datenbank die Server/Services) und das Frontend (Das ist halt meist Web). Ein Full Stack Web Developer kann also alle Layer angefangen von der Datenbank über die Mittelschicht hin zum Frontend.
Das hat aber mit Programmier-Paradigmen nichts zu tun. Ein Full Stack Web-Developer kann also z.B. mittels mysql / php und html/JS/css irgendwas bauen. Da hat er dann aber ggf. nichts wirklich objektorientiertes gebaut ... die ganzen anderen Paradigmen muss man nicht mal prüfen ...
Und der Stack kann komplett unterschiedlich aussehen. Also jemand, der in allen Bereichen aktiv ist, der hat dann von mir aus:
- Datenbanken (Diverse relationale Datenbanken und nosql oder so ... Aber hier gibt es extrem viel an Möglichkeiten und Optionen!)
- Mittelschicht (Bei Java wäre da JakartaEE und Spring zu nennen sowie die vielen anderen Frameworks sowie das Tooling (Application Server). Aber man will das ja ggf. für C# (Sowohl mit Libraries wie WCF als auch Tooling wie IIS ins Spiel) ... aber warum nicht auch C++? ....
- Frontend - da hat man dann sehr viel. Mobile Applikationen (begrenzen wir mal auf Android, iOS) die auf vielen Wegen unterstützt werden können ... Web-Applikationen mit diversen Frameworks und Möglichkeiten ....)
Nur da spielen die angesprochenen Programmier-Paradigmen keine Rolle. Ich kann das alles Abdecken nur mit JavaScript und irgendwelchen Datenbanken. Node.js als Server, für die mobilen Geräte und den Desktop nehme ich mir einen der vielen Wrapper um dann die Applikation, die ich mit einem Framework meiner Wahl (Angular, React, was auch immer) einmal erstellt habe, auch außerhalb des Browsers laufen zu lassen.
==> Also nix mit Aspektorientiert, nix mit Funktional, nix mit ....
Aber schauen wir einfach mal: Kann man sowas gleich gut?
Das halte ich für unwahrscheinlich, wobei ein Vergleich schwer ist. Wie vergleiche ich meine Java Kenntnisse im Middleware Bereich mit den html/JS/css Kenntnissen?
-> Praxis lässt sich vergleichen. Ich war die letzten Jahre vor allem im Middleware Bereich tätig. Dadurch kann ich dies derzeit am Besten.
-> Breite lässt sich vergleichen: In java ist jemand evtl. auch Spring begrenzt und da nur bestimmte Module. Im Web Bereich kennt jemand zig diverse Frameworks. Dann ist man in einem Bereich breiter aufgestellt. Aber wenn man da den Punkt davor mit einbindet: Man hat in der Regel nur eine oder zwei Technologien pro Bereich, in denen man richtig fit ist. Eine aktuelle ("Wir nutzen derzeit Angular für das Frontend") und dann noch ("Früher haben wir xyz genutzt"). Das wechselt nun einmal nicht so oft. Als Freelancer bekommt man mehr ab. Aber dann hast Du die Projekte und wenn Du vor 5 Jahren im Projekt ein Jahr lang xyz genutzt hast: Da hat sich sehr viel getan in der Zwischenzeit - und man ist aus der Praxis erst einmal raus ...)
Daher: gleich gut kann man da nix. Jeder hat seine Steckenpferde, die er besonders gut kann. Und seine Bereiche, die er eher weniger gut kann.
Und das sollte man sich auch bewusst machen. Zum einen wird man bei Vorstellungsgesprächen gefragt. Wo sind Stärken? Wo sind Schwächen?
Und zum Anderen entspricht dies ja auch dem, was man machen will. Ich will kein FrontEnd machen mit JavaScript und CSS. Da fühle ich mich einfach nicht wohl. Das Tooling ist zwar besser geworden aber ich bevorzuge meine eigene Spielwiese, auf der ich mich wohl fühle.
Und da spiele ich mit diversem Spielzeug, aber ich habe meine bevorzugten Spielzeuge.
Das heißt nicht, dass man sowas nicht kennen soll. Ich schaue mir alle Entwicklungen an, die es in die Berichterstattung schaffen. Flutter ist so ein Beispiel, was vor nicht zu langer Zeit aufgepoppt ist.... Aber ich habe gar nicht den Anspruch, das zu tief zu kennen ....
Aber weg von Technologien eines Stacks und zurück zu Programmierparadigmen:
Auch da gilt es ähnlich: Ich muss vieles nicht vertiefen.
Objektorientierung ist extrem wichtig und da fließen einige Dinge ein. Da muss ich gut sein, um sauberes Design mit Clean Code zu entwickeln.
Aber diese Spezialisierung brauche ich nicht in anderen Bereichen. Funktionelle Entwicklung fließt ein, aber doch nicht in dem Ausmaß, wie es hier teilweise gezeigt wird. Oder Aspektorientierte Entwicklung - ja, das kommt teilweise als wichtiger Baustein dazu, aber doch nicht in der Tiefe.
Also da würde ich dieses "gleich gut" generell in die Tonne treten.
Und dann wurde ja auch von
@White_Fox gut herausgestellt:
Wenn ein Programmierer alle Paradigmen beherrschen würde, wäre er sicher kein Angehender mehr.
Gerade ein Angehender "Programmierer" (Ich würde den Begriff nicht verwenden. Es geht ja nicht nur um Programmierung. Das ist ein veraltetes Konzept, das ja gescheitert ist. Das war um 2000 die Vorstellung, dass ein paar weniger Architekten dann z.B. in Rational Rose etwas designen und dann "dumme" Programmierer da nur noch Methoden füllen ... so mit Round Robin und so ...) kann vieles nicht kennen. Um so wichtiger ist es, dass er irgendwo anfängt, Erfahrungen zu sammeln. Ich sehe es kritisch, wenn Leute zig Sprachen gleichzeitig lernen müssen. Das ist teilweise ok, so es um primitive Dinge geht. Aber dann muss man sich davon trennen, denn dann sind Frameworks wichtig. Die Welt besteht halt nicht aus HelloWorld Programmen von Schule und Studium!