Wir erwägen, einige Mitarbeiter zu unterrichten, die entweder keine Programmiererfahrung auf Hobby- oder allgemeiner Hobby-Ebene haben, um mich zu entlasten.
Wir verwenden Python / Django, das einige der freundlichsten Dokumentationen enthält und ein Kinderspiel ist.
Ich bin derzeit eine Ein-Mann-IT-Abteilung für mein Unternehmen und habe nicht genügend Stunden, um alles zu entwickeln, was das Unternehmen benötigt. Wir sind kein Softwareunternehmen, aber es hilft, eine interne IT zu haben, um Aufgaben zu automatisieren, Kundendienstfunktionen zu entwickeln, Daten zu analysieren usw.
Wie integrieren Sie langsam Neulinge, die an Ihrer Codebasis arbeiten? Angenommen, Sie haben einen Praktikanten - was machen sie? Ich bin völlig zurückhaltend, sie Kerncode entwerfen oder entwickeln zu lassen, da wir uns jahrelang mit ihren Fehlern / seltsamen Entwurfsmustern befassen werden. Als Hauptentwickler bin ich derjenige, der seinen Code umgehen muss.
Mein Gedanke war, dass Neulinge nur vorhandenen Code modifizieren und niemals Kernfunktionen erstellen. Ich kann die Arbeit mit einfachen Aufgaben an sie auslagern, nachdem ich die Funktion selbst erstellt habe.
Wir möchten, dass unsere Mitarbeiter im Unternehmen lernen / Wert finden, und wir haben im Allgemeinen Mitarbeiter, die „aufsteigen“.
Ist es üblich, Menschen mit allgemeiner / Hobby-Programmierung zu unterrichten? Wie funktioniert das "Aufsteigen" in einem Softwareunternehmen für Programmierer auf Junior-Ebene? Wann beginnen sie mit der Arbeit an Kerncode?
Ich versuche zu entscheiden, ob es mehr Schaden als Hilfe verursachen wird oder ob es eine Möglichkeit gibt, ihre Hilfe zu nutzen, ohne das Risiko eines zentralen Site-Codes (isolierte Umgebungen?) Zu eingehen.
Antworten:
Wenn Sie den Rookie an eine ineffektive Rolle delegieren, wird er / sie nie etwas Wesentliches lernen, und sie werden Ihnen sicherlich nicht allzu schrecklich nützlich sein.
Lassen Sie mich einen Rat geben. Mein erster außerschulischer IT-Job war bei einer relativ kleinen Produktionsfirma, in der ich an Software arbeiten wollte, um Vertriebsingenieure beim Verfassen von Angeboten für verschiedene Projekte zu unterstützen. Ich sollte auch dem IT-Mitarbeiter helfen, der die IT für das gesamte Unternehmen im Alleingang verwaltet.
Der Typ war ein gestresstes, überarbeitetes Durcheinander und der schlechteste Perfektionist, unter dem ich je gearbeitet habe. Ich sollte seine Arbeit erleichtern, aber er verbrachte fast genauso viel Zeit damit, mich und meine Arbeit zu überprüfen, wie ich arbeitete (er verließ fast nie das Büro, ich glaube, er verachtete seine Familie). Wenn ich nur einen einzigen Fehler gemacht hätte, hätte er völlig den Verstand verloren und einen Wutanfall ausgelöst: "Ich wusste, ich hätte dir das nicht anvertrauen sollen, es war zu wichtig!" und andere Beschimpfungen.
Der Punkt, den ich versuche, ist, NICHT so zu sein. Dies wird nicht nur die Neulinge unglücklich machen und ihre Moral zerstören, Sie werden auch die Kerze an beiden Enden verbrennen und sich um ihre Arbeit sorgen.
Geben Sie ihnen die Möglichkeit, sich zu beweisen, aber über formale technische Spezifikationen, Entwurfsprüfungen und Codeprüfungen zu verfügen. Sie können auch testen, was sie produzieren, um sicherzustellen, dass es den Anforderungen entspricht.
Ich denke, Sie werden überrascht sein, wie fähig einige von ihnen sein können.
quelle
Ich habe in einem Software-Shop gearbeitet, in dem wir ein großes Projekt programmiert haben (erhebliche Anlaufzeit).
Anfänger wurden wie Tierärzte behandelt. Sie erhielten einen technischen Leiter und starteten Features "auf eigene Faust". Der Architekturstil war diktiert, aber es stand ihnen frei, ihr eigenes klares Design zu entwickeln. Die "seltsamen Designmuster" wurden bei (täglichen) Peer-Code-Überprüfungen ausgesondert.
Ein Fehler, den ich in einem anderen Geschäft gesehen habe: Angenommen, "core" ist hart und "ui" ist einfach. Rookies hatten es im Kern leichter und haben den UI-Front-End-Code durcheinander gebracht.
Viel Glück!
quelle
Sie möchten ihnen zunächst kleine, diskrete Funktionen zur Implementierung geben. Definieren Sie die versprochene Eingabe und die erwartete Ausgabe und lassen Sie sie die Punkte verbinden. Verwenden Sie dann die Code-Überprüfung durch Teamleiter, um die Qualität sicherzustellen, und Peer-Review, um sie darin zu schulen, voneinander zu lernen und sich selbst beizubringen.
Dies setzt voraus, dass Sie über eine allgemeine Anwendungsarchitektur verfügen, mit der atomare Logikeinheiten entkoppelt erstellt werden können. Wenn nicht, werden Sie in eine Welt der Trauer versetzt, in der mehrere Entwickler arbeiten - das wäre sogar bei alten Profis der Fall.
Es ist unvermeidlich, dass Sie bestimmte Leute haben, die sich darum kümmern, schnell lernen und sich erheben. Stellen Sie sicher, dass Sie ihnen weiterhin Aufgaben zuführen, die nur einen kleinen Schritt über ihre aktuellen Fähigkeiten hinausgehen. Nichts bildet jemanden so aus wie eine Aufgabe, die unmöglich beginnt. Es ist unvermeidlich, dass Sie einige Leute haben, die versuchen, es nie wirklich zu erreichen. Diesen Menschen sollte für ihre Bemühungen gedankt und anmutig zu etwas anderem übergegangen werden.
quelle
Wie kann es sich Ihr Unternehmen leisten, anderen Mitarbeitern Zeit zu nehmen, aber niemanden mit Programmiererfahrung einzustellen? Der Zeitaufwand für Training, Fehlersuche und Händchenhalten ist kostspielig.
Das einzige, was ich jemals in diesem Bereich getan habe, ist, den Leuten beizubringen, wie man einen Report Writer oder vielleicht einen VBA / Macro-Code für Excel verwendet. Normalerweise gebe ich die Datensätze zur Wiederverwendung. Es ist eine Strecke, sie SQL lernen zu lassen, aber ich habe es gesehen (bezahlt, damit sie außerhalb des Trainings geschult werden). Die meisten dieser Leute waren Finanzanalysten, die das Codieren lernen konnten, sich aber möglicherweise nicht die Zeit genommen haben. Dies mit einigen operierenden Personen zu versuchen, ist ein langer Weg.
Stellen Sie sicher, dass Sie die richtige Person finden und diese wirklich lernen möchte, wie man programmiert. Sie werden keine Zeit haben, ihnen alles beizubringen. Sie werden viel alleine machen müssen.
quelle
@ Louisgab hatte Recht mit der Codeüberprüfung. Das wäre auch mein erster Schritt. Eine wichtige Sache, die Ihnen dabei helfen wird, ist sicherzustellen, dass sie ihre eigenen Fehler beheben müssen, unabhängig davon, ob Sie sie in der Codeüberprüfung oder später finden. Sie werden nicht einmal bemerken, dass sie Fehler machen, es sei denn, sie müssen sie beheben. Stellen Sie sicher, dass Sie auch erklären, warum die von ihnen verwendete Lösung ein Fehler ist und warum das, was Sie vorschlagen, besser ist. In den ersten Wochen wird es sich so anfühlen, als hätten Sie mehr Arbeit, weil Sie diese anderen Leute haben, aber wenn Sie Ihre Codeüberprüfungen durchführen und Dinge erklären und erwarten, dass sie lernen, werden sie in ein paar Wochen viel mehr Hilfe sein, als wenn Sie es nur tun Mach alles selbst. Es ist jedoch eine anfängliche Verpflichtung Ihrer Zeit, sie auf den neuesten Stand zu bringen, die Ihr Management berücksichtigen muss.
quelle