Das Lernproblem

Als ich 1989 professionell in der Informationstechnologie arbeitete, fiel es mir ziemlich leicht, eine Richtung zu wählen, in die man gehen sollte. Zumindest in meiner Gegend (Südflorida) sind Sie in einen der folgenden Bereiche gegangen:

  • Netzwerk- und Systemmanagement
  • Datenbankverwaltung
  • Software-Entwicklung
  • Projektmanagement-bezogene Aufgaben (einschließlich QS-Arbeit)

ColdFusion war meine bevorzugte Technologie und hielt mich auch fast zehn Jahre.

Ich habe die Softwareentwicklungsroute eingeschlagen und es war sehr einfach, eine Programmiersprache zu wählen, auf die Sie Ihre Karriere gründen konnten. In meinem Fall habe ich mit Clipper (einem dBase-basierten Compiler) angefangen und schließlich mit PowerBuilder in die Client-Server-Entwicklung übergegangen, wobei letzterer fast fünf Jahre lang mein Werkzeug war.

Und selbst als ich mich mit Webentwicklung beschäftigte, waren Werkzeuge und Technologien immer noch leicht zu wählen, vor allem, weil das Web noch so jung und einfach war. ColdFusion war meine bevorzugte Technologie und hielt mich auch fast zehn Jahre. Und seit 2008 sind jQuery und JavaScript meine Schwerpunkte.

Es gibt einen Grund, warum ich Ihnen das alles erzähle.


Das Hamsterrad

Ich war sehr glücklich, Technologien gewählt zu haben, die eine lange Lebensdauer haben, aber in letzter Zeit habe ich eine dramatische Veränderung in der Branche festgestellt. Die Entwicklung der Web-Entwicklung hat zu einer Explosion neuer Tools geführt, die den komplexen Prozess des Aufbaus heutiger anspruchsvoller Websites und Apps unterstützen sollen. Das ist eigentlich eine sehr gute Sache, denn Web-Entwicklung war lange Zeit wie der Wilde Westen. Die Formalisierung von Mustern, Prozessen und Best Practices ist sicherlich eine positive Sache und wird ausnahmslos dazu beitragen, wesentlich stabilere Systeme aufzubauen.

Ein großer Teil dieser Explosion wurde durch den einfachen Zugang zu anspruchsvollen Programmiersprachen und Tools getrieben, von denen viele kostenlos über die Open-Source-Community angeboten wurden. Dies ermöglichte es den Entwicklern, die Art und Weise, wie Dinge aufgebaut werden sollten, zu überdenken und sie in die Lage zu versetzen, erstaunliche Werkzeuge zu entwickeln.

Diese Ermächtigung kann jedoch ein zweischneidiges Schwert für die Entwicklergemeinschaft sein, da es sich anfühlt, als wären wir auf einem Hamsterrad, ohne Bremsen, die es uns ermöglichen, anzuhalten und Dinge aufzunehmen. Es ist ein bisschen ein ewiger Lernzyklus In vielen Fällen, wenn Sie nicht auf dem neuesten Stand der Entwicklungstendenzen sind, können Sie in Bezug auf die aktuellen Entwicklungspraktiken unglaublich hinterherhinken. Ich weiß, ich habe es mehr als einmal gespürt und in Gesprächen mit meinen Kollegen scheint es ein durchdringendes Gefühl zu sein.


Die Evolution des Lernens

Ich denke, es ist fair zu sagen, dass Softwareentwickler einen der komplexesten Jobs der Welt haben.

Sie werden ständig von anderen hören, dass unser Feld ständig lernt und das ist so wahr. Entwickler sind heutzutage Rockstars, und das liegt daran, dass wir an innovativem Material arbeiten, das spürbare Auswirkungen auf große Gemeinschaften von Menschen hat. Diese Communities fordern mehr Informationen durch einfachere Benutzererfahrungen über mehrere Formfaktoren hinweg. Ich denke, es ist fair zu sagen, dass Softwareentwickler einen der komplexesten Jobs der Welt haben. Ständiges Lernen ist also keine Wahl mehr; es ist eine Anforderung.

