Neben erfahrenen Kollegen gibt es viele Quellen, aus denen Sie lernen können: Bücher, Blogs von erfahrenen Entwicklern, Stack Exchange, Vorträge / Konferenzen usw. Auch die Überprüfung von Codes ist von entscheidender Bedeutung Neben CodeReview.SE ist eine wertvolle Ressource.
Mal sehen, wie es an einem Beispiel funktionieren könnte.
Beispiel
Sie lesen einen Blogbeitrag dem der Begriff "ETL" erwähnt wird. Sie wissen nicht, was das bedeutet, aber aus diesem Artikel geht hervor, dass es sich um eine Art Prozess oder Workflow handelt, mit dem Daten von einem Datenträger auf einen anderen verschoben werden.
Sie gehen zu Wikipedia und anderen Ressourcen und erhalten eine genauere Vorstellung von der Sache. Es ist immer noch nicht ganz klar, wann die Verwendung einer ETL sinnvoll ist. Schließlich scheint es viel einfacher zu sein, eine SQL-Abfrage zu schreiben, die die ganze Arbeit erledigt, anstatt zu viel Zeit mit dem Aufbau einer echten ETL zu verbringen.
Um diese Fragen zu beantworten, leihen Sie sich in Ihrer örtlichen Bibliothek ein Buch über die ETLs aus. Es wird erklärt, dass einige Extrakt-Transformation-Lade-Prozesse mit einer einfachen SQL-Abfrage nicht einfach zu bewerkstelligen sind: Nicht nur die Extraktphase kann mit mehreren, unterschiedlichen Datenträgern umgehen, nicht nur mit einer relationalen Datenbank, sondern auch der Transformationsschritt kann sehr kompliziert sein Validieren / Normalisieren der Daten und Zuordnen derselben.
Sie haben jetzt eine klare Vorstellung davon, was eine ETL ist, wie sie verwendet wird und insbesondere, wann Sie eine ETL benötigen und wann sie kein geeignetes Werkzeug ist. In der Zwischenzeit haben Sie eine kleine ETL als persönliches Projekt implementiert. In diesem Projekt können Sie einige Punkte entdecken, die für Sie nicht klar genug sind und nicht in einem Buch behandelt werden. Da diese Punkte eher abstrakt sind und sich nicht auf den Quellcode beziehen, stellen Sie eine Frage an Programmers.SE .
Wenn Sie die Möglichkeit haben, eines in Ihrem Unternehmen zu errichten, erstellen Sie es. Sie haben ein paar Probleme. Einige beziehen sich auf Code; Sie stellen Fragen zum Stapelüberlauf . Andere beziehen sich auf die Datenbank; Sie stellen die Fragen auf DBA.SE .
Schließlich gibt es eine Konferenz , die von einem hochqualifizierten Entwickler über die Optimierung von ETLs abgehalten wird. Sie nehmen an dieser Konferenz teil und erhalten wertvolle Hinweise zu den Verbesserungen, die Sie für Ihr Projekt vornehmen können.
Sie folgen auch einem Blog eines Entwicklers, der jahrelang an verschiedenen ETLs gearbeitet hat. Es ist interessant, die verschiedenen Ansätze zu sehen, und in diesem Blog erfahren Sie mehr über ECCD. Sie interessiert sind , so dass Sie die Data Warehouse ETL Toolkit von Ralph Kimball, der borgen Buch , das spricht ausführlich über die „Extrakt, sauber, entsprechen und liefern“ -Prozess. Im selben Blog werden auch viele Anwendungen erwähnt, mit denen ETLs ohne Programmierkenntnisse erstellt werden sollen. Dies ist besonders nützlich für die ETL, die Sie für Ihr Unternehmen durchgeführt haben, da Ihr Chef, eine nicht technisch versierte Person, Sie ständig auffordert, einige kleine Änderungen an dem, was Sie getan haben, vorzunehmen.
Dinge entdecken
IMHO, der schwierige Teil, wenn Sie keinen Mentor oder einen erfahreneren Kollegen haben, ist es , Dinge zu entdecken , und mit entdecken meine ich, vom Zustand "Ich habe noch nie von dieser Sache gehört" zu "Ich habe es gehört" überzugehen habe davon gehört, weiß aber nicht genau, was es ist ".
Wenn jemand meinen Code überprüft und sagt, dass ich wirklich anfangen sollte, einige Stilkonventionen zu verwenden, kann ich mit ein wenig Neugier feststellen, dass es beim Programmieren verschiedene Stile für das Schreiben von Code gibt, bei denen man sich an einen Stil für eine bestimmte Sprache und Codebasis halten sollte. und dass viele Sprachen Werkzeuge haben, um einen Stil zu erzwingen (wie StyleCop für C #).
Wenn mir niemand etwas über den Stil erzählt, woher weiß ich dann, dass es so etwas gibt?
Hier sind Ressourcen wie Blogs oder Stack Exchange praktisch. Wikipedia würde nicht helfen (es sei denn, Sie verbringen Tage damit, zufällige Seiten über das Programmieren aufzusuchen), und Bücher sprechen selten über diese Dinge.
Gleiches gilt auch für Muster und Praktiken oder Dinge, die weniger mit Code zu tun haben. Ich kann mir zum Beispiel kaum vorstellen, dass ein Entwickler morgens aufwacht und sich sagt, dass er etwas über ITIL lernen muss, während er noch nie zuvor etwas über ITIL gehört hat.
Sobald Sie entdeckt einen neuen Begriff, ist es recht einfach , darüber zu erfahren. Wenn Sie einen neuen Begriff "Codeverträge" eingegeben haben und ein C # -Entwickler sind, finden Sie auf einfache Weise selbst genügend Informationen zu MSDN (oder besser gesagt, in Jon Skeets Buch).
Neugier hilft
Wenn ich mit Praktikanten zusammenarbeite, bemerke ich immer, dass die besten diejenigen sind, die außerhalb ihrer Vorlesungen neugierig waren. Sie wissen vielleicht, dass es etwas gibt, das als funktionale Programmierung bezeichnet wird, auch wenn keiner ihrer Lehrer es nie erwähnt hat, und obwohl sie keine funktionale Sprache beherrschen, können sie dennoch allgemein erklären, was FP ist und wie es sich von anderen unterscheidet Paradigmen. Möglicherweise kennen sie sich mit Agile, Unicode oder Partial-Trust- / Sandbox-Modellen aus, nur weil sie Blogs gelesen und Stack Exchange verwendet haben, anstatt einfach nur an ihren Vorlesungen teilzunehmen.
Selbst wenn sie keinen Mentor haben, lernen sie all die Dinge, die im College nicht erzählt werden.