Wie gehen Sie mit der Dynamik der Softwareentwicklung auf hohem Niveau um? [geschlossen]


25

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?


1
Was, du glaubst nicht, dass du eine Singularität schaffen kannst? Jeder gute Entwickler kann! - Scherz, hör mir nicht zu ...
Klaim

Antworten:


30

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:

  • Jüngere / weniger erfahrene Praktizierende lieben es, darauf hinzuweisen, dass ihre Senioren X oder Y nicht machen, wenn sie nicht verstehen, dass die Erfahrung gezeigt hat, dass dies schlechte Ideen waren. Dennoch scheint jede neue Generation von Praktizierenden diese Fehler wiederholen zu wollen. Dieses Phänomen ist allen Berufen gemeinsam, nicht nur der Programmierung.
  • Nicht alle Menschen, die mehrere Jahre gearbeitet haben, sind erfahren, reif oder gut. Es braucht Mühe, um besser zu werden. Wenn Sie viel Mühe investieren, um jünger zu werden, entsteht ein guter Erfahrungsschatz, auf den Sie später zurückgreifen können.

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.


1
Möchten Sie die Ablehnung näher erläutern? Sie mögen vielleicht nicht, was ich gesagt habe, aber es ist wahr.
Berin Loritsch

4
Die Wahrnehmung , die er hat, ist ein großer Teil seines Rätsels. Ich habe mich nur direkt mit dieser Wahrnehmung befasst. Kurz gesagt, ich mache mir mehr Sorgen um das Verfolgen von Werkzeugen als um seine Fähigkeit, ein erfahrener guter Entwickler zu werden. Er könnte sogar großartig werden . Das wird nicht passieren, wenn alle seine Erfahrungen ihm sagen, dass ältere Entwickler scheiße sind. Das ist ein schrecklicher Demotivator, um sich die Mühe zu machen, dorthin zu gelangen, wo er hin will.
Berin Loritsch

1
@Berin Loritsch: Das ist ein fairer Punkt. Deine Absicht war gut. // In den Vereinigten Staaten stolpern zu viele Menschen über sich selbst, um andere für eine Verallgemeinerung zu beschimpfen. Ich habe eine Ausnahme von Ihrer Antwort gemacht, weil es so aussah, als würden Sie dies tun.
Jim G.

1
Hoffentlich werden Sie im Laufe der Zeit lernen, wann Sie Zeit in das Erlernen neuer Technologien investieren und wann Sie sie ignorieren müssen. Fazit ist, dass Zeit eine kostbare Ressource ist. Als SOAP / XML RPC zum ersten Mal herauskam, war es zu früh, um zu sagen, was es wirklich tun würde. Mit ein paar Jahren Erfahrung haben wir einige schmerzhafte Lektionen gelernt und den Ansatz mit REST-basierten Diensten modifiziert. Außerdem brauchen wir alten Leute die jungen Leute mit grenzenloser Energie, um herauszufinden, was es wert ist, Zeit in das Lernen zu investieren. Wir können zwar etwas langsamer abdrücken, aber es dauert nicht lange, bis wir auf dem neuesten Stand sind.
Berin Loritsch

2
@Berin Loritsch: Vielleicht verstehe ich es jetzt. Tatsächlich habe ich einige Senioren gesehen (einschließlich meines derzeitigen Chefs), die einfach nur toll sind, wenn es um Problemlösungen geht. Er springt nicht vor Freude, wenn ich sage, Sie können X problemlos mit diesem Framework ausführen, aber er hat keine Angst, es zu verwenden, wenn er sieht, dass es tatsächlich nützlich ist. Vielleicht sind andere Senioren, die nicht gut sind, nicht gut, weil sie es nie waren. Nicht, weil sie wegen neuer Technologien nicht in Kontakt sind. Mir geht es jetzt viel besser. (Ich hoffe, was ich geschrieben habe macht Sinn)
Hemant

20

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.


1
Ja, plus die Fähigkeit / Ehrlichkeit zu wissen, wann Ihre verfügbaren Tools / Fähigkeiten das Problem nicht lösen. Sie lernen also ein paar neue Dinge und kehren dann zu "Fähigkeit, das Problem zu lösen" zurück.
Peter Rowell