Deshalb erwähnte ich meinen bisherigen Karriereweg. Ich denke, es ähnelt dem einer Menge meiner Altersgenossen, wo wir uns darauf verlassen konnten, ein "Ding" für "x" zu kennen, bevor wir uns neu schulen mussten. Wenn Sie sich in der Web-Entwicklungswelt befinden, ist dies nicht mehr der Fall und meiner Meinung nach ein Schritt, der die Karriere einschränkt. Ich sage nicht, dass Sie jede neue Bibliothek lernen müssen, die herauskommt. Ehrlich gesagt, denke ich, dass viele der Bibliotheken und Tools herausgedrückt werden:

  • Soll einen ganz bestimmten Juckreiz kratzen
  • Replizieren Sie ein vorhandenes Werkzeug und bietet wenig zusätzlichen Wert
  • Sind dazu gedacht, das Ego einer Person zu befriedigen, indem Sie sich "Dinge anschauen, die ich gebaut habe"

Es gibt jedoch klare Gründe, immer auf dem neuesten Stand der Technologien zu sein, insbesondere wenn Sie sehen, dass Ihre Kollegen über sie reden. Und um es klar zu sagen, ich definiere meine Kollegen nicht eng mit denen, mit denen ich arbeite. Ich schaue mir die Leute auf Twitter, Facebook, Google+, Blogs und Foren genau an, um zu ermitteln, wo sie denken. Wenn Sie nicht das Gleiche tun, tun Sie sich und Ihre Karriere als ungeeignet.

Wenn Sie älter werden (ja, ich greife das Alter an), wird "Zeit" für die meisten zum größten limitierenden Faktor, um auf dem Laufenden zu bleiben. Ich kann das bezeugen, da ich mit 45 Jahren eine Menge familiärer Verpflichtungen habe. Ich muss extrem reglementiert sein, um die nötige Lernzeit zu widmen und gleichzeitig sicherzustellen, dass ich meiner Familie Zeit widme (was meine oberste Priorität ist). . Und ich bin zuversichtlich, dass ich nicht alleine in diesem Rätsel bin. Ich denke zurück an die Zeit, als ich in meinen 20ern war und früher für Printmagazine schrieb (ihr kennt die recht?) Und meine Kollegen fragten: "Wie haben Sie Zeit, das zu tun?". Nun, es hat sich ein Kreis gebildet und ich frage mich, dass meine 20 Entwickler etwas nach dem gleichen fragen.

Ich habe gelernt, dass ich mich nicht mit 20er vergleichen kann, da unsere Prioritäten in den meisten Fällen unterschiedlich sind. Ein junger Dollar hat ausnahmslos mehr Zeit, sich auf das Neueste zu konzentrieren, sodass er oder sie das nächste große Werkzeug bauen kann. Und das ist großartig und ich erinnere mich an diese Tage!

Wenn Sie jedoch in Ihrer Karriere Fortschritte erzielen, ist es wichtig, dass Sie sich nicht in Selbstzufriedenheit einlullen und einen Plan entwickeln, der es Ihnen ermöglicht, auf dem neuesten Stand zu bleiben, indem Sie nicht nur die von Ihnen gewählten Technologien auswählen, sondern auch die Ziele, die Sie planen.


Entscheidungen, Entscheidungen, Entscheidungen

Wenn Sie sich die derzeit verfügbaren Technologien anschauen, ist es leicht, überfordert zu werden, wo Sie anfangen sollen, geschweige denn Ihre Auswahl. Ich habe Mitleid mit Ihnen und Sie sind sicherlich nicht alleine. Ein Teil des Problems ist, dass wir als Entwickler natürlich neugierig auf neue Technologien sind. Ich nenne es gerne "Motte zu einer Flamme":

  • Oh schau, es gibt eine neue Bibliothek, die Webkomponenten nachahmt! (Flattern, Flattern, Flattern)
  • Dieser Influencer hat gerade diesen neuen Präprozessor veröffentlicht! (Flattern, Flattern, Flattern)
  • Oh mein Gott, hier ist der vierte SaaS, der Echtzeit-Backend-Dienste anbietet! (Flattern, Flattern, Flattern)

