Warum müssen Entwickler mit Technologien und Methoden auf dem Laufenden bleiben? [geschlossen]

28

Ich bekomme immer den Rat, den Entwickler brauchen, um auf dem neuesten Stand der Technik zu bleiben - Dinge wie webrtc, Updates für HTML5 und CSS3 und neue js-Bibliotheken, Softwaremethoden wie TDD, DDD und BDD.

Die Frage ist warum ? Warum müssen wir uns ständig aktualisieren? Können wir uns nicht einfach an das halten, was wir wissen, und damit besser werden?

Wern Ancheta
quelle
16
Bei der Softwareentwicklung gilt es, beides zu tun: einige Technologien gründlich kennenzulernen und sich über die sich ständig ändernden neuen Technologien zu informieren. Dies ist zum Teil der Grund, warum es so verdammt schwer ist, gute Entwickler zu finden.
Joshin4colours
2
Ich halte es für eine faire Frage und kann auf der Website kein genaues Duplikat finden, um auf die bisherigen knappen Abstimmungen einzugehen. Bitte versuchen Sie nur, schlechte Antworten im Auge zu behalten, damit wir sie bereinigen können.
maple_shaft
4
Ich verstehe nicht, warum Programmierer als Klasse mit der neuesten "Web-Technologie" auf dem Laufenden bleiben müssen, was auch immer diese beiden Konzepte in der Praxis bedeuten. Ein neugieriger Geist und kontinuierliches Lernen sind sicherlich entscheidend für das persönliche Wachstum in jedem Beruf, aber das falsche Dilemma, dass "Web-Tech" die einzige Achse für das persönliche Wachstum ist, macht dies zu einer für meinen Geschmack zu strengen Frage. Kritische Betrachtung der Antworten mit hoher Stimmenzahl - gibt eine von ihnen überhaupt eine Antwort auf die Frage, die nicht nur die Plattitüden der Ermutigung und der Motivationsslogans zum "Bleiben im Spiel" beinhaltet?
bmike
1
@bmike: Da stimme ich dir zu: Natürlich wird ein Neugieriger die ganze Zeit neue Sachen lernen wollen. In diesem Fall bedeutet neues Zeug etwas, das Sie nicht kennen, was eine interessante Programmiersprache sein könnte, die es seit 40 Jahren oder länger gibt (z. B. Lisp). Die Branche drängt uns, die neuesten Informationen zu aktualisieren und sie als interessant und standardmäßig effektiver zu betrachten. Mein Hauptpunkt: Das Erlernen einer Technologie, die Sie nicht brauchen, nur weil sie neu ist, ist Zeitverschwendung.
Giorgio
1
@RobertHarvey Es ist nicht so, als würde die Frage "Wie?" oder was?" als wäre das nc. Es wird gefragt, WARUM und ich persönlich, dass dies relevant und verantwortungsbewusst ist.
maple_shaft

Antworten:

42

Neue Technologien tauchen nicht ohne Grund auf. Normalerweise liegt dies daran, dass sie bei der Erfüllung einer bestimmten Aufgabe effizienter oder leistungsfähiger sind.

Es ist immer noch wertvoll, an der alten Technologie für ältere Systeme festzuhalten, aber wenn sie irgendwann das Ende ihrer Lebensdauer erreichen, werden Sie hinter dem Spiel zurückbleiben.

Abgesehen von geschäftlichen Gründen hält Sie das ständige Lernen neuer Technologien auf dem Laufenden und öffnet Ihnen die Augen für verschiedene Arten der Bewältigung von Aufgaben, auch bei alten Technologien und so weiter.

Anonym
quelle
3
+1: Das Erlernen neuer Technologien ist oft hilfreich, auch wenn Sie diese Technologie nie direkt anwenden: Neue Ansichten und Perspektiven, die sich daraus ergeben, können sicherlich mit "alter" Technologie angewendet werden.
Joachim Sauer
7
Andererseits kann das Springen mit jeder neuen Technologie auch kontraproduktiv sein, da viele von ihnen so schnell verschwinden, wie sie auftauchen.
Gordon Bell
@GordonBell - Stimmt ... Ich kann für niemanden sprechen, aber ich teste das Wasser normalerweise nicht mit neuen Technologien, bis sie zumindest Anzeichen oder das Potenzial haben, mehr "Mainstream" zu werden - was die Vorteile von viel bringt Dokumentation, um Bildung und eine userbase etc. zu helfen
Anonym
Sie entstehen oft, um Bedürfnisse in der Wissenschaft zu befriedigen, aber nicht in der realen Welt. Du musst deine Doktorarbeit über etwas schreiben .
Dbracey
@dbracey: Richtig, und zwanzig Jahre später kann ein großes Unternehmen diese These finden, dass sich Forscher inzwischen zu einer ausgereiften Technologie entwickelt haben und sie als neue Technologie verkaufen .
Giorgio
27

Obwohl es durchaus möglich ist, eine Karriere auf einem einzigen Technologie-Stack aufzubauen, wenn Sie Glück haben 1 , ist es nahezu sicher, dass sich die Technologie in der Zeit, in der Sie erwerbstätig sind, mehr als einmal ändern wird. Sie können (und sollten) das, was Sie bereits wissen, verbessern, aber wenn Sie im Voraus neue Dinge lernen, können Sie die Lernkurve verkürzen, wenn der nächste Technologiewandel in Ihrer Branche eintritt.

Das hat auch eine weniger offensichtliche Seite: Das Lernen neuer Dinge hilft Ihnen sehr oft dabei, die Dinge, die Sie bereits kennen, aus einer anderen Perspektive zu sehen, genauso wie das Lernen einer neuen Sprache Ihnen hilft, mehr über Ihre aktuelle Sprache zu lernen 2 .

Schließlich sollte ein reiner Unterhaltungswert des Lernens neuer Dinge nicht unterschätzt werden: Für mich geht es darum, zweifellos fernzusehen.


1 Zum Beispiel, indem Sie zu Beginn Ihrer Karriere 1965 COBOL vor PL / I auswählen.

2 Dies funktioniert für natürliche und Programmiersprachen gleichermaßen.

dasblinkenlight
quelle
1
+1 @dasblinkenlight Ich liebe diese Aussage: "... das Lernen neuer Dinge im Voraus wird Ihnen helfen, die Lernkurve zu verkürzen, wenn der nächste Technologiewandel in Ihre Ecke der Branche kommt." Deshalb lerne ich jetzt Opa
Anthony
12

Können wir uns nicht einfach an das halten, was wir wissen, und damit besser werden?

Sie können , aber es ist wirklich einfach, in die Falle zu tappen, niemals etwas Neues lernen zu wollen. Ihre beruflichen Aussichten schwinden, Ihre Teamkollegen hören auf, mit Ihnen zusammenarbeiten zu wollen, weil Sie "der Programmierer sind, der völlig außer Kontakt ist".

Meistens müssen Sie ein Gleichgewicht halten. Der Versuch, die ganze Zeit alles Neue zu lernen, wird dazu führen, dass Sie in vielen Dingen arm sind und als flüchtiger Bastler wahrgenommen werden. Lernen Sie ein paar Dinge gut und konzentrieren Sie sich zumindest darauf, zu wissen, was vorhanden ist, auch wenn Sie es nicht effektiv einsetzen können.

Telastyn
quelle
2
Nichts macht mich bei der Arbeit wütender, als in einem Team mit einem Programmierer zu sitzen, der Code schreibt, wie er es vor 10 Jahren getan hat. Die Rahmenbedingungen haben sich weiterentwickelt. Die Tools haben sich weiterentwickelt. Wollen Sie Ihre Arbeit nicht einfacher machen? Tischler mit Handkurbelbohrern und Handsägen sehen Sie nicht den ganzen Tag, wenn sie jetzt Elektrowerkzeuge haben. Sie haben sich weiterentwickelt. Und wie in jedem Beruf werden neue Werkzeuge erfunden, um Bedürfnisse zu lösen. Wenn Sie das neue Tool nicht verwenden und versuchen, etwas auf die alte Weise zu hacken, wirkt sich dies in der Regel nachteilig auf die Qualität der zu erstellenden Komponenten aus. Sei es in Code oder in Holz.
CaffGeek
2
"Die Rahmenbedingungen haben sich weiterentwickelt. Die Tools haben sich weiterentwickelt. Wollen Sie Ihre Arbeit nicht einfacher machen?": Es gibt unendlich viele Möglichkeiten, bestimmte Probleme zu lösen, und manchmal ist ein neues Tool oder eine neue Sprache nicht besser, sondern nur gleichwertig mit dem alten. Aber Sie haben viel mehr Erfahrung mit dem alten, so dass Sie produktiver damit umgehen können. Wir gehen zu oft davon aus, dass NEW == BETTER ist. Stattdessen sollten wir diese Aussage immer anfechten.
Giorgio
2
@Giorgio - Es ist eine Sache, eine gesunde Skepsis gegenüber dem "nächsten großen Ding" zu haben. Es ist eine andere Sache, den Kopf in den Sand zu stecken, während Sie echte Fortschritte machen. Letzteres ist viel zu häufig.
Telastyn
4
@Telastyn: Ich würde beiden Einstellungen 50% zuweisen: Manchmal habe ich den Eindruck, dass eine neue Technologie vorangetrieben wird, nur weil sie neu ist. Und es ist nur eine alternative (keine bessere) Art, Dinge zu tun. Wir müssen also Monate damit verbringen, mit der neuen Technologie vertraut zu werden, und danach sind wir wieder so produktiv wie früher mit der alten. Aber Sie haben natürlich Recht, dass es auch falsch ist, den Kopf in den Sand zu stecken, und man sollte immer auf Neues achten.
Giorgio
@Giorgio, woher weißt du, ob der neue Weg besser ist oder nicht, wenn du nichts darüber lernst oder es nicht probierst?
CaffGeek
7

Nun, es liegt wahrscheinlich an der Tatsache, dass Sie ein Webentwickler sind und die Technologien in diesem Bereich sehr volatil sind, da Sprachen, Plattformen, Tools und Methoden immer beliebter werden. Es ist ein Feld, das sehr hoch ist. Wenn eine der Ebenen darunter geändert wird, ändert sich die Position oben. Und ehrlich gesagt ist es neu (ish). Neue Felder bieten viel Raum für Innovationen.

Persönlich arbeite ich mit eingebetteten Geräten, habe C gelernt und das hat für mich ziemlich gut funktioniert.

Aber ich lerne immer noch ziemlich regelmäßig neue Dinge. Sockets, SQL-Bibliotheken, Ncurses, Objekte in C. Und Methoden sind lose mit Technologien gekoppelt. Unit Testing wurde in meiner Schule fürchterlich gelehrt und ich wickle gerade meinen Kopf darum. Ich habe neulich gerade von der Abhängigkeitsinjektion gehört und festgestellt, dass ich genau so mein letztes Problem mit dem Testen einer Konsolenfunktion gelöst habe.

Die meisten Programmierer sind keine Fabrikarbeiter, die jeden Tag das Gleiche tun. Diese Jobs können (und sollten) automatisiert werden. Niemand zahlt für eine weitere Implementierung nach Bubble-Art. Es wurde getan.

Philip
quelle
+1: Gute Antwort. Man sollte die Technologien lernen, die man braucht oder die man nützlich findet. Neue Technologien sind wichtig und man sollte sich umsehen, um zu wissen, was los ist. NEU sollte jedoch nicht das einzige Kriterium für die Auswahl des Gelernten sein. Außerdem stimme ich zu, dass C, wenn es Ihren Programmieranforderungen entspricht, eine gute Sprache sein kann, mit der man arbeiten kann, auch wenn es schon lange existiert.
Giorgio
Dies weist auch darauf hin, dass neue Technologien häufig mehr Schichten über bestehenden älteren Technologien sind. In was ist Ihre VM implementiert? C oder C ++.
Dbracey
Dependency Injection ist nur ein neuer Name für eine sehr alte Idee.
MarkJ
6

Ich würde sagen, Sie können eine Menge ignorieren, was da draußen ist. Vieles davon ist Hype und Modeerscheinung und neue Namen für alte Technologie. Die wirklichen Fortschritte werden bald durch noch neuere ersetzt, die nicht wirklich von den alten abhängen, obwohl die alten Timer sagen, Sie sollten die alten verstehen, um die neuen zu verstehen. Wenn Sie das Feld für 10 Jahre verlassen haben, sind Sie bei Ihrer Rückkehr nur 2 Jahre zurück.

Allerdings kann es schwierig sein , die wirklich neue Technologie zu entdecken. Ich bin froh, dass ich OOP nicht verpasst habe, aber es sah auf den ersten Blick wie eine Handvoll Modewörter aus. Und Sie müssen häufig die aktuelle Technologie verwenden, um einen Job zu erledigen, auch wenn alle dies in 3 Jahren vergessen haben.

Der Software-Technologie-Hype und die Verwirrung vervielfachen die Veränderungen, mit denen wir uns täglich auseinandersetzen müssen. Tatsächlich schreitet die elektronische Technologie jedoch rasant voran und treibt die Software voran. Es gibt da draußen eine Menge wirklicher Veränderungen. Wir fahren immer noch Autos, fliegen Flugzeuge und fliegen mit denselben Fahrzeugen ins All, die wir 1965 benutzt haben. Aber die elektronische Hardware von 1995 ist hoffnungslos veraltet.

Die tiefgreifende Antwort auf Ihre Frage ist, dass die Wissenschaftler und Ingenieure, die mit Elektrizität arbeiten, sehr beschäftigt waren. Die Software muss weiterentwickelt werden, um die Vorteile der Hardware nutzen zu können. Schlimmer (oder besser?), Ich denke, die Software wurde von der Hardware weit hinter sich gelassen. Wenn die Hardware-Leute morgen alle in Rente gehen würden, würde sich die Software zumindest für die nächsten zwei Jahrzehnte rasant weiterentwickeln.

Wenn Sie die neue Technologie für einen Job benötigen, müssen Sie sie lernen. Wenn es die Chance gibt, dass es sich um eine neue Technologie handelt, die in 20 Jahren noch verfügbar sein wird, müssen Sie ein Auge darauf haben - und wenn Sie 20 Techniker beobachten, die für jeden sterben, der lebt, geht es Ihnen ziemlich gut. Und alles andere kann man eigentlich ignorieren. Abgesehen von dem einen Hauch von Rauch, der der gesamten Software der 2020er Jahre zugrunde liegt.

RalphChapin
quelle
+1: Ich stimme dir in Bezug auf Hype zu. Viel Innovation ist (leider) Hype und wir sollten die neuen Technologien, mit denen wir uns beschäftigen, sehr sorgfältig auswählen. Eine der Hypes im Moment ist Lambdas (was ich übrigens für ein sehr nützliches Konzept halte): Jede moderne Sprache muss sie haben (C #, C ++, Java?), Sonst ist es nicht mehr cool! Aber Lambdas gibt es schon seit 50 Jahren und es interessierte niemanden, als diese Sprachen ursprünglich entworfen wurden. Jetzt werden sie nachträglich hinzugefügt, um dem neuesten Hype zu folgen. ;-)
Giorgio
@Giorgio: Ich hoffe nicht Java. Lambdas sind ein gutes Beispiel (wenn auch einfacher und weniger problematisch als einige). Ich benutze sie in C # und ich liebe sie, aber die einzige Person, die es jemals bereuen wird, nicht zu wissen, was sie sind, ist die Person, der gerade gesagt wurde, dass sie Code reparieren soll, der voll von ihnen ist.
RalphChapin
Was meinst du mit "Ich hoffe nicht Java"? Dass sie nicht vorgestellt werden? Ich mag und benutze Lambdas (in Schema, Haskell): Sie sind ein ziemlich einfaches Konzept. Aber in C #, C ++ und Java scheinen sie mir eine späte Ergänzung zu sein, die irgendwie nicht zum Rest der Sprache passt. Ich bezweifle, dass die Erfinder kein Lisp kannten, aber sie entschieden, dass Lambdas nicht in diese Sprachen gehören. Jetzt sind sie ein Muss geworden. Also, ich mag Lambdas sehr, aber in C #, C ++ und Java scheinen sie nur ein Hype zu sein, mit dem neue Compiler, Bücher usw. verkauft werden.
Giorgio
1
@Giorgio: Java ist (oder war) eher eine minimalistische Sprache. Sie müssen nicht viel wissen (zum Beispiel Lambdas), um zu verstehen, was jemand anderes geschrieben hat. Ich mag es. C # ist eine maximalistische Sprache. Jede neue Linie kann Technologien vorstellen, die Sie noch nie gesehen haben. Es ist eine Explosion zu schreiben, weniger zu lesen. Keiner von beiden benötigt Lambda, obwohl sie in C # mehr helfen als in Java aus Syntaxgründen. Aber sie sind cool und sparen ein paar Codezeilen. Mit anderen Worten, du hast recht. Aber das ist C #, nicht Java. Noch.
RalphChapin
1
@iconoclast: Mit 20 Jahren Erfahrung als Programmierer betrachte ich mich nicht als Anfänger. Die Tatsache, dass Java eine relativ einfache und saubere Sprache ist (war), macht mich jedoch produktiver (ich kann komplexere Software mit weniger Aufwand entwickeln). Ich halte es für ein Missverständnis, dass eine einfache Sprache für Anfänger gedacht ist: Mit einer einfachen Sprache kann sich jeder Programmierer mit beliebiger Erfahrung mehr auf bestimmte Aspekte der Entwicklung konzentrieren (z. B. Verwaltung einer komplexen Architektur, Refactoring), da er weniger Zeit für die Bearbeitung benötigt andere Aspekte (z. B. Speicherverwaltung, kryptische Syntax usw.).
Giorgio
3

IMHO, müssen Sie ein Gleichgewicht finden. Das braucht Geschick und Erfahrung.

Sie müssen eine oder zwei Sprachen finden, auf die Sie sich spezialisiert haben, sich über Änderungen des Frameworks / Stils, die sich in dieser Sprache entwickeln, auf dem Laufenden halten und Ihre Fähigkeiten auf dem neuesten Stand halten.

Sie müssen aber auch sehen, wie sich diese Sprache entwickelt, und die Dynamik der Softwareentwicklung als Ganzes verstehen. Wird es Java in 10 Jahren geben, wird Phyton dort bleiben, wird PHP durch .NET und Mono ersetzt?

Dies sind groß angelegte strategische Fragen, mit deren Hilfe Sie zu einem hoch geschätzten Fachmann auf Ihrem Gebiet werden, während Sie über ein solides Backup (in 1 oder 2 Sprachen) verfügen und wissen, wann Sie von Ihrer Hauptplattform fortfahren müssen.

IMHO, nach all den modernen Sprachen, die jeden Tag entwickelt werden, ist eines der größten Probleme für die gesamte Branche. Wir haben eine Menge unentwickelter Sprachen in einer Sackgasse, in denen fast keine Fachleute arbeiten, und Leute, die Zeit damit verschwenden, sind selten echte Fachleute in einer Sprache. Meist schreiben sie Code, der aus allen Sprachen besteht und nichts richtig macht. Gleichzeitig könnte die Menge an Mannjahren, die für diese nicht standardisierten Sprachen verschwendet wird, für die Verbesserung weniger grundlegender Sprachrahmen und -spezifikationen aufgewendet werden.

Coder
quelle
2

Wie andere betont haben, tauchen viele neue Technologien auf, um neue Bedürfnisse zu befriedigen, und sie erleichtern es daher, bestimmte Probleme zu lösen. Daher sollten Sie auf dem Laufenden bleiben und zumindest wissen, was in Ihrem Bereich vor sich geht und welche neuen Technologien für Sie relevant sind.

Andererseits denke ich, dass manche Innovationen manchmal auch einen Hype-Faktor haben: Einige Ideen sind extrem alt, aber erst in den letzten Jahren werden sie in den Mainstream gedrängt. Manchmal habe ich den Eindruck, dass eine neue Programmiersprache (oder eine neue Version davon) vorangetrieben wird, nur weil "neu ist besser" und eine neue Technologie neue Bücher, neue Programmiertools, neue Compiler, neue Programmierkurse oder mit anderen Worten, Einnahmen.

Es kann also vorkommen, dass Sie eine neue Technologie erlernen müssen, ohne einen wirklichen Vorteil gegenüber der Technologie zu sehen, die Sie zuvor verwendet haben. Andernfalls besteht das Risiko, dass Sie nicht mehr auf dem Markt sind, weil Ihre Fähigkeiten altmodisch aussehen . Es liegt an Ihnen, die Entwicklung neuer Technologien zu verfolgen und zu verstehen, welche Sie produktiver machen können und welche nur dazu geeignet sind, Ihren Lebenslauf besser aussehen zu lassen.

Fazit: Ich denke, Sie sollten versuchen zu lernen, was Sie wirklich nützlich finden, unabhängig davon, ob es neu oder alt ist.

Giorgio
quelle
2

Denn "bei dem zu bleiben, was du weißt" bedeutet, dass es nicht gelingt, "besser zu werden". Sie müssen nicht jede neue Praxis und jedes neue Framework übernehmen, aber Sie sollten zumindest eine fundierte Meinung zu den populären haben. Bei der Webentwicklung würde es für einen Interviewer schrecklich aussehen, nur die Frage zu stellen. Web-Entwickler sind übersät mit Karriereleuten, die nach 2000 aufhören wollten, neue Dinge zu lernen, und das sollte auch so sein, weil sie mehr Arbeit für den Rest von uns machen. Halte dich von Entwicklern fern, wenn es dich nicht interessiert. Es ist ein mieses Verhältnis von $ / Stunde, wenn sich der Teil, in dem Sie neue Dinge lernen, wie Arbeit anfühlt.

Erik Reppen
quelle
Weil das Festhalten an dem, was Sie wissen, ein Misserfolg ist, das Wissen zu verbessern. Eine Möglichkeit, dies zu lesen, besteht darin, dass Sie durch längeres Festhalten an derselben Technologie ein tieferes Wissen darüber erlangen, während Sie von einer Technologie springen In den nächsten zwei oder drei Jahren haben Sie nur oberflächliche Kenntnisse, dh Sie werden mit keinem von ihnen wirklich vertraut sein.
Giorgio
Ich würde JavaScript nicht so gut verstehen wie ich, wenn ich mich nicht ein wenig verzweigt und verstanden hätte, wie andere Sprachen tatsächlich funktionieren, oder aktuelle Vorstellungen von bewährten Praktiken im Auge behalten und herausgefunden hätte, was die Leute tatsächlich tun die Haube ihrer Frameworks und Bibliotheken. Ich denke nicht, dass es wirklich möglich ist, sich als Entwickler zu einem angemessenen Karrieretarif zu verbessern, ohne regelmäßig neuen Ideen ausgesetzt zu sein.
Erik Reppen
Reppen: Da stimme ich Ihnen voll und ganz zu.
Giorgio