1
eh ... Das ist ein bisschen vage und es ist ein bisschen umstritten. Wenn ein Entwickler immer noch vollkommen glücklich ist, "Probleme zu lösen" in vb6 ... nun, ich möchte nicht wirklich mit ihrem Code arbeiten. Wer auf dem Laufenden bleibt, sagt nicht die Zukunft voraus, benötigt Zeit und Arbeit und hat weniger Möglichkeiten, wenn er eine Familie hat.
Steven Evers

5

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:

  • Nicht jedes Softwareprojekt oder Unternehmen benötigt die absolut neueste Technologie - auch bei Software. Am dramatischsten ist die Veränderung an der Blutungsgrenze: Unternehmen, die etwas hinter der Blutungsgrenze stehen, haben häufig viele Möglichkeiten für Wachstum und Veränderung, aber nicht die weit verbreitete dringende Forderung nach sofortiger ständiger Veränderung.
  • Je erfahrener ein Programmierer wird, desto mehr sollte er in der Lage sein, die Erfahrung anstelle des neuesten / größten Modeworts zu nutzen. Ich habe festgestellt, dass die Leute, die ich mit über 20 Jahren in der Branche am meisten bewundere, Unmengen von Metaphern dafür haben, wie das neueste C # -Ding die perfekte Antwort auf das Problem ist, das sie in den späten 80ern mit C hatten Bringen Sie mit weniger Recherche mehr Verständnis auf den Tisch.
  • Jedes Mal, wenn ich Programmierer im Team bewerten musste, hat die Fähigkeit, Dinge zu erledigen und gut mit anderen zu spielen, die Bandbreite der Technologien übertroffen, mit denen der Programmierer zum Job gekommen ist. Obwohl die Branche viele konkurrierende, neue Sprachen, APIs und Tools entwickeln wird, stehen die Chancen gut, dass das Projekt jeweils nur Mitbewerber einsetzt. Aber Dinge zu erledigen und anderen zu helfen, die gleichen Dinge zu tun, geht nie aus der Mode und die Art und Weise, wie dies getan wird, entwickelt sich viel langsamer - nicht, dass IM, soziale Medien, Smartphones und alles andere im digitalen Zeitalter diesen Aspekt der Programmierung nicht ändern , auch.

Es kann auch interessant sein, in einem Unternehmen zu arbeiten, das ein wenig hinter der Schwelle steht, etwa drei bis vier Jahre. Sie können die Fehler, die andere gemacht haben, deutlicher erkennen und haben den Vorteil ausgereifterer Tools und Implementierungen.
Michael K

Genau. Eigentlich arbeite ich ein bisschen hinter der Kante und ich mag es zu wissen, dass andere ein bisschen mit dem Kopf dagegen gekämpft haben, bevor ich es versuchen muss. :)
Bethlakshmi

5

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.


3

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.


Es fällt Ihnen also nicht schwer, über neue Technologien auf dem Laufenden zu bleiben, wenn diese ausgereift sind?
Hemant

1
Diese Branche ist zyklisch. Die meisten neuen Technologien sind kaum mehr als neu verpackte alte Ideen. Wenn man solide Fundamentaldaten hat, wird man kein Problem damit haben, mitzuhalten. Denken Sie daran, man muss nicht auf dem neuesten Stand der Technik sein, um als Software-Ingenieur einen angemessenen Lebensunterhalt zu verdienen.
Bit-Twiddler

2

In meiner langjährigen Erfahrung:

  • Die Sprachen haben sich geändert (normalerweise relativ langsam).
  • Das Spektrum der Probleme, die praktisch gelöst werden können, ist gewachsen (etwas schneller);
  • Die Größe und Komplexität der Lösungen hat zugenommen (relativ schnell);
  • Es hat etwas gegeben, das das ist 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 CanSyndrom 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 newUmpacken von etwas Bestehendem beschrieben wird. In der Regel wird durch dieses Umpacken das Verständnis und die ordnungsgemäße Anwendung erleichtert.


2

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.


1

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 .


1

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.


1

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).


Ich bin mir nicht sicher, in welcher Situation Sie leben, aber in Australien ist es für Mediziner erforderlich, sich fortlaufend weiterzubilden und zu untersuchen, um ihre Registrierung beizubehalten (und damit die Fähigkeit, Medizin zu praktizieren).
Sedate Alien

0

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.