Die Liste könnte weiter und weiter gehen. Was ich zu erreichen versuche, ist, dass wir manchmal unter Aufmerksamkeitsdefizit leiden und versuchen, es zu rationalisieren, indem wir denken, es würde sofort ein nicht existierendes oder zukünftiges Problem für uns lösen. Im Grunde sind wir Technologie-Horter, die ein "nur für den Fall" machen. In der Realität ist es wichtig, dass Sie sich zurücklehnen und bestimmen, was Sie erreichen wollen und wie die aktuellen Toolsets Ihre Probleme lösen, je nachdem, wohin Sie wollen.

Ein Teil des Problems ist, dass wir als Entwickler natürlich neugierig auf neue Technologien sind.

Ich habe zum Beispiel gehört, dass so viele Entwickler sagen, dass sie iOS nur lernen möchten, um herauszufinden, dass sie keine echten Pläne für die Erstellung einer iOS-App haben. Wenn Sie die Zeit haben, dies zum Spaß zu tun, haben Sie mehr Kraft, aber wenn Sie dies nicht tun, sollten Sie jetzt Dinge lernen, die wirklich wichtig sind.

Wenn Sie zum Beispiel ein Front-End-Web-Entwickler sind und dies für eine gewisse Zeit geplant haben, denke ich, dass Sie sicherstellen, dass Sie über Dinge wie AMD, ES6, Sass und Yeoman ist weitaus wichtiger als in IPTables, ActiveRecord, WebView oder Amazon EC2 einzutauchen. Bevor jeder durch das, was ich gerade gesagt habe, den Verstand verliert, lasst uns klarstellen, ob es Ihnen gelingt, all diese Dinge (zum Beispiel einen Full-Stack-Entwickler) zu erlernen werden mach dich wertvoller.

Was ich versuche zu vermitteln, ist, anstatt sich mit dem Gedanken, "den vollen Stapel" zu lernen, überfordert zu lassen, den Spielraum auf einfachere Ziele zu beschränken. Stellen Sie fest, wo sich Ihre Karriere konzentriert, legen Sie eine Handvoll Schlüsseltechnologien fest, auf die Sie auf dem Laufenden sein sollten, und konzentrieren Sie sich auf diese, um relevant zu bleiben in Ihrem beruflichen Fokus.

Der Frontend-Entwickler-Trakt zum Beispiel ist ausreichend involviert, und wenn Sie auf dem Laufenden bleiben, werden Sie lange Zeit beschäftigt sein. Lou Lazaris schrieb bereits 2011 einen Beitrag mit dem Titel "Skills für Frontend-Entwickler" und in vielen Fällen ist er genau richtig. Wenn Sie sich seine Liste ansehen, wird er gezielt angesprochen Vorderes Ende Technologien, die für diese Rolle wichtig sind. Es bestärkt mich in meinem Gedanken, dass es besser ist, den Umfang des Gelernten in überschaubaren Teilen der Rolle, in der Sie arbeiten, einzugrenzen. Es ist jedoch auch wichtig, solche Listen noch weiter zu filtern. Ich denke, dass CoffeeScript für meinen Erfolg als Frontend-Entwickler von entscheidender Bedeutung ist? Absolut nicht, darum habe ich mir absichtlich keine Zeit gewidmet.

Ich befürworte auch nicht, nicht so viel wie möglich zu lernen. Obwohl ich eindeutig auf der vordersten Seite der Dinge zu sehen bin, arbeite ich gerade daran, Ruby und Rails zu lernen, weil ich gerne einen neuen serverseitigen Stack erlernen möchte, um meine Fähigkeiten abzurunden. Für mich bedeutet das, dass man lernen muss, etwas wie Yeoman zu lernen, aber ich habe mir die Zeit genommen, um den Wertbeitrag dieses Weges zu bestimmen, und ich denke, es lohnt sich für mich.


Etwas lernen

Lernen kommt in verschiedenen Stilen. Ich lerne am besten durch:

  • Ein Buch lesen (ein echtes mit echten Papierseiten)
  • Eingeben von Codebeispielen und Anzeigen der Ergebnisse
  • Mit einem Mentor kann ich Fragen stellen

Andere ziehen es vor, einfach in etwas einzutauchen und von der Schule der harten Schläge zu lernen. Wie auch immer Sie lernen, gute Ressourcen zur Verfügung zu haben, ist ein wichtiger Teil der Gleichung.

