Ich bin ein Anfänger Webentwickler (ein Jahr Erfahrung).
Ein paar Wochen nach Abschluss des Studiums wurde mir angeboten, eine Webanwendung für ein Unternehmen zu erstellen, dessen Inhaber kein großer Techniker ist. Er hat mich angeworben, um den Diebstahl seiner Idee, die hohen Entwicklungskosten eines Dienstleistungsunternehmens und die langfristige Betreuung des Projekts durch jemanden zu verhindern, dem er vertrauen kann ).
Als ich damals großspurig war und ein Diplom in Informatik hatte, nahm ich das Angebot an und dachte, ich könne alles bauen.
Ich habe das Sagen gehabt. Nach einigen Recherchen entschied ich mich für PHP und begann mit einfachem PHP, ohne Objekte, nur hässlichem prozeduralem Code. Zwei Monate später wurde alles unordentlich und es war schwierig, Fortschritte zu erzielen. Die Webanwendung ist riesig. Also entschied ich mich, ein MVC-Framework auszuprobieren, das mir das Leben leichter machen würde. Dort bin ich auf das coole Kind in der PHP-Community gestoßen: Laravel. Ich habe es geliebt, es war leicht zu lernen und ich fing sofort an zu programmieren. Mein Code sah sauberer und übersichtlicher aus. Es sah sehr gut aus.
Aber auch hier war die Webanwendung riesig. Das Unternehmen setzte mich unter Druck, die erste Version zu liefern, die sie offensichtlich bereitstellen wollten, und Kunden zu suchen.
Weil es Spaß machte, mit Laravel zu arbeiten, erinnerte ich mich daran, warum ich mich überhaupt für diese Branche entschieden hatte - etwas, das ich vergessen hatte, als ich im beschissenen Bildungssystem steckte.
Also begann ich nachts an kleinen Projekten zu arbeiten und las über Methoden und bewährte Praktiken. Ich besuchte OOP erneut, wechselte zu objektorientiertem Design und Analyse und las Onkel Bobs Buch Clean Code .
Dadurch wurde mir klar, dass ich wirklich nichts wusste. Ich wusste nicht, wie man Software THE RIGHT WAY erstellt. Aber zu diesem Zeitpunkt war es zu spät und jetzt bin ich fast fertig. Mein Code ist überhaupt nicht sauber, nur Spaghetti-Code, ein echtes Problem, um einen Fehler zu beheben, die gesamte Logik steckt in den Controllern, und es gibt wenig objektorientiertes Design.
Ich habe den anhaltenden Gedanken, dass ich das ganze Projekt neu schreiben muss. Ich kann es jedoch nicht tun ... Sie fragen immer wieder, wann alles erledigt sein wird.
Ich kann mir nicht vorstellen, dass dieser Code auf einem Server bereitgestellt wird. Außerdem weiß ich immer noch nichts über die Codeeffizienz und die Leistung der Webanwendung.
Einerseits wartet das Unternehmen auf das Produkt und kann nicht mehr warten. Auf der anderen Seite kann ich mir nicht vorstellen, mit dem eigentlichen Code weiterzumachen. Ich könnte fertig sein, es einpacken und bereitstellen, aber Gott weiß nur, was passieren könnte, wenn Leute anfangen, es zu benutzen.
Schreibe ich um oder versuche ich einfach weiter zu versenden, oder gibt es eine andere Option, die ich verpasst habe?
quelle
Antworten:
Sie sind auf der Achillesferse der meisten CS-Ausbildungen gestolpert: Sie bringen Ihnen die Werkzeuge und Techniken bei, aber nicht das Handwerk. Das Erstellen von Software ist ein Handwerk, das Sie nur durch jahrelange Übung und die Erfahrung mit der Verwendung Ihrer Software erwerben (Benutzer sind viel härtere Kritiker als Lehrer). Das Erstellen von Software ist auch häufig ein Geschäft, bei dem die Geschäftsziele die technischen Ambitionen außer Kraft setzen können.
Zunächst Schiff. Wenn Sie dem Geschäftsinhaber die Software zeigen und dieser das Gefühl hat, dass sie versandbereit ist, versenden Sie sie. Wenn es nicht so weit ist, aber zu Ende ist, beenden Sie es. Die einzige Software, die zählt, ist die tatsächlich verwendete. Das einzige Software-Geschäft, das Geld verdient, ist eines, das ein Produkt hat.
Zweitens haben Sie viele wertvolle Dinge gelernt, und Sie sollten die Erfahrung für das schätzen, was sie Ihnen beigebracht hat :
Hier finden Sie weitere Ratschläge zur weiteren Vorgehensweise:
quelle
Das hört sich an wie jedes andere System, das auf mich geworfen wurde, um es zu reparieren.
Entspannen Sie sich, das passiert vielen Menschen. Ein Junior ohne Erfahrung, der keine Hilfe, keine Unterstützung und keine Anleitung hat, ist nicht gerade ein Erfolgsrezept. Von einem Junior-Programmierer zu erwarten, dass er ein brandneues System von Grund auf erstellt, das gut funktioniert, eine gute Leistung erbringt und gewartet werden kann, ist überhaupt nicht realistisch. Verdammt, Sie haben Glück, wenn das alles mit einem erfahrenen Programmierer passiert.
Meiner Meinung nach muss man sauber kommen. Das wird kein Spaß. Sagen Sie ihnen, dass Sie Ihr Bestes gegeben haben, es funktioniert (meistens), aber Sie befürchten, dass es nicht gut funktioniert und dass es viele Fehler geben wird (es gibt immer Fehler). Es muss von einem erfahrenen Programmierer überprüft werden, und er sollte in der Lage sein, offensichtliche Leistungs- / Sicherheitsprobleme ziemlich schnell zu beheben. Oder sie können es einsetzen und die Daumen drücken. Es wird entweder in Ordnung gehen oder in Rauch aufgehen. Vielleicht können Sie Probleme beheben, wenn sie auftreten. Wenn Sie eine große Anwenderbasis haben, ist dies möglicherweise nicht der Fall.
Oder Sie könnten das tun, was die meisten Menschen in dieser Situation tun: Nehmen Sie das Geld, verschwinden Sie und lassen Sie es von ihnen sortieren. Ich überlasse es Ihnen, die ethische Entscheidung zu treffen.
Bearbeiten (da diese Frage viele Stimmen hat, kann ich auch noch mehr Inhalte hinzufügen)
Ein Teil der Freude daran, Programmierer zu sein, ist, dass nicht-technische Leute (wahrscheinlich Ihr Manager, definitiv der Rest des Geschäfts) keine Ahnung haben, was Sie tun. Das ist sowohl gut als auch schlecht. Das Schlimme ist, dass Sie ständig erklären müssen, wie Softwareentwicklungsprojekte funktionieren. Planung, Anforderungen, Codeüberprüfung, Testen, Bereitstellen und Beheben von Fehlern. Es ist Ihre Aufgabe , die Wichtigkeit des Testens zu erläutern und Zeit zum Testen einzuräumen. Hier muss man sich behaupten. Die Leute werden die Wichtigkeit nicht verstehen ( "Können wir nicht einfach damit anfangen?") Aber sobald sie mit dem Testen beginnen (nicht in der Live-Umgebung!), werden sie die Vorteile schnell verstehen. Einer der Gründe, warum sie Sie eingestellt haben, ist, dass sie nichts über Softwareentwicklung wissen. Es liegt also an Ihnen, sie zu unterrichten. Sie müssen die Wichtigkeit des Testens und Behebens von Fehlern hervorheben - denken Sie daran, dass sie keine Programmierer sind und den Unterschied zwischen einer Division durch Null und einem kaputten HTML-Tag nicht kennen.
Oft sind viele der Probleme, die auftauchen, nicht wirklich Fehler. Dies sind Usability-Probleme, fehlende Anforderungen, geänderte Anforderungen, Benutzererwartungen (warum kann ich das nicht auf meinem Handy verwenden?) Und dann die tatsächlichen tatsächlichen Fehler. Sie müssen diese bügeln, bevor Sie live gehen - oft können viele Fehler behoben oder ein paar Tage später behoben werden. Wenn die Leute ein perfektes System erwarten, werden sie große Schmerzen haben. Wenn sie Bugs erwarten, wird Ihr Leben in den nächsten Wochen viel einfacher.
Verwechseln Sie Benutzertests nicht mit Komponententests oder Systemtests.
Wenn Sie nicht die Anforderungen aufgeschrieben haben, nach denen Sie gefragt wurden, wird UAT sehr viel schwieriger. Hier fallen viele Menschen um. Wenn Sie das, was das System tun sollte, auf Papier schreiben, wird dies Ihr Leben erheblich erleichtern. Sie werden sagen "Warum macht es kein X?" und du kannst sagen "Du hast mir gesagt, ich soll es machen, Y". Wenn das Programm falsch ist, beheben Sie es. Wenn die Anforderungen nicht stimmen, korrigieren Sie das Dokument, fordern Sie ein oder zwei zusätzliche Tage an (nein, bestehen Sie darauf), nehmen Sie die Änderung vor, aktualisieren Sie die Dokumentation und wiederholen Sie den Test.
Wenn Sie diesen Prozess ein paar Mal durchlaufen haben, können Sie anfangen, sich mit Agile zu befassen. Aber das ist eine andere Welt :)
TL; DR- Tests sind gut
quelle
Immer wenn Sie bei Null anfangen, werden Sie aufgrund des Second System Syndromme mit ziemlicher Sicherheit die gleiche Menge an Fehlern oder mehr machen . Ihre neuen Fehler werden anders ausfallen, aber der Zeitaufwand für das Debuggen wird ähnlich sein, und Sie werden verzweifelt darüber sein, dass dies nicht gut passt. Wenn die erste Version bereitgestellt wird, verzögert sich auch die Bereitstellung in der Produktion oder die Bereitstellung neuer Funktionen, was für das Unternehmen ernsthafte Probleme mit sich bringt . Joel Spolsky nennt es den "schlimmsten strategischen Fehler" , den ein Unternehmen oder Entwickler machen kann.
Der empfohlene Ansatz besteht stattdessen darin, das anfängliche Durcheinander während der Wartung Stück für Stück zu beseitigen. Und versuchen Sie nicht einmal, es nur deswegen umzugestalten. Außerdem sehen Manager dies normalerweise als Geldverschwendung an (was häufig der Fall ist) und es birgt das unnötige Risiko, neue Fehler einzuführen. Sobald Sie den Code schmerzhaft getestet haben, ist er möglicherweise nicht mehr schön, aber er wird funktionieren. Lassen Sie es so lange sein, bis Sie es aus anderen Gründen anfassen müssen (sei es eine Fehlerbehebung, eine neue Funktion oder nur eine Änderung, die vom Marketing angefordert wird). Reinigen Sie dann die Teile, die am schwierigsten einzustellen sind. Dies wird oft als Pfadfinderregel bezeichnet .
Und an diesem Punkt müssen Sie sich nicht mit dem Manager streiten. Nehmen Sie einfach das minimal gewünschte Refactoring in den Kostenvoranschlag für die Anfrage auf. Sie werden durch Erfahrung lernen, wann Sie es sich leisten können, ein bisschen zu verdienen, weil das Unternehmen wirklich in der Klemme ist und wann Sie in Zukunft keine Probleme mehr schaffen wollen und einfach keine Möglichkeit zugeben, es schnell zu hacken.
Zum Schluss noch eine kleine Lektüreempfehlung: der Big Ball of Mud .
quelle
Ich habe vergessen, wo ich es zuerst gelesen habe, aber ich wollte nur etwas eindringlicher wiederholen, was andere Leute gesagt haben:
Es gibt nichts Schlimmeres als diesen einen Typ, der bestehenden (möglicherweise hässlichen, hässlichen, schmutzigen) Code "aufräumt", der perfekt funktioniert , neue Bugs einführt usw. Was in der realen Welt zählt , ist, dass Sie Ihre Arbeit erledigen. Du hast das getan. Schiff. Verlieren Sie sich nicht in Neugestaltungen eines Projekts, das perfekt funktioniert, auch wenn es unter der Haube hässlich ist. Wenn Sie das Problem beheben, gehen Sie schrittweise vor und erstellen Sie eine gute Testsuite, damit Sie so wenig Regressionen wie möglich haben.
quelle
Jedes Projekt macht Sie schlauer als je zuvor. Nach jedem Projekt haben Sie mehr Erfahrung gesammelt, was von Anfang an sehr praktisch gewesen wäre. Ich weiß, dass es schwierig ist, nicht alles noch einmal zu wiederholen und das Gelernte anzuwenden. Aber erinnere dich:
Perfekt ist der Feind des Guten.
Für den Kunden ist es immer besser, eine gute Software zu haben, als eine perfekte Software, die niemals veröffentlicht wird.
Dies war nur Ihr erstes Projekt. In Zukunft wird es noch viele weitere Projekte geben, in denen Sie alles anwenden können, was Sie von Anfang an gelernt haben.
quelle
Dieses Buch hat einen Abschnitt mit dem passenden Namen "The Grand Redesign in the Sky".
Versuchen Sie nicht, alles neu zu schreiben, da Sie in dem unwahrscheinlichen Fall, dass Sie die Zeit dazu haben, ohnehin mit den gleichen Problemen konfrontiert sind. Wenn Sie das Redesign abgeschlossen haben, haben Sie neue Dinge gelernt und werden feststellen, dass die ersten Teile davon sehr unprofessionell sind, so dass Sie es erneut schreiben möchten.
Redesign und Rewriting sind gut, aber nur, wenn sie auf einem funktionierenden System inkrementell durchgeführt werden. Befolgen Sie, wie ein anderer Benutzer ausführte, die Pfadfinder-Regel und überarbeiten Sie Ihren Code nach und nach, während Sie daran arbeiten.
quelle
Du machst es gut.
Sie sagen, dass Ihr Code funktioniert und fast versandbereit ist, oder? Und Sie spüren, dass Ihr Code möglicherweise erheblich verbessert wird. Gut.
Ihr Dilemma erinnert mich sehr an meine ersten Erfahrungen mit freiberuflichen Tätigkeiten (als ich im zweiten Jahr an der Uni angestellt wurde, um ein mehrsprachiges POS-System zu entwickeln). Ich habe endlose Fragen gestellt, da ich mit dem Code nie zufrieden war, Skalierbarkeit wollte, bessere Räder neu erfinden wollte ... Aber ich habe das Projekt nur verzögert (ungefähr um 12 Monate) und ... was? Sobald Sie das Ding bereitgestellt haben, muss es noch viel geprüft, getestet, gepatcht usw. werden.
Haben Sie Erfahrung im Umgang mit professionellen Code-Basen? Viele Code-Basen sind voll von schrulligem, schwer zu pflegendem Code. Eine Alternative, um die Komplexität von Software zu entdecken, indem Sie versuchen, ein großes Programm selbst zu erstellen, wäre das Verwalten / Erweitern von ebenso unordentlichem Code, der von anderen Leuten geschrieben wurde.
Die einzigen Fälle, in denen ich gesehen habe, dass vollständige Umschreibungen viel Gutes bewirken, waren die Fälle, in denen das Team gleichzeitig eine neue Toolchain / ein neues Framework einführte.
Wenn die zugrunde liegende Logik (was das Programm tut, nicht wie es als Funktionen, Klassen usw. ausgelegt ist) solide ist, funktioniert sie genauso gut. Sie denken also, dass es sich um einen Spaghetti-Code handelt, der dies nicht bedeutet sollte nicht eingesetzt werden.
Sie müssen Ihren Kunden etwas zur Verfügung stellen, das sie verwenden können. Wenn Sie dann gefragt werden, ob Sie die Funktion verbessern oder erweitern möchten, entscheiden Sie, ob ein Refaktor erforderlich ist, und Sie können Ihren Kunden mitteilen, dass "einige technische Arbeiten erforderlich sind, um die neue Funktion zu integrieren". Womit sie verstehen, dass es sie mehr Geld kosten wird und sie länger warten müssen. Und sie werden verstehen (oder Sie können sich zurückziehen).
Eine bessere Zeit, um alles neu zu schreiben, wäre, wenn ein anderer Kunde Sie bittet, etwas Ähnliches zu erstellen.
Kurz gesagt: Wenn Sie nicht nachweisen können, dass das Ganze im Falle einer Bereitstellung allen in die Quere kommt, ist eine Verzögerung der Bereitstellung unprofessionell und kommt weder Ihnen noch Ihren Kunden zugute. Wenn Sie lernen, kleine Änderungen vorzunehmen, während Sie Fehler beheben oder neue Funktionen hinzufügen, ist dies eine wertvolle Erfahrung für Sie.
quelle
Das meiste, was ich als Antwort auf Ihre Frage sagen würde, wurde von anderen gesagt. Lesen Sie "Dinge, die Sie niemals tun sollten, Teil I" von Joel Spolsky (zusammen mit einigen seiner anderen Posts über "Architektur-Astronauten"). Denken Sie daran, dass "das Vollkommene der Feind des Guten ist". Lernen Sie, schrittweise umzugestalten. Versand ist wichtig, etc.
Was ich hinzufügen möchte, ist Folgendes: Sie wurden mit etwas beauftragt, das von einem einzelnen Absolventen, der mit einem kleinen Startbudget / Zeitrahmen arbeitet, als machbar angesehen wurde. Sie sollten nichts Anspruchsvolleres brauchen als eine gute, strukturierte, prozedurale Programmierung. (Und, zu Ihrer Information, "prozedurale Programmierung" ist kein schlechtes Wort. Es ist in den meisten Fällen auf einer bestimmten Ebene eine Notwendigkeit und für viele ganze Projekte völlig ausreichend.)
Stellen Sie nur sicher, dass Sie eine strukturierte prozedurale Programmierung durchführen. Die Wiederholung in Ihrem Code ist nicht unbedingt ein Zeichen dafür, dass Sie große, polymorphe Strukturen benötigen. Es könnte einfach ein Zeichen sein, dass Sie den wiederholten Code nehmen und in eine Unterroutine einfügen müssen. "Spaghetti" -Kontrollfluss kann einfach eine Gelegenheit sein, ein globales Problem loszuwerden.
Wenn es Aspekte des Projekts gibt, die zu Recht Polymorphismus, Vererbung der Implementierung usw. erfordern, würde ich vorschlagen, dass die Größe des Projekts möglicherweise unterschätzt wurde.
quelle
Wenn Sie wirklich an dem Dilemma interessiert sind, das Sie haben, sollten Sie auch "Lean Startup" lesen. Viele der Ratschläge, die Ihnen hier gegeben werden, werden Sie mehr ansprechen, wenn Sie dieses Buch lesen. Grundsätzlich ist die Ressourcenverbrennungsrate Ihr schlimmster Feind und nichts ist für Sie und Ihr Unternehmen wertvoller als das Feedback von Endbenutzern und Kunden. Bringen Sie Ihr Produkt in einen funktionsfähigen Zustand (das Minimum Viable Product - oder MVP) und versenden Sie es dann aus der Tür (unabhängig davon, wie der Code tatsächlich aussieht). Lassen Sie Ihre Kunden Ihre zukünftigen Änderungssätze und Versionen bestimmen, nicht umgekehrt. Wenn Sie sich auf diesen Ansatz konzentrieren, werden Sie und Ihr Chef auf lange Sicht glücklicher sein.
quelle
Aus Gründen, die andere gründlich erklärt haben, ist es Zeit, das Projekt zu beenden und es zu versenden, so schmerzhaft das auch sein mag.
Ich möchte nur betonen, dass das Testen der App auch Teil der "Fertigstellung" ist. Wenn wichtige Funktionen nicht gründlich ausgeführt wurden und die korrekten Ergebnisse nicht bestätigt wurden, haben Sie zu Recht Bedenken, dass diese App bei der Bereitstellung Probleme verursachen wird.
Unit-Tests und automatisierte Tests auf höherer Ebene sind großartig und sollten so weit wie möglich vorhanden sein, bevor Sie versuchen, diese Anwendung umzugestalten (oder neu zu schreiben). Aber im Moment müssen Sie es hauptsächlich testen , auch wenn Sie jeden Test "von Hand" ausführen und die korrekte Funktion "von Auge" bestätigen müssen. Wenn Sie später herausfinden können, wie Sie diese Tests automatisieren können, ist dies hilfreich, wenn Sie mit der Arbeit an der nächsten Version des Produkts beginnen müssen.
Einige Leute haben ein Händchen dafür, sich als Alpha-Test-Benutzer vor ein neues Software-Projekt zu setzen und Fehler zu machen. Das heißt, sie sind gut darin, Dinge zu zerbrechen. Wenn Sie das Glück haben, dass eine so talentierte Person mit Ihnen zusammenarbeitet, lassen Sie sie zuerst die App ausprobieren, damit Sie die Chance haben, offensichtliche Fehler frühzeitig zu beheben. Wenn Sie diese Aufgabe selbst erledigen müssen, dann:
quelle
Ihre Frage lautet: "Falsch gestartet, sollte ich von vorne beginnen", während der zusätzliche Text tatsächlich "Fertiges Projekt, aber falsch gemacht, sollte ich von vorne beginnen" lautet. Nur für die Überschrift der Frage: Wenn der Programmieraufwand im Vergleich zum Gesamtaufwand gering ist, ist es sinnvoll, von vorne zu beginnen. Das passiert oft, wenn das Problem komplex und schlecht verstanden ist und einige Zeit damit verbracht wird, herauszufinden, was das Problem tatsächlich ist. Es macht keinen Sinn, mit einem schlechten Start fortzufahren. Wenn Sie ihn wegwerfen und von vorne beginnen, bedeutet dies, dass Sie mit einem guten Verständnis des Problems tatsächlich schneller fertig werden.
quelle
Das würde ich persönlich machen:
Warum schlage ich Ihnen all dies vor?
Weil an die Zukunft denken. Es wird in Zukunft eine Zeit geben, in der bestimmte Personen Zugriff auf diesen Code erhalten. Sie werden alle möglichen Annahmen und Urteile über Sie und Ihre Fähigkeiten fällen. Es ist ihnen egal, wann du es geschrieben hast, es ist ihnen egal, unter welchen Umständen. Sie wollen nur sehen, was sie sehen wollen, um zu bestätigen, was sie bestätigen wollen.
Sie werden als was auch immer schlechter Name gebrandmarkt, Begriff, den sie finden können, um Sie negativ zu beeinflussen. Und obwohl Sie in Zukunft in Bezug auf technische Fähigkeiten, Fähigkeiten, Kenntnisse, Stil und die Situation völlig anders sein könnten, wird dieser Code auf jede mögliche Weise gegen Sie verwendet. Es ist wie bei einem Gericht, wo sie all die schlechten Dinge über Sie und Ihren Code und Ihr Design sagen können und Sie sich dessen nicht einmal bewusst sind, so dass Sie sich selbst erklären und verteidigen können. (und Sie werden oft feststellen, dass sie wiederholt zutiefst falsch liegen.) Tun Sie es also nicht. Gib auf.
Vertrauen Sie mir, es gibt Leute, die viele Annahmen über Sie gemacht haben, weil Sie zu irgendeinem Zweck und zu irgendeinem Zeitpunkt etwas getan haben. Wenn Ihnen dies in Situation A gefallen hat, werden Sie es in Situation B tun. Sie denken sehr einfach.
quelle
Zwei weitere Vorschläge, ich wette, mindestens einer davon hast du noch nicht gemacht.
1) Setzen Sie einen Bug-Tracker ein und bringen Sie Ihrem Chef den Umgang damit bei. Dies kann Teil des Gesprächs darüber sein, wie Sie es vermasselt haben, besser gelernt haben und es auf geplante Weise beheben werden
2) Starten Sie die Versionskontrolle, obwohl Sie dies hoffentlich bereits tun.
Es gibt unzählige gehostete Systeme, die beides kostenlos für kleine Konten anbieten. Ich mag FogBugz besonders, da es auch ein hervorragendes Bewertungs- und Aufgabenerfüllungssystem gibt, das Ihrem Chef noch mehr Sicherheit gibt, dass Sie die Dinge auf eine gut gemanagte Art und Weise angehen.
bearbeiten
Wow, jemand mochte das wirklich nicht - eine Ablehnung UND eine Lösch-Flagge? Warum?
Ich habe über dreißig Jahre lang Software entwickelt, einschließlich viel Beratungsarbeit und der Vererbung des Codes anderer Leute. Eine große Anzahl der Problemsysteme, die ich gesehen habe, war dort, wo Leute eine Grube gegraben haben und keine detaillierten Notizen darüber hatten, wie sie dorthin gekommen sind, und sie hatten keine Versionskontrolle.
quelle
Um Ihre Frage zu beantworten: Wie so viele andere gesagt haben, nein. Versende es und räum es Stück für Stück auf, während du Fehler behebst.
Auch wenn books / StackExchange / webforums gute Lernressourcen sind, werden Sie wahrscheinlich feststellen, dass nichts mit dem übereinstimmt, was Sie durch die Arbeit mit anderen Programmierern (oder auch nur durch Diskussionen über die Arbeit) erhalten. Eine lokale Gruppe für eine Technologie zu finden und zu besuchen, die Sie verwenden oder lernen möchten, ist eine wunderbare Investition Ihrer Zeit. Neben dem zu erwerbenden technischen Wissen ist dies eine einfache Möglichkeit, sich zu vernetzen, die von unschätzbarem Wert ist, wenn Sie sich auf zukünftige Auftritte freuen.
quelle
Ihr Chef war sich Ihrer Erfahrung bewusst, als er Sie anstellte. Bringen Sie einfach Ihre Bedenken zum Ausdruck und lassen Sie ihn wissen, dass Sie darüber nervös sind. Lassen Sie ihn auch wissen, wie viel Sie gelernt haben und wie viel besser Sie das nächste Projekt durchführen können.
quelle
Sie sind ein beginnender Webentwickler, und kein guter Entwickler ist anwesend, um Sie zu beraten. Ihr Chef hat Sie beauftragt, dies zu wissen. Ich denke, du machst es genauso gut, wie es von dir erwartet wird. Tatsächlich bedeutet die Tatsache, dass Sie die Einsicht haben, dass der Job besser hätte sein können und dass Sie tatsächlich Dinge gelernt haben, mit denen Sie es besser machen können, dass Sie es besser machen als die meisten anderen. Denken Sie zu Ihrer eigenen Sicherheit daran, dass es die Version von Ihnen, die den Job begonnen hat, nicht besser hätte machen können. Jemand, der mehr Erfahrung hat (und daher besser bezahlt wird), oder Sie, der über ein Projekt verfügt, hätten es besser machen können.
Was jetzt zu tun ist : Seien Sie froh, dass Sie ein besserer Entwickler sind als vor einem Jahr. Das nächste Projekt werden Sie besser machen (und am Ende werden Sie wieder erfahrener und nicht zufrieden mit dem, was Sie getan haben; das ist normal). Wenn Sie das letzte Projekt ändern oder umschreiben, hat das Unternehmen nur einen geringen Nutzen für die Kosten. Sie können fehlerhaften Code durch guten Code ersetzen, wenn Sie ohnehin Änderungen vornehmen müssen. Das ist sinnvoll, da das Ändern von schlecht wartbarem Code schwieriger sein kann als das Ersetzen durch guten Code. Und wenn Sie einen neuen unerfahrenen Entwickler um Hilfe bitten, teilen Sie ihm mit, dass dieser Code kein Beispiel ist, das er kopieren sollte.
quelle