Wenn Sie zukunftssicher sein möchten, ist der beste Rat, den ich Ihnen geben kann, sich nicht in eine Technologie einzuschließen.
Lernen Sie APIs also nicht blind. Erfahren Sie, wie sie konzipiert sind. Was sind die Philosophien hinter den Kulissen? Was sind ihre Vor- und Nachteile? Denken Sie an Software im Allgemeinen, nicht an eine bestimmte Technologie.
Sie können auch an einer guten Programmkonzeption arbeiten. OOP und AOP sind eine gute Wahl, IMO. Aber verstehen Sie nicht nur den Mechanismus, sondern arbeiten Sie wirklich an der Philosophie hinter dem Mechanismus.
Vernachlässigen Sie nicht die allgemeine Informatik wie Datenstrukturen und Algorithmen, da es sich um technologieübergreifendes Wissen handelt, das immer nützlich ist.
Gehen Sie auch für gute Praktiken. Sie haben oft Dutzende Möglichkeiten, etwas zu tun, aber die meisten davon sind Mist: fehleranfällig, schwer zu warten, später schwer zu verstehen oder von einem anderen Programmierer usw. . . Normalerweise ist der Code schwerer zu lesen als zu schreiben. Lernen Sie also, wie Sie etwas mehr Aufwand für das Schreiben aufwenden, um das Lesen zu erleichtern (da Sie Code mehr lesen als schreiben).
Lernen Sie effektive Techniken zum Debuggen (intelligente Verwendung von Protokoll und Debugger) und zum Testen (Schreiben von Code, der auf einfache Weise getestet werden kann, und Automatisieren dieser Tests).
Dann benötigen Sie einen allgemeinen technologischen Hintergrund. Ich spreche von sehr breitem Wissen, wie die Funktionsweise eines Prozessors (Cache-Miss oder Verzweigungsvorhersage sind ein guter Start), von UNIX-Systemen, von Netzwerkprotokollen wie IP, TCP und Ethernet usw. . .
Am Ende lernen, wie man lernt. Wenn Sie lernen können, können Sie sich anpassen.
Sie benötigen einige fundierte Kenntnisse in bestimmten Technologien, um einen Job zu finden, aber diese sind sehr schnell veraltet (denken Sie beispielsweise an COBOL oder an die Webprogrammierung zur Zeit des IE / Netscape-Krieges). Verlassen Sie sich also nicht darauf, dass sie zukunftssicher sind. Sie werden der Schlüssel sein, um eingestellt zu werden, aber definitiv nicht das, was einen großartigen Programmierer ausmacht und was Ihre Fähigkeiten im Laufe der Zeit dauerhaft macht.
EDIT: Wenn Sie gerade erst anfangen, sollten Sie definitiv etwas erledigen. Eigentlich alles. Ein Spiel wie Tetris oder Snake ist ein guter Anfang und macht Spaß. Wenn Sie die Dinge nicht erledigen, werden Sie zu viel Zeit mit Lernen verbringen und wirklich nicht die Erfahrung sammeln, die erforderlich ist, um vollständig zu verstehen, was Sie lernen.
Lassen Sie uns ein Beispiel mit Entwurfsmustern geben. Designmuster sind großartig und Sie sollten sie definitiv verwenden. Bei Überbeanspruchung wird Ihr Code jedoch kompliziert und schwer verständlich. Sie müssen sich dem Problem stellen, das ein Entwurfsmuster löst, und einige Zeit verlieren, um es oder seine Nebenwirkungen zu lösen, um vollständig zu verstehen, worum es im Entwurfsmuster geht. Entwurfsmuster müssen im Laufe der Zeit als kleine Refactorings verwendet werden, wenn der Code wächst. Und Sie wissen, wann ein Entwurfsmuster benötigt wird, wenn der Nutzen größer ist als die durch seine Verwendung verursachte Codekomplexität. Dies erfordert Erfahrung.
Also definitiv, erledigen Sie Dinge, sie lernen aus Ihren Fehlern. Ich kann nicht mehr darauf bestehen: GET THINGS DONE !