Ich habe mich mehr und mehr zu Online-Kursen neigen, weil sie zu einem Zeitpunkt gereift sind, an dem sie in vielen Fällen in der Qualität mit ihren Brüdern vor Ort vergleichbar sind. Sie bieten auch die Flexibilität, dass Sie die Möglichkeit haben, Dinge nach Ihrem eigenen Zeitplan (fast immer) auszuführen und sich auf die für Sie wichtigen Technologien zu konzentrieren.

In meinem Fall habe ich mich kürzlich für One Month Rails angemeldet, was mir folgendes bot:

  • Flexibilität: Ich nehme an meinem Zeitplan teil ohne den Druck, enorme Mengen meiner persönlichen Zeit opfern zu müssen
  • Erschwinglichkeit: Es ist $ 49 $ 99 und scheint für den Preis gut strukturiert zu sein.
  • Mentorschaft: Ich kann direkt mit dem Kursgestalter Kontakt aufnehmen und habe die Unterstützung seiner Community

Unabhängig davon, welche Lernoptionen zur Verfügung stehen, ist es völlig irrelevant, wenn Sie keine dedizierte Lernzeit reservieren.

Ich sehe dies als eine Starthilfe-Gelegenheit, die durch Sites wie Nettuts + und Tuts + Premium sowie Bücher und meine Community-Kontakte ergänzt wird. Aber letztendlich ist es die Flexibilität und das Tempo des Kurses, von dem ich glaube, dass ich rechtzeitig etwas Neues lernen kann. Die Kosten sind sicherlich ein Faktor, den Sie abwägen müssen, gegenüber dem erwarteten Lernnutzen und den sich daraus ergebenden aktualisierten Fähigkeiten.

Die Tatsache, dass es so viele Online - Lernoptionen gibt (viele davon sind kostenlos), macht es wesentlich einfacher, Ihre aktuellen Fähigkeiten zu aktualisieren, insbesondere wenn Sie methodisch über das, was Sie lernen möchten, verfügen (z. B. keine Motte).

Aber Sie müssen sich die Zeit nehmen, um zu lernen. Unabhängig davon, welche Lernoptionen zur Verfügung stehen, ist es völlig irrelevant, wenn Sie keine dedizierte Lernzeit reservieren. Ich persönlich fand heraus, dass ein bis zwei Stunden, zwei- bis dreimal wöchentlich unmittelbar nach der Arbeit, gut zu funktionieren scheint, da mein Geist immer noch im Entwicklermodus ist. Ich habe mich kürzlich mit einem Freund unterhalten, der es für besser hält, sehr früh (6 Uhr morgens) aufzuwachen und sich in den ersten Stunden des Morgens vor dem Beginn der Arbeit auf das Lernen zu konzentrieren. Auf diese Weise ist er frisch und konzentriert, frei von Ablenkungen oder Sorgen um seinen Job.

Mein guter Freund und schlechter Entwickler Joe McCann gab dieses großartige Feedback:

"Das eine bisschen Wissen, das ich hinzufügen möchte, ist, dass die wichtigste Sache, die ich beim Studium der Philosophie an der Universität gelernt habe, nicht das war, was ich lernte, sondern wie ich tatsächlich Dinge lerne. Wirklich zu verstehen, wie man lernt, versteht usw., ist der Schlüssel zum Erlernen einer neuen Fähigkeit oder zur Verbesserung der aktuellen Fähigkeiten.

Wenn jemand durch das Lesen eines Buches, das Aufschreiben von Notizkarten oder das Anhören durch Vorlesungen lernt, stehen alle diese jetzt online zur Verfügung. Es geht darum zu verstehen, wie man lernt, und dann nach dem richtigen Medium zu suchen."

Gut gesagt.


Lernmittel

Es versteht sich von selbst, dass ich denke, dass Nettuts + und die verschiedenen Envato-Immobilien einige der besten Online-Lernoptionen bieten. Außerdem habe ich hier einige Lernseiten angegeben und empfohlen:

  • Codeacademy: Lernen Sie JS, Ruby, Python und mehr über ihre interaktive Website
  • Ember 101: Ryan Florence hat einen fantastischen Job gemacht und Screencasts erstellt, die Sie durch den Prozess des Lernens von Ember führen
  • Why's Poignant Guide to Ruby: Der Stil ist gewöhnungsbedürftig, aber es ist definitiv eine großartige Ressource, um Ruby zu lernen
  • Egghead.io: Fast ausschließlich auf AngularJS fokussiert und von vielen Community-Mitgliedern empfohlen
  • Das Ruby on Rails-Tutorial: Dies ist das Goo-Tutorial für alle, die gerade erst mit der Entwicklung von Rails beginnen

Wenn Sie etwas strukturierter und etwas hardcore suchen, ist ein neuer Trend vor Ort ein Bootcamp, in den Sie viel Zeit investieren müssen, um sich mit den neuesten Technologien vertraut zu machen. Beachten Sie, dass Sie bei vielen von ihnen zu dem Ort wechseln müssen, an dem das Bootcamp abgehalten wird, und sich einige Wochen lang voll auf das Bootcamp festlegen. Außerdem kosten diese Kurse tausende von Dollar im Austausch gegen die persönlichere Lernerfahrung. Ich habe persönlich am Bootcamp von Bloc.io teilgenommen, musste aber nicht umziehen. Obwohl ich es aus Zeitgründen nicht fertigstellen konnte, würde ich es empfehlen. Hier sind einige der Bootcamps, die viel positive Presse erhalten haben:

  • Bloc.io: Gut strukturierter Kurs, der Sie durch die neuesten Technologien führt und Ihnen Online-Mentoring per E-Mail, Chat oder Sprache vermittelt. Sie müssen sich nicht bewegen.
  • Hacker School: In New York, einem dreimonatigen Bootcamp vor Ort, werden Sie in Vollzeit lernen, Programmierkenntnisse in Ruby und Python zu lernen
  • Die Starter League: Onsite in Chicago, Illinois, und eine Partnerschaft mit 37signals (Hersteller von Basecamp), um ihre Lernerfahrung zu verbessern.

Die Site BootCamper hat eine Liste der verschiedenen verfügbaren Bootcamps zusammengestellt und auf durchsuchbare Weise Informationen über sie bereitgestellt.


Holen Sie sich los!

Die Hauptsache ist, weiter zu lernen und dies in einem überschaubaren Tempo und in nachdenklicher Weise zu tun.

Ich wollte so etwas schon länger schreiben. Es ist ein bisschen eigennützig, da es mir geholfen hat, meine Gefühle niederzuschreiben, die ich hatte, weil ich mit dem Hamsterrad des Lernens überwältigt war. Im Laufe der Zeit habe ich nach Möglichkeiten gesucht, um sicherzustellen, dass ich den Überblick behält und mich nicht ausbrennt. Ich habe erkannt, dass es unmöglich ist, auch in meiner eigenen Nische den Überblick zu behalten. Es gibt einfach zu viele Entwickler, die zu viele coole Dinge bauen und nicht genug "Zeit".

Also habe ich mich entschlossen, mich auf Dinge zu konzentrieren, die aktuell und relevant sind, aber möglicherweise nicht ausbluten und das neueste coole Spielzeug sind. Ich finde, dass dies eine viel einfachere Art des Lernens ist mir. Und ich denke auch, dass es wichtig ist, das bewährte Zeug zu überdenken, das zwar nicht das neueste Modellauto ist, aber unter der Haube einige große Überraschungen für Sie bereithält. Ich schaue zurück auf Jeff Atwoods großartigen Beitrag "Warum Ruby?" Dort bespricht er seine Entscheidung für den Einsatz von Ruby zum Aufbau von Discourse und berührt insbesondere Rubys Reife und mangelnde Coolness.

Die Hauptsache ist, weiter zu lernen und dies in einem überschaubaren Tempo und in nachdenklicher Weise zu tun. Überlegen Sie sich genau, wo Sie in Ihrer Karriere unterwegs sind, umreißen Sie die wichtigsten Dinge, die Sie in diesem Bereich gut machen können, und arbeiten Sie an der Entwicklung eines Plans, um auf dem neuesten Stand zu bleiben. Es gibt viele Flammen da draußen und Sie müssen nicht mit jedem Flügel die Flügel schlagen.

Ich würde gerne mehr von Ihnen erfahren, wie Sie auf dem Laufenden bleiben, also geben Sie bitte Ihre Vorschläge in den Kommentaren an.