Ich würde mit dem Zitat beginnen:
"Wenn das einzige Werkzeug, das Sie haben, ein Hammer ist, behandeln Sie alles wie einen Nagel." (Abraham Maslow)
Das wichtigste Prinzip, IMO, ist es, viele verschiedene Programmierparadigmen und -sprachen zu kennen und sich gut über die Tools zu informieren, die Ihnen zur Verfügung stehen. Jedes Problem kann in fast jeder Sprache gelöst werden, die Sie wählen, sei es in der Mainstream-Sprache mit ihrer riesigen Standardbibliothek oder in einer kleinen Spezialsprache wie AutoHotKey. Die erste Aufgabe des Programmierers besteht darin, zu bestimmen, was gemäß der Spezifikation des Problems verwendet werden soll. Einige Konzepte bieten eine bessere Herangehensweise an das Thema, unabhängig von Ihrem Hauptziel - Raffinesse, Verschleierung, Leistung, Portabilität, Wartung, kleine Codegröße ...
Andernfalls werden Sie wie einige Programmierer fertig, die verzweifelt versuchen, etwas in einer von ihnen spezialisierten Sprache zu tun, während das Problem in einem anderen Programmierkontext trivial zu lösen sein könnte.
Dieser Rat geht mit der heutigen Tendenz zu mehrsprachigen Projekten einher (z. B. Webanwendungen, die mehrere Sprachen in einer einzigen Anwendung umfassen können, z. B. C #, JS, CSS, XPath, SQL, XML, HMTL, RegExp ... und sogar verschiedene Programmierparadigmen (zum Beispiel hat C # kürzlich einige Konzepte aus funktionalen Programmierparadigmen, Lambdas, eingeführt).
Das Grundlegende ist also ständiges Lernen für immer :)