Ich bin nur darauf gestoßen und habe mich gefragt, ob jemand eine Möglichkeit hat, diese Aussage zu beweisen oder zu widerlegen:
Etwas zu beachten ... Wie lang ist die Halbwertszeit des Wissens im High-Tech-Bereich? Es folgt dem Mooreschen Gesetz: Die Hälfte von allem, was Sie wissen, wird in 18 bis 24 Monaten veraltet sein.
QUELLE: Craig Trader antwortet auf diese Frage: " Was ist die effektivste Maßnahme, die Sie zur Verbesserung Ihrer Programmierkenntnisse ergriffen haben? "
Statement = (True or False)
Ja.Antworten:
Diese Aussage gilt nur für kurzlebige Technologien, die Sie ohnehin nur bei Bedarf erlernen sollten. Das heißt, Sie werden im Laufe Ihrer Karriere eine Menge von ihnen lernen.
Grundlegende Programmierprinzipien und -techniken sind ewig.
quelle
Unsinn
Leute, die solche Dinge sagen, versuchen nur, sensationell zu sein, oder sie lernen die falschen Dinge.
quelle
Der beste (schlechteste?) Test, an den ich denken kann, ist, nur ein Jahr zurück zu denken. Wie viel von den Programmierkenntnissen, die Sie jeden Tag nutzen, haben Sie in den letzten 18 - 24 Monaten gelernt? Wie viel wurde in den letzten 18-24 Monaten erfunden ? Das Prinzip scheint mir höchst verdächtig zu sein, da der Großteil der Programmier- und technischen Kenntnisse, die ich täglich verwende, über 5-10 Jahre erworben wurde.
Wenn Sie sich für so etwas wie eine Handy-Plattform entwickeln, ist es vielleicht ein anderes Ballspiel.
quelle
Meiner Erfahrung nach besteht eine enorme Kluft zwischen dem medialen / öffentlichen Bild, welche Technologie das Neue Neue ist, und dem, was in der realen Welt da draußen tatsächlich verwendet wird.
Nehmen Sie etwas wie Visual C ++ / MFC in den Desktop-Anwendungsbereich. Während es alt und veraltet zu sein scheint und wahrscheinlich nicht etwas ist, was ein neuer Programmierer im Moment für die Desktop-Entwicklung lernen sollte, gibt es immer noch eine Menge realer Projekte und Jobs, die dort geschrieben werden und die beibehalten werden wird wahrscheinlich für Jahre und Jahrzehnte aufrechterhalten werden. Ich wollte COBOL als Beispiel geben, aber das wäre theoretisch - ich kenne das VC ++ / MFC-Beispiel sehr gut persönlich.
Grundsätzlich ist es nicht so, dass Technologien nutzlos und ungenutzt werden, wenn sie "veraltet" sind, sondern dass sie nicht mehr als die aktuellste Art und Weise angesehen werden, Dinge zu tun und neue Projekte zu starten. Die Außerbetriebnahme großer realer Softwaresysteme, die nicht kaputt sind und nicht repariert werden müssen, geschieht jedoch viel langsamer. Viele der Visual C ++ / MFC-Projekte, an denen ich gearbeitet habe (die in den frühen 1990er Jahren begonnen haben), sind noch sehr lebendig und beschäftigen viele Programmierer (sowohl in der Wartung als auch in der Neuentwicklung) und scheinen nirgendwo hinzukommen irgendwann bald. Tatsächlich bin ich sicher, dass die meisten von denen, an die ich denke, im Jahr 2020 noch existieren und länger dauern werden.
Natürlich ist dies nicht einmal das Hauptproblem. Das Hauptproblem ist, dass viele der Konzepte ähnlich oder verwandt sind und man beim Erlernen einer neuen Technologie nicht von vorne anfängt. Zum Beispiel: Wenn Sie die Auszeichnungssprachen und ihre Besonderheiten verstanden haben, können Sie ganz einfach neue lernen. Es ist also nicht so wichtig, dass JSON das Neue ist und Sie jahrelang nur XML verwendet haben. Es ist nur eine Frage des Lernens neuer Syntax - im Gegensatz zu Nicht-Programmierern, die nichts über die Markup-Sprachen oder die internen Konzepte hinter den Daten, die sie darstellen, wissen.
TL; DR: 1) Es gibt eine Menge "veralteter" Technologien, aber da es nicht die sexy neue Sache ist, hört man nicht viel darüber - aber es ist alles andere als wertlos für diejenigen, die damit beschäftigt sind . 2) Programmierkonzepte bauen aufeinander auf und entwickeln sich weiter. Nur wenige Dinge müssen Sie wirklich von Grund auf lernen und das Alte vergessen.
quelle
Alles hängt davon ab, worauf Sie sich beim Lernen, Auswendiglernen und allgemeinen Auffüllen Ihres Gehirns konzentrieren. Details können schnell veraltet sein, aber Prinzipien sollten viel länger dauern.
Beispiele von Dingen, an denen ich in letzter Zeit intensiv mitgewirkt habe:
Die Dinge, die ich in Fettdruck gelernt habe, werden viel länger dauern als die Dinge auf der linken Seite. Wenn Sie die Fallen der Überalterung bei der Programmierung vermeiden möchten, konzentrieren Sie sich auf die Prinzipien .
quelle
Robert Harvey hat es verstanden , aber nachdem ich darüber nachgedacht habe, bin ich gezwungen, Kürze in den Wind zu werfen und zu antworten.
Ich muss einen Haftungsausschluss hinzufügen, ich habe mich in dem Moment, in dem er angekündigt wurde, nicht mit Perl On Rails befasst . Ich hatte das Gefühl, dass es für die sehr lokalisierte Verwendung, für die es entwickelt wurde, gut funktioniert, und habe es zur späteren Bezugnahme notiert.
Ich bin in den letzten zwei Jahrzehnten auch nicht mehr als 50 Permutationen in der Standard-C-Bibliothek erlegen. Ich wünschte, ich könnte eine Verknüpfung zu ihnen herstellen, aber sie scheinen nun existenziell herausgefordert zu sein.
Wenn etwas Neues herauskommt, schnapp es dir und schau es dir an. Wenn Sie "ick" sagen, lassen Sie es fallen. Wenn Sie "Wow" sagen, verbessern Sie es. Wenn Sie über eine solche Entscheidung nicht nachdenken können, gehen Sie und suchen Sie die Gehirne der Leute, die das können.
Beurteilen Sie alles allein nach dem technischen Wert . Ihre Zeit wert bedeutet, dass Sie Zeit sparen, während Sie sich von den meisten Kollegen einen Daumen hochschieben lassen.
Jetzt werde ich Ihre Frage direkt ansprechen:
Sie müssen uns in 18 - 24 Monaten Bescheid geben. Unternehmen zahlen beträchtliche Summen, damit die Leute darüber reden, wie großartig ihr Produkt ist. Wir müssen nicht nur Start-up-Unternehmen, sondern auch etablierte Giganten durchwühlen, die beträchtliche Summen an Bargeld ausgeben, um:
Selbstverständlich können Sie Ihre eigenen Entscheidungen auf der Grundlage früherer Erfahrungen und Ihrer Versuche mit etwas Neuem treffen. Vermeiden Sie dabei Arbeitgeber mit Managern, die Gebote anhand ihres RSS-Readers austeilen.
Ich habe jedoch diese erstaunliche neue Bibliothek für den Brückenbau, die intelligent genug ist, um je nach Gebietsschema zwischen Brooklyn und London zu wechseln. Es wird riesig, willst du ins Erdgeschoss?
Meine Antwort ist zwar absichtlich sardonisch und vielleicht der Anti-Boolesche, aber wirklich? Für Ausnahmebehandlungszwecke ist meine Antwort ein durchschlagendes Falsch .
Wenn Sie der Meinung sind, dass etwas technisch einwandfrei ist, nehmen Sie es an, andernfalls läuft es wie gewohnt. C ist meine Hauptsprache, es funktioniert genauso gut wie vor fast zwei Jahrzehnten, während ich doppelt so gut bezahlt werde wie vor fast zwei Jahrzehnten.
Ich bewundere Ihre prägnante Form und Zitate, aber dies scheint ein brechendes Experiment zu sein .
Gut gemacht :)
quelle
Es hängt davon ab, wie viel Zeit Sie mit Lernen verbringen. Ich habe 1980 das Bourne-Shell- und C-Programmieren gelernt. Ich benutze es immer noch jeden Tag. Andererseits ist die Zeit, die ich mit dem Erlernen von Compuserve-Menüstrukturen verbracht habe, ein völliger Verlust, und es war selbst zu dieser Zeit nicht wirklich furchtbar nützlich. Dann gibt es dazwischen Dinge wie RS-232-Kabel-Pin-Outs und serielle Protokolle: Heute nutzlos, aber für ungefähr zehn Jahre meines Lebens unerlässlich. Wählen Sie die Technologien, denen Sie viel Zeit widmen, sorgfältig aus.
quelle
Das Prinzip ist wahr. Der tatsächliche Wert ist meines Wissens viel größer.
Ich erinnere mich an eine Pragmatic Programmer-Präsentation, in der sieben Jahre vergangen sind, aber ich kann sie jetzt nicht finden, sodass der Wert möglicherweise etwas anders ist.
Stellen Sie sich vor, wie sich Technologien verändert haben: Vor fünfzehn Jahren war das Web brandneu und wir haben alle versucht, Webseiten - vielleicht sogar mit Tabellen - und ein animiertes GIF zu schreiben. Vor sieben Jahren startete AJAX. Heute schreiben einige Leute Doom-ähnliche Spiele für Handys.
Am besten lernen Sie allgemeine Dinge, die mit der nächsten Technologie anwendbar sind, anstatt zu sagen: "Beginnen Sie! Ich kenne nur Visual Basic!" (oder das Äquivalent in 15 Jahren).
quelle
Ich denke, es ist überhaupt nicht korrekt.
Früher war es eher wahr - vor langer Zeit hatten Sie keine andere Wahl, als auf einer relativ niedrigen Abstraktionsebene zu programmieren, was bedeutete, dass Sie eine Vielzahl von Details kannten, die auf einer neuen Plattform nicht mehr relevant waren.
Mit der Zeit wird jedoch immer mehr auf immer höheren Abstraktionsebenen programmiert. Eine höhere Abstraktionsebene führt mehr oder weniger direkt zu einer geringeren Sorge um Details, die sich wahrscheinlich ändern und schnell veralten.
Es gibt offensichtlich Leute, die an Dingen wie Gerätetreibern oder winzigen eingebetteten Systemen arbeiten, die immer noch auf einem niedrigen Abstraktionsniveau arbeiten müssen. Außerhalb solcher Gebiete gibt es jedoch relativ wenig Entschuldigung für solche Dinge. Ja, eine Menge Leute tun viel trivia lernen sie nie brauchen, aber wenn Sie wirklich solche Sachen in Ihrem Code sind viel, sind die Chancen ziemlich gut , dass Sie gerade nicht sehr gut Entscheidungen zu treffen. Die meisten dieser Dinge können (und vor allem sollten) im Allgemeinen vermieden werden.
quelle
Möglicherweise wahr, möglicherweise nicht; Selbst wenn die tatsächlich erlernten Dinge bald nach dem Erlernen veralten, können die dahinter stehenden Konzepte und Ideen viel länger von Nutzen sein.
quelle
Wenn das der Fall wäre nur 5.39x10 -6 von Mythical Man-Month würde heute relevant sein. Da es nur sehr wenige Schlüsselprinzipien gibt, die Fred Brooks Details signifikant datiert haben oder sich als grundlegend falsch erwiesen haben.
quelle
Ein Großteil Ihres Wissens wird während des Zeittests relevant bleiben (obwohl es im Laufe der Zeit einige Aktualisierungen erfordern kann), insbesondere grundlegende Informationen wie Datenstrukturen usw.
Wenn Sie die Programmiersprachen X und Y beherrschen, ist das Erlernen der Sprache Z natürlich einfacher als wenn Sie weder X noch Y beherrschen, sodass Sie Ihre Vorkenntnisse nutzen können, um neue Kenntnisse anzupassen.
Erwähnenswert ist auch, dass viele Fähigkeiten, die vor Jahrzehnten relevant waren, auch heute noch relevant sind, auch bestimmte Technologien wie C (Anfang 1970, heute noch relevant).
Es ist möglich, dass die Hälfte von dem, was Sie wissen, im Laufe der Zeit veraltet sein wird und wahrscheinlich mehr als die Hälfte, aber alle 18 bis 24 Monate klingen Sie ein bisschen extrem.
quelle
Einzelne Fakten haben keine große Relevanz. Man nimmt sie, versteht sie, wendet sie nur für den Moment an.
Auf diese Weise lernen Sie jedoch den Umgang mit Fakten oder zumindest mit einer bestimmten Teilmenge von Fakten. Ich habe in der Schule eine Menge Mathe gelernt, die ich eigentlich nie benutzt habe. Trotzdem habe ich mathematisches Denken gelernt und trainiert.
Ich habe als Webprogrammierer bei Ruby on Rails gearbeitet. Und obwohl ich im Moment keine Websites schreibe, hat es mein Denken über Code stark beeinflusst und mich zu einem besseren C ++ - Codierer gemacht. (Verwenden Sie beispielsweise mehr AWL).
Ähnliches gilt für das Erlernen von Racket. Ich habe nie ein großes Programm geschrieben, aber es gab mir einen neuen Standpunkt, um mich auf ein Problem zu konzentrieren.
Es geht nur darum, deinen Geist zu trainieren ...
quelle
Ich denke, Sie können die Aussage leicht widerlegen, indem Sie mit dem Objekt spielen, das Sie in "der Hälfte von allem, was Sie wissen".
Es gibt eine bestimmte Wissensverteilung, von denen einige (unabhängig von der Rate) veraltet sein werden. Wenn eine bestimmte Person also nur Wissen aus der Hälfte dieses Spektrums enthält, das nach 18 bis 24 Monaten verbleibt, brechen sie die Aussage.
quelle
Hier ist eine bessere Version des Satzes: Die Hälfte von allem, was Sie heute (oder in dieser Woche, in diesem Monat oder in diesem Jahr) gelernt haben , wird in ein oder zwei Jahren veraltet sein. Das ist wahr - Sie lernen, wie man etwas in Version 5 eines Tools macht, und wenn 6 herauskommt, macht es das automatisch, oder Sie lernen, wie man etwas in einer Sprache macht, die sich nicht durchsetzt, so dass Sie es nie wieder benutzen. Aber die andere Hälfte von dem, was Sie jeden Tag lernen, bleibt bei Ihnen und wächst und macht einen Entwickler mit 20 Jahren Erfahrung besser als einen Entwickler mit zwei Jahren Erfahrung.
quelle
Es gibt ein Nugget von Wahrheit oder Relevanz, aber ich denke, es ist ungenau dargestellt.
Ein besserer Weg, dies zu präsentieren, wäre
oder
Es mag davon abhängen, in welchem Bereich Sie arbeiten, aber ich weiß, dass ich ständig an neuen Technologien arbeite. Jedes Projekt scheint eine riesige Menge neuer Dinge zu haben, die ich lernen muss - neue Frameworks und Muster, neue Ansätze für leicht unterschiedliche Probleme oder einfach neue Tools, die (angeblich!) Besser sind als das, was wir zuvor verwendet haben.
Wenn für jedes sechsmonatige Projekt nur 12,5% neues Wissen erforderlich ist, sind über zwei Jahre hinweg volle 50% des verwendeten Wissens "neu".
Trotzdem ist dies nicht sehr aussagekräftig oder genau.
quelle
Oh Gott, so wundervolle, vernünftige Antwort ist oben. Gute Arbeit.
Einfach gesagt, wenn es eine Modeerscheinung oder ein Trend ist, wenn Sie ein guter Programmierer sind, werden Sie darüber lesen und dann zu dem zurückkehren, was Sie normalerweise tun oder mit dem Sie arbeiten.
Es sei denn, Sie haben etwas Entscheidendes zu tun oder neue Praktiken, die für Sie sinnvoll sind.
Nur weil etwas neu, etwas neu oder etwas alt ist, ist es für nichts die Lösung, die man verwenden muss.
Ich habe einen einfachen Satz, das Cover ist alles.
"Wenn es funktioniert, benutze es"
Das heißt, wenn diese neue Technologie unglaublich cool ist, aber nichts, was Ihre Arbeit produktiver oder qualitativ hochwertiger oder weniger fehleranfällig macht oder technische Probleme wie mobile oder Client / Server-Lösungen löst. Dann lesen Sie es am besten und ignorieren Sie es, bis Sie einen praktischen Nutzen daraus ziehen.
Ich habe mehr Leute gesehen und gelesen, die Zeit verschwendeten und versuchten, das heiße neue Ding zu finden, und dann das heiße neue Ding benutzten. Dies ist in der Regel eine reine Zeit- und Geldverschwendung.
Es ist wichtig, immer zu lernen und zu üben und dein Handwerk und deine Fähigkeiten zu verbessern.
Sie sollten jedoch lernen, was nützlich ist oder aus welchen Perspektiven Sie Probleme lösen können, die Sie normalerweise haben.
Aber ansonsten sollte man zu den Grundlagen zurückkehren, um ein großartiger Programmierer zu sein.
Ich mache die Best Practices des gesunden Menschenverstands, die wir alle aus unseren Erfahrungen lernen. Verschwenden Sie keine Zeit mit Dingen, die nur cool sind.
Denn ehrlich gesagt ist cool einfach nicht cool.
quelle
Ich habe diesen Satz gehört, der den Ingenieurgebieten zugeschrieben wird, nicht der Programmierung. Genauer gesagt habe ich gehört: "Wenn Sie einen Bachelor-Abschluss in Ingenieurwissenschaften erhalten, werden Ihre ersten beiden Studienjahre auf alter Technologie basieren." (Oder so ähnlich.)
Ich denke nicht, dass es überhaupt auf die Programmierung zutrifft. Die einzige Möglichkeit, die ich sehen konnte, ist, wenn Features aus einer Programmiersprache / Bibliothek / was auch immer entfernt oder veraltet sind.
quelle
Die durchschnittliche Technologieplattform hält sich zwischen 10 und 25 Jahren, was für mich ziemlich unwahrscheinlich ist, auch wenn Sie die Tatsache, dass das Wissen über Muster durch Technologien erhalten bleibt, völlig außer Acht lassen. Wenn Sie sich auf irgendeiner wichtigen Plattform befinden, können Sie sich darauf verlassen, dass dieser Stack MINDESTENS 5 oder 6 Jahre lang beliebt ist, bevor er überhaupt zu verblassen beginnt. Ich kenne Programmierer, die seit 30 Jahren mit fast identischen Hard- und Softwaretools in RPG programmieren.
quelle