Ich bin ein Software-Ingenieur, der Positionen in VBA programmiert hat (obwohl ich es nicht wagen kann, diese "echte" Erfahrung zu berücksichtigen, da es sich um Versuch und Irrtum handelte!), Perl mit CGI, C # und ASP.NET. Die beiden letzteren sind Post-Undergraduate-Studenten, mit meinem Einstieg in die "reale Welt". Ich bin 2 Jahre von der Universität, und habe 5 Jahre Erfahrung (total) in den Sprachen gehabt, die ich erwähnt habe. In meinem Lebenslauf kann ich jedoch nur 2 Jahre für C # und weniger als ein Jahr für ASP.NET angeben.
Ich habe das Gefühl , C # zu kennen, aber ich muss noch einige Zeit damit verbringen, zu überlegen, was diese Methode bewirkt, während einige der erfahreneren Ingenieure sofort sagen können: "Oh, Methode X tut dies, ohne sich das jemals angesehen zu haben Methode vor. " Ich weiß also empirisch, dass es dort eine Kluft gibt, aber ich weiß nicht genau, wie ich sie überbrücken soll. Ich habe angefangen, in Project Euler zu programmieren , und ich habe ein Buch über Entwurfsmuster aufgeschlagen, aber ich habe immer noch das Gefühl, jeden Tag Wasser zu betreten, anstatt mich vorwärts zu bewegen.
Das soll nicht heißen, dass ich nicht das Gefühl habe, Fortschritte gemacht zu haben. Es bedeutet nur, dass ich, soweit ich jeden Tag komme, immer noch die Bergspitze in der Ferne sehe.
Meine Frage lautet: Wie haben Sie dieses Plateau überwunden? Wie lange hast du gebraucht? Welche Methoden können Sie vorschlagen, um mich dabei zu unterstützen?
Ich habe Code Complete , The Mythical Man Month und CLR in C #, 2. Ausgabe, gelesen - meine Frage lautet: Was mache ich jetzt?
Edit : Ich habe diese Frage gerade bei Projekten für einen fortgeschrittenen Programmierer gefunden. Ich denke, es trägt zur Diskussion bei (obwohl es meine Frage nicht ersetzt). Daher füge ich es der Frage als "Weitere Informationen" hinzu.
quelle
Antworten:
Herzliche Glückwünsche!
Aus Ihrer Beschreibung, Sie sind ein Zwischen Entwickler.
Diese Phase wird ungefähr 3-8 Jahre dauern, abhängig von Ihrer Bereitschaft, über das augenblickliche Problem hinaus zu lernen
Um den Prozess zu beschleunigen, zu lesen, zu surfen, zu bloggen, zu Benutzergruppentreffen zu gehen, einen Mentor zu finden, unabhängige Recherchen durchzuführen, Nebenprojekte zu programmieren und sich in neue Technologien zu vertiefen. Dies kann ein oder zwei Jahre nach der Zeit rasieren.
Oder du könntest ein Leben außerhalb des Programmierens haben ;-)
Im Ernst, bleiben Sie auf dem Laufenden und schauen Sie nach, aber schalten Sie das #% $ @ -Ding ab und zu aus
Nachtrag: Wenn Sie nach draußen gehen, denken Sie daran, Hosen zu tragen.
quelle
Eine der besten Möglichkeiten, den Berg hinaufzukommen, besteht darin, etwas für sich selbst zu schreiben, weil Sie es möchten. Die besten Programmierer haben wunderbare Antworten auf die Frage: "Was ist das interessanteste Programm, das Sie in Ihrer Freizeit geschrieben haben?" Wenn Sie in Ihrer Freizeit keinen Code schreiben, lieben Sie Ihr Handwerk nicht genug, um besser darin zu werden.
quelle
Sie müssen das Larvenstadium durchlaufen.
Obwohl ich jetzt in VB.NET unter Windows programmiere, habe ich das Larvenstadium unter Linux x86 mit Assembly als meine Hauptsprache durchlaufen.
Eine Zeitlang musst du dich dem Handwerk widmen, bis du es beherrschst. Was Instinkte eines Master-Programmierers genannt werden, sind wirklich erlernte Verhaltensweisen. Es ist eine gemeinsame Kultur. Programmierer müssen wie andere denken und wie die Maschine.
Wissen und verstehen. Die größten Fähigkeiten sind nicht die, die an eine bestimmte Sprache gebunden sind, sondern können auf fast jede Sprache angewendet werden. Kennen Sie die Konzepte, suchen Sie sie sowohl in den Problemen als auch in den Sprachen und seien Sie bereit, bei Bedarf neue Dinge zu erfinden.
Dies ist der Weg zur Größe.
quelle
Ich programmiere seit ich 8 bin ... Ich werde an Heiligabend 33 sein. Ich sehe den Berg immer noch in der Ferne. Egal wie weit Sie kommen, es gibt immer mehr zu lernen.
Machen Sie sich mit den Paradigmen vertraut und finden Sie heraus, wie die Sprache, in der Sie gerade programmieren, diese Paradigmen umsetzt. Programmieren ist eine Erfahrung fürs Leben, die immer mehr zu lernen hat. Das ist die Freude daran, egal wie kompetent Sie sind, es gibt immer mehr.
Eine Möglichkeit, neue Dinge zu lernen, die ich normalerweise nicht lernen würde, besteht darin, Zeit hier und in anderen Programmierforen wie Bytes and Experts Exchange zu verbringen, in denen Leute Fragen stellen. Wenn Sie die Frage beantworten können, fahren Sie fort, wenn Sie nicht können, und versuchen Sie herauszufinden, wie Sie die Aufgabe selbst erledigen können. Das OP wird nicht nur Ihre Mühe und Ihre Unterstützung schätzen, sondern Sie werden auch etwas Neues lernen.
Ich finde, dass ich mehr lerne, indem ich anderen Menschen helfe, Antworten auf Dinge zu finden, die ich noch nicht kenne, als jemals zuvor, indem ich einfach meine täglichen Dinge programmiere, die ich tagtäglich mache.
quelle
Der Status der Zwischenprogrammierung impliziert, dass Sie sich von der Mentalität des Code-Affen "schneller tippen" lösen und in den Bereich eintreten, in dem Sie als Karrieremitarbeiter echte Systeme aufbauen möchten. Dies ist eine große berufliche Veränderung, und ehrlich gesagt geht es nicht wirklich um technische Fähigkeiten. Das Arbeiten auf mittlerer Ebene (auch als "Entwickler" bezeichnet) erfordert ein deutlich höheres Maß an Fähigkeiten der Mitarbeiter.
Hier sind einige Symptome, über die Sie nachdenken könnten:
Die beste Zusammenfassung, die ich finden kann, ist, dass der fortgeschrittene Programmierer (oder "Entwickler") gelernt hat, in acht Arbeitsstunden produktiver zu sein, damit er zur Hölle nach Hause gehen und ein Leben außerhalb der Arbeit führen kann.
Bonuspunkte werden vergeben, wenn es Ihnen gelingt, einen Ehepartner zu finden und sich zu reproduzieren ....
quelle
Was Sie jetzt tun, ist großartig, aber wenn Sie Ihren Fortschritt unglaublich beschleunigen möchten, können Sie zwei zusätzliche Dinge tun:
1) "Lehren" - Eine einfache Möglichkeit, dies zu tun, besteht darin, ein Blog zu starten und zu versuchen, regelmäßig (vielleicht wöchentlich) etwas Nützliches beizutragen. Ziele auf Dinge ab, die du kürzlich gelernt hast oder die du noch nicht kennst . Das bedeutet, dass Sie sich zwingen müssen, zu recherchieren, zu verstehen und neu zu entdecken.
Übrigens: Sie können sich ganz einfach für ein SingingEels-Konto anmelden, für das Sie ein kostenloses Blog über eine vorhandene Entwickler-Community erhalten.
2) Schreiben Sie viele Mini-Programme - Damit meine ich etwa 1 pro Woche. Sie können dies in Verbindung mit den oben genannten verwenden ... oder nur zum Spaß. Als junger Entwickler habe ich nur zufällig einen Namespace im .NET-Framework ausgewählt (ich mache keine Witze). Wählen Sie dabei eine Klasse aus, die Sie noch nie gesehen / verwendet haben, und erstellen Sie ein kleines Programm, das sie verwendet.
quelle
Versuchen zu
Lies MEHR Bücher Nimm diese großen Titel von Amazon und lies sie. Zum Beispiel hatte der Autor von Code Complete ein großartiges Buch über Software-Engineering geschrieben - Rapid Software Development. Kaufen Sie eines und lesen Sie es.
Lernen Sie eine andere Programmiersprache Eine Skriptsprache wie Python / Ruby ist es wert, studiert zu werden. Oder vielleicht eine funktionierende Programmiersprache :) Dies kann Ihre Meinung zur Programmierung ändern. Möglicherweise wissen Sie, dass einige der GOF-Muster für diese Art von Sprachen nicht erforderlich sind.
Einer Community beitreten Menschen können sich austauschen, indem sie anderen zuhören und Präsentationen halten.
quelle
Finde clevere Programmierer und lerne von ihnen. Imitiere sie. Beachten Sie die Dinge, die sie anders machen als Sie.
Führt Ihr Unternehmen Code-Überprüfungen durch? Das ist einer der besten Wege zu lernen. Sie werden vielleicht erstaunt sein, welche Vorschläge fortgeschrittenere Programmierer machen und worauf sie beim Codieren achten.
quelle
Wie wäre es, wenn Sie sich an einem anderen laufenden Open Source-Projekt beteiligen, sodass sich zumindest Ihre Arbeit für jemanden lohnt und Sie lernen und mit anderen fortgeschrittenen Entwicklern interagieren können, die echte Arbeit leisten.
Zumindest sind Sie nicht darauf beschränkt, was Sie lernen möchten oder welche Art von Projekt Sie durchführen möchten. und es ist bereits ein kostenloses Tool, das Sie verwenden. Sie können stolz darauf sein, dass Sie tatsächlich dazu beitragen, es zu verbessern.
und es zeigt sich auch gut mit Ihrem Lebenslauf. :)
Wenn Sie dann noch etwas Zeit haben, warum sollten Sie nicht einen Blog führen, der Ihr Lernen, Ihre Erfahrungen und was nicht dokumentiert. wer weiß, du könntest der nächste sein, der sich mit Software oder Coding-Horror befasst: p
quelle
Um sich als C # -Entwickler hervorzuheben, lesen Sie die folgenden beiden. Beachten Sie, dass der Schwerpunkt dieser Bücher eher auf der Sprache (C #) als auf dem Framework (.NET) liegt.
Sie haben CLR bereits über C # gelesen , andernfalls ist dies wahrscheinlich der dritte Vorschlag von irgendjemandem für C # -Entwickler.
Dies sollte Sie auch zu einem besseren Entwickler machen: Framework-Design-Richtlinien und effektive Arbeit mit Legacy-Code .
quelle