Ich betrachte mich als Softwareentwickler auf hohem Niveau. Ich lese sehr gerne und es hat mir im Laufe meiner Karriere geholfen. Ich denke, mir geht es gut.
Im Moment verbringe ich viel Zeit damit, neue Dinge zu lernen. Ich bin nicht schlecht, wenn es darum geht, Code zu schreiben, aber ich bin kurz davor, eine Familie zu gründen, und ich sehe regelmäßig viele Senioren mit 14 bis 15 Jahren Erfahrung, die - weil sie weniger lernen - jetzt schlecht sind bei der Programmierung. Irgendwann waren sie inspirierende Figuren, aber sie sind es nicht mehr.
Sie könnten argumentieren, dass sich die Grundlagen nie ändern, aber es scheint einen Unterschied zu machen, wenn Sie 10 Jahre lang auf Delphi programmieren und plötzlich jeder das .NET-Framework verwendet. Es ist wahr, dass ein erfahrener Entwickler weniger Zeit benötigt, um ein neues Framework zu erlernen, aber es erfordert dennoch Zeit und Mühe.
Wie geht ein Softwareentwickler mit den Anforderungen des Jobs um und kann sich dennoch auf Dinge konzentrieren, die Sie zwangsläufig aus dem Job herausholen, wie die Gründung einer Familie?
Antworten:
Etwas, das Sie gesagt haben, ist aufgefallen: "Ich sehe regelmäßig viele Senioren mit einer Erfahrung von 14-15 Jahren ... sie saugen jetzt am Programm". Das ist ein ziemlich breiter Pinselstrich, mit dem Sie Menschen mit Erfahrung malen. Ich möchte auf ein paar Dinge hinweisen, die zu beachten sind:
Vielleicht waren die Leute, auf die Sie sich beziehen, nie gut. Es ist genauso gut möglich, dass sie dich ansehen und denken, warum bestehen Sie darauf, Dinge auf die harte Tour zu tun?
Es stimmt jedoch, dass Sie als Familiengründer viel weniger Zeit haben, sich mit neuen Spielsachen zu beschäftigen. Sie haben tatsächlich weniger Zeit, wenn Ihre Kinder älter werden, als wenn Sie jünger sind. Spielzeug macht dich nicht zu einem besseren Programmierer. Werkzeuge auch nicht. Was Sie gut macht, ist die Fähigkeit, Probleme zu lösen und eine funktionierende Lösung zu finden. Was Sie großartig macht, ist die Fähigkeit, anderen beizubringen, gut zu sein. Hier beginnt die Erfahrung zu leuchten.
quelle
Es ist schwer, die Zukunft vorherzusagen. Eines ist jedoch mit Sicherheit das Wertvollste, unabhängig von der Technologie.
Es ist die Fähigkeit eines Entwicklers , Probleme zu lösen .
Viele der Entwicklerqualität sind technologieunabhängig. Zum Beispiel ist die analytische Fähigkeit die wichtigste Qualität, die ich kenne. Es ist wie Mathe zu lernen. Es ist einfach zeitlos.
quelle
Ich wünschte, ich hätte einen positiven oder konkreten Gedanken - aber ich denke, wie ein Programmierer auf dem neuesten Stand bleibt und Beruf / Familie in Einklang bringt, ist von Programmierer zu Programmierer sehr unterschiedlich.
Zufällige Gedanken:
quelle
Erstens ist Microsoft im Verkauf von Softwareentwicklungstools und -plattformen tätig, auf denen diese Software ausgeführt werden kann. Dies gibt ihnen den Anreiz, Änderungen vorzunehmen, unabhängig davon, ob sie benötigt werden oder nicht. Das heißt nicht, dass all ihre Änderungen nutzlos sind, nur dass es in unserem Beruf viele Bereiche gibt, die viel stabiler sind. Mit der Erfahrung können Sie besser erkennen, auf welche Bandwaggons es sich lohnt, sofort zu springen, und auf welche Sie warten können, bis sie ausgereift sind.
Zweitens erfordert Erfahrung nur Zeit. Die meisten Entwickler mit 15 Jahren Erfahrung, die jetzt schlecht sind, waren vor 15 Jahren schlecht. Missattributiere nicht dem Alter, was durch Inkompetenz angemessen erklärt werden kann.
Drittens, verwechseln Sie nicht veraltetes Wissen mit der Unfähigkeit, das Neueste und Beste zu nutzen, wenn es nötig ist. Normalerweise reicht es, nur zu wissen, was da draußen ist. Zum Beispiel war mein Wissen über Webprogrammierung bis vor kurzem Ende der 90er Jahre alt, aber als ich eine Website für meinen Bruder erstellen wollte, wusste ich genug, um "neue" Technologien wie CSS, jQuery und Content-Management-Systeme auszuprobieren, und war fair In ein paar Wochen ist es soweit. Mit anderen Worten, wenn Sie in den letzten 10 Jahren nichts gebraucht haben, ist es unwahrscheinlich, dass Sie einen Notfall haben, in dem Sie sich wünschen, jetzt auf dem Laufenden zu sein.
Ein Elternteil zu sein ist in der Tat eine große Verpflichtung, aber weniger Zeit, als viele kinderlose Menschen zu denken scheinen. Die Eltern können immer noch Bücher lesen, fernsehen, Spiele spielen, im Internet surfen und gelegentlich sogar Unterricht nehmen. Schocker, ich weiß. Sie machen es einfach in kleineren Portionen und setzen Prioritäten. Das einzige, was ich ganz aufgegeben habe, ist, mir Wiederholungen anzuschauen.
quelle
Ich kann Ihnen versichern, dass Menschen, die nach zehn bis fünfzehn Jahren schlechte Programmierkenntnisse aufweisen, die Softwareentwicklung nie wirklich verinnerlicht haben. Das Beherrschen eines Werkzeugsatzes ist nicht dasselbe wie das Beherrschen der Kunst der Softwareentwicklung.
Ich schreibe seit über dreißig Jahren Code. Ich habe mehrere Perioden durchlaufen, in denen ich meine Karriere wegen externer Verpflichtungen und / oder Interessen auf Autopilot setzen musste. Was man mit zunehmendem Alter lernen muss, ist zu vermeiden, frühzeitig auf einen Technologiewagen zu springen. Die meisten Technologien werden ihrem Hype nicht gerecht. Als älterer Praktizierender mit Verpflichtungen außerhalb der Arbeit muss man mit seiner Zeit geizig sein. Ein erfahrener Praktiker kann es sich leisten, ein paar Jahre auf die Reifung einer neuen Technologie zu warten, da er die Kunst der Softwareentwicklung bereits beherrscht.
quelle
In meiner langjährigen Erfahrung:
flavor of the day
(manchmal gut, oft schlecht).Wie in einer Diskussion über Muster angemerkt, hat die vierköpfige Bande keine Muster erfunden. Sie entwickelten Terminologie und Vorlagen für Lösungen, die bereits angewendet wurden.
Im Gegensatz zu vielen anderen Bereichen gibt es noch viel, was nicht allgemein üblich ist. Ich habe viele hochmoderne Dinge kommen und gehen sehen. Viele davon waren Umformulierungen von Techniken, die bereits in der Praxis angewendet wurden, und diese waren in der Regel bis zu einem gewissen Grad erfolgreich. Andere sind mehr oder weniger verschwunden, und die meisten haben neue Ansätze. (Hat jemand in letzter Zeit eine Sprache der 5. Generation gesehen?)
Die aus meiner Sicht effektivsten Programmierer können bewährte Komponenten auswählen und zu einer funktionierenden Lösung zusammenfügen. Dabei handelt es sich selten um etwas Modernes, was in der Regel das Projektrisiko erhöhen würde. Die Fähigkeit, auf bereits geleistete Arbeit aufzubauen, ermöglicht es uns, den Umfang des Möglichen zu erweitern.
Programmiersprachen fallen normalerweise in relativ wenige Familien. Die Vertrautheit mit einer Sprache in einer Familie erleichtert die Arbeit mit ähnlichen Sprachen. Das Verständnis der in der Sprache verfügbaren Bibliotheken und deren Nutzung kann die Produktivität und Zuverlässigkeit erheblich steigern. Im Allgemeinen würde ich eine ältere Sprache mit geeigneten Bibliotheken einer neueren Sprache ohne geeignete Bibliotheken vorziehen.
Bei der Anwendung neuer Technologien ist es wichtig, das
Because We Can
Syndrom zu vermeiden . Das Hinzufügen einer neuen Technologie, weil sie das Aroma des Jahres ist, verursacht tendenziell mehr Probleme als es löst. Zu wissen, wann die Technologie ein echtes Problem löst und wann sie nur die Komplexität erhöht, ist eine nützliche Fähigkeit.Ein wirklich guter Programmierer wird die neuen Probleme lösen und die vorhandenen Lösungen für den Rest verwenden. Nur wenige Unternehmen brauchen Spitzentechnologie, alle brauchen solide Lösungen.
Normalerweise bedaure ich es, die Rasierklinge heruntergerutscht zu haben. Ich kann mich nicht erinnern, jemals eine bewährte Technologie bereut zu haben. Vieles, was als
new
Umpacken von etwas Bestehendem beschrieben wird. In der Regel wird durch dieses Umpacken das Verständnis und die ordnungsgemäße Anwendung erleichtert.quelle
Niemand kann mit allem mithalten. Sie waren wahrscheinlich ziemlich beschäftigt mit dem Microsoft-Angebot. Haben Sie Ruby auf RAILS- und Python- und NoSQL-Datenbanken und die Erstellung von Hadoop- und mobilen Apps sowie CSS und HTML5 und jQuery und ExtJS und ... betrachtet?
Ich bin schon eine ganze Weile in der Software. Ich versuche mit der wirklich neuen Technologie Schritt zu halten, wie den neuen Ideen für massiv parallele Datenbanken, und ignoriere die hässlichen (z. B. MFC, WinForms, SOAP, XML, EJBs) und trivialen Aspekte so weit wie möglich. Meist sehen wir nur großartige alte Ideen, die neu verpackt und schließlich übernommen wurden. Funktionale Programmierung? Ich habe INTERLISP 1977 benutzt. Handy-Apps? Es ist dieselbe ereignisgesteuerte Benutzeroberfläche und 2D-Grafik, die wir seit mindestens 30 Jahren verwenden. Sicher, es ist eine Kunst, eine brauchbare App für einen kleinen Touchscreen zu entwerfen, aber die Programmierung ist überhaupt nicht neu.
quelle
Ich bin mit @Amir einverstanden, dass Ihre Fähigkeiten nicht dazu führen, dass Probleme in Ihrer Sprache gelöst werden, aber ich weiß Ihre Besorgnis zu schätzen.
Wenn Sie die Freiheit haben, Ihre aktuelle Sprache zu wählen, wählen Sie eine, die den ersten Grundsätzen so nahe wie möglich kommt (z. B. eine Sprache vom Typ C ++), so dass die Lernkurve geringer ist, wenn Sie Ihre Arbeit in einen neuen Bereich verschieben Abstraktionen über dir. Wenn Sie derzeit nur in Hochsprachen investieren, ist das Herunterschieben einer Abstraktion viel schwieriger (auch wenn es nur um die Wahrnehmung geht).
Wenn Sie dieses Feedom nicht haben, nutzen Sie einfach Ihre 8 Stunden bei der Arbeit. Wenn Ihre Leidenschaft hoch ist, bleiben Sie nicht hängen, und Sie werden immer interessante Probleme finden, mit denen Sie Lösungen finden, die Sie natürlich dazu bringen, mehr zu lernen .
quelle
Es wird von Ihrem Job und den Jobs abhängen, die Sie wollen. Es gibt Stellen, an denen die Entwickler noch ältere Technologien einsetzen. Immer noch viel COBOL (ich bin mir sicher, dass sich etwas geändert hat.).
Wenn Sie in einem Unternehmen arbeiten, das einen wichtigen Wechsel durchführt, wie Sie beschrieben haben, können einige Menschen arbeitslos werden. Manchmal investiert das Unternehmen in die Ausbildung, anstatt dass Sie diese in Ruhe erlernen müssen.
Eine Familie zu haben, kann Ihre Berufswahl einschränken. Kann dich weniger mobil machen. Können Sie für die Hälfte Ihres Gehalts bei einem Start-up arbeiten gehen, in der Hoffnung auf einen großen Zahltag - vielleicht nicht mit Kindern und Hypotheken.
Neuere sind nicht immer besser und viele halten nicht lange.
quelle
Ich bin nicht im medizinischen Bereich, aber wie wäre es mit einer Analogie zwischen einem Entwickler und einem Arzt? In beiden Bereichen hat sich in den letzten 20 Jahren ein enormer Wandel vollzogen, und das Tempo des Wandels wird immer schneller. Bleiben alle Ärzte auf dem Laufenden? Bleiben alle Entwickler auf dem Laufenden? Können Sie Verallgemeinerungen über Entwickler oder Ärzte mit 14-15 Jahren Erfahrung anstellen? Mehr Erfahrung bedeutet, dass Sie mehr Antworten auf ähnliche Probleme haben. Trumpft Erfahrung das Interesse? Langfristig nicht.
Denken Sie wie ein Hai, der weiter schwimmen oder sterben muss. Lernen Sie weiter oder sterben Sie (oder wechseln Sie in das Management, wo die meisten arbeiten, wenn die Entwicklungskarriere nach 10-15 Jahren ihren Höhepunkt erreicht).
quelle
Ich habe die gleichen Bedenken im Hinterkopf, aber meine letzte Überlegung ist, aufhören zu wollen, Ihre eigene Anpassungsfähigkeit vorherzusagen und sich einfach anzupassen. Ich finde, wenn ich davon ausgehe, dass ich mithalten kann, mache ich das normalerweise einfach. Wenn ich Angst habe, veraltet zu sein, kann dies eine sich selbst erfüllende Prophezeiung sein.
Wie du gesagt hast, bleib auf deinen Zehen. Und wenn Sie nicht mithalten können, schwitzen Sie nicht zu viel. Technologie hat eine lustige Art, den Kreis zu schließen, und Sie könnten sich gleich wieder im Mainstream wiederfinden, um hervorragende Leistungen zu erbringen.
quelle