Ich bin jetzt seit einigen Jahren Entwickler. Ich bin ziemlich gut in dem, was ich tue und kann "die Arbeit erledigen".
Es gibt jedoch einen Unterschied zwischen "die Arbeit erledigen" und "die Arbeit richtig erledigen". Nehmen wir ein Beispiel.
Kürzlich habe ich eine Website von Grund auf neu entwickelt. Die Website läuft gut und ich hatte keine Probleme. Als ich den Code durchgesehen habe, dachte ich mir, ich hätte es besser machen können. Ich hätte meine MySQL-Abfragen reduzieren können. Ich hätte MVC verwenden können, um die Erweiterung zu vereinfachen (es muss jetzt erweitert werden).
Ich beschloss, das Projekt mit CodeIgniter neu zu schreiben. Ich mag den Rahmen. Aber dann wurde ich abgelenkt, weil ich fortgeschrittene Joins lernen musste, um meine MySQL-Abfragen zu reduzieren.
Und das ist das Problem. Wann immer ich einen Job richtig mache, bin ich in einem ständigen Lernrad. Und Themen wie erweiterte MySQL-Verknüpfungen brauchen Zeit zum Lernen und dann zum Implementieren.
Ich arbeite nicht für eine Firma. Ich mache alles alleine. Wenn ich als PHP-Entwickler für ein Unternehmen arbeiten würde, gäbe es wahrscheinlich separate Teams, die sich mit SQL befassen.
Solo zu sein ist schwierig. Und manchmal stelle ich, obwohl mein Wissen fortgeschritten ist, Frage für Frage. Ich bin wahrscheinlich sehr stolz auf meine Arbeit. Aber wenn ich für ein Unternehmen arbeiten müsste, das komplette Projekte abwickelt, könnte ich mir vorstellen, dass Projekte eine Weile dauern, weil ich immer mehr lernen müsste, um meinen Stolz zu befriedigen und sicherzustellen, dass ich die Dinge "richtig" mache.
Ich plane, nach dem neuen Jahr einen Job zu bekommen. Ich brauche die Arbeitssicherheit. Deshalb stelle ich diese Frage.
Welchen Rat können Sie in Bezug auf Selbstentwicklung und Selbstverbesserung geben? Sollte ich mir weniger Sorgen machen? Oder vielleicht suchen Sie einen Job als PHP-Entwickler, wenn ich SQL-Abfragen nicht direkt abwickle?
quelle
Antworten:
Tipp: Haben Sie keine Angst davor, neue Dinge zu lernen - Sie haben einen guten ersten Schritt unternommen, um zu erkennen, dass Sie es besser machen können, und haben sich dann die Mühe gemacht, zu lernen, wie Sie es besser machen können. Ja, es braucht mehr Zeit, aber die Auszahlung lohnt sich normalerweise auf lange Sicht. Nachdem Sie CodeIgniter kennen, können Sie es für die nächsten zukünftigen Projekte verwenden. Sie können es in Ihren Lebenslauf aufnehmen. Jetzt, da Sie fortgeschrittene SQL-Techniken kennen, werden Ihre zukünftigen Projekte davon profitieren. Wenn Sie aufhören zu lernen, werden Sie stagnieren.
quelle
Was du durchmachst, klingt für mich ganz normal. So arbeiten wir an unserem Handwerk und werden immer besser in dem, was wir tun.
quelle
Ich denke, es ist sinnvoll, dass Sie sich darauf konzentrieren, Ihre Fähigkeit zu verbessern, vorausschauend zu planen, Arbeitswarteschlangen einzurichten und zu priorisieren und Ihre Zeit zu verwalten - solche Dinge.
Wirklich, dies scheint das einzige zu sein, was in deiner Einstellung fehlt. Was Sie "Sidetracking" nennen, ist im Wesentlichen eine weitere Arbeit ("Learn Advanced Joins"), die geplant, priorisiert und in die Warteschlange gestellt werden muss.
quelle
Ein Profi auf diesem Gebiet zu sein, bedeutet, sich ständig gegen seine eigene Unzulänglichkeit zu behaupten. Machen Sie das von Montag bis Freitag zwischen 8 und 5 Uhr, vielleicht auch länger, wenn ein Termin bevorsteht, ein schönes Wochenende und am Montag mehr. Das ist der Job.
Das Erstellen von Software erfordert eine gewisse Demut. Wenn Sie jemand sind, der Recht haben muss und beweisen muss, dass er bereits alles wusste, ist dies möglicherweise nicht das richtige Feld für Sie.
Ich kann nicht verstehen, dass ich nicht jeden Tag etwas lerne. Ich glaube nicht, dass ich diesen Job möchte.
quelle
Solo zu sein ist schwierig. Wenn Sie dagegen mit einem Entwicklerteam arbeiten, lernen alle voneinander. Als Teil des Teams werden Sie durch die Zusammenarbeit mit anderen Entwicklern viel Wissen erlangen, und das mit weniger Aufwand, als wenn Sie versuchen, alles selbst herauszufinden.
Als Entwickler muss man sich jedoch dem ständigen Lernen widmen. Egal, ob Sie Dokumentation für neue Frameworks lesen oder Bücher über die Entwicklung lesen, Sie müssen sich ständig bemühen, Ihr Wissen auf dem neuesten Stand zu halten und zu erweitern. Wenn Sie jedoch Teil eines Teams sind, kann sich herausstellen, welchen Bereich Sie zu einem bestimmten Zeitpunkt am meisten kennenlernen müssen.
Bezüglich Ihrer Überlegung, Ihren älteren Code zu überarbeiten und neu zu schreiben: Ich habe festgestellt, dass mein eigener Code immer das Beste von dem darstellt, was ich zu dem Zeitpunkt wusste, als ich ihn geschrieben habe. Oft gehe ich zu etwas zurück, das ich vor Jahren geschrieben habe, und klopfe mir auf die Stirn, wenn ich sehe, wie viel besser ich es hätte machen können, wenn ich das gegeben hätte, was ich jetzt weiß . Aber das ist die Natur der Erfahrung, die Sie bekommen, wenn Sie sie brauchen ...
Schließlich müssen Sie bei der Entwicklung einer Anwendung immer ein gutes Gespür für Ihr Geschäft entwickeln, um zu entscheiden, wann es am besten ist, die Ecken zu kürzen, um schneller fertig zu werden, und wann Sie sich mehr Zeit nehmen müssen, um etwas Neues zu lernen, das das Design und die Qualität verbessert der Anwendung. In der Software-Welt gibt es ein Universum von Dingen zu lernen. Ohne ein solches Urteilsvermögen könnten Sie lernen, nachdenken, umgestalten, aber nie etwas erreichen.
quelle
Ich denke, Ihre Bedenken sind berechtigt, aber Sie sollten keinen Schlaf verlieren. Ich glaube, dass ein Technologe folgendes Gepäck mit sich bringt:
Am Ende scheint es Ihnen wichtig zu sein, qualitativ hochwertige Software zu entwickeln, was Sie nicht lernen können . Wissen, dass Sie den Aufbau einer qualitativ hochwertigen Lösung von dem Aufbau einer perfekten Lösung unterscheiden müssen. Es hört sich so an, als wärst du wie ich und würde nie das Gefühl haben, dass es perfekt ist. Es wäre besorgniserregender, wenn Sie nicht das Gefühl hätten, sich und Ihre Arbeit verbessern zu können.
Es ist schwierig, ein Alleskönner zu sein (Meister aller Klassen), aber Sie müssen wirklich herausfinden, wie Sie die für Sie interessantesten und nützlichsten Dinge identifizieren und sich auf sie konzentrieren können. Finden Sie heraus, wie Sie andere Arbeiten am besten an andere Personen oder Werkzeuge auslagern können .
quelle
Ich denke, Sie müssen sich weniger Gedanken darüber machen, wie Sie es richtig machen. Streben Sie nach Perfektion, aber stellen Sie fest, dass es nicht wirklich möglich ist, eine perfekte Lösung zu finden. Die Tatsache, dass Sie sich genug Sorgen machen, um diese Frage richtig zu beantworten, bedeutet, dass Sie bereits auf dem richtigen Weg sind.
Was Ihre Frustration beim Erlernen neuer Dinge angeht, so stellte ich fest, dass die Arbeit in einer Gruppe und die Möglichkeit, das Problem mit anderen Programmierern zu erfragen und zu diskutieren, den Schmerz beseitigte, herauszufinden, was ich lernen musste, und es durch die Freude von ersetzte Neues entdecken und anwenden lernen.
Ich liebe es, Software zu schreiben, aber manchmal tut es wirklich weh, nicht wirklich etwas Neues zu lernen, sondern genau das zu finden, was man lernen muss, um das zu erreichen, was man tun möchte.
Soweit ich weiß, war ich in einer ähnlichen Position wie Sie. Etwas alleine zu programmieren kann sowohl frustrierend als auch schwierig sein und zu anderen Zeiten lohnend und etwas lustig.
Mach genau das, was du vorhast, finde einen Job, bei dem du Teil eines Teams bist (und tu dein Bestes, um sicherzustellen, dass du einen Job bekommst, der nicht schlecht läuft). Wenn Sie mit anderen Personen zusammenarbeiten, die dieselben Technologien verwenden und dieselbe Software entwerfen, können Sie diese Technologien und Entwurfsmuster fast über Nacht besser verstehen und anwenden.
Was das Wissen angeht, wie man etwas beim ersten Mal richtig macht, woher solltest du wissen, dass es einen besseren Weg gibt, wenn du es nicht schon beim ersten Mal auf eine bestimmte Weise getan hast? Kenntnisse im Software-Design hängen häufig stark von der Erfahrung ab. Joel Spolsky ist ein Software-Genie, aber wenn Sie viele seiner Artikel lesen, werden Sie feststellen, dass sie in hohem Maße auf Erfahrung und Intelligenz beruhen.
Was den SQL-Teil angeht, so haben wir als .NET-Entwickler, für den ich bisher noch keinen Datenbankentwickler hatte, alle unser eigenes SQL geschrieben, aber es gibt oft wirklich gute SQL-Entwickler, die bereit sind, Ihnen zu helfen mit dem tieferen Zeug.
Du klingst wie ein kluger Kerl, ich denke nicht, dass du so hart zu dir selbst sein solltest.
quelle
Dies ist völlig normal und nichts, worüber Sie sich zu viele Sorgen machen sollten. Sie müssen ständig neue Fähigkeiten erlernen, aber Sie müssen auch lernen, Ihre Zeit zu priorisieren und zu verwalten. Sie müssen auch die Falle einer unnötigen Sanierung vermeiden.
Der unerfahrene Programmierer wird oft in die Falle der Neuentwicklung hineingezogen:
Es gibt eine Reihe von Dingen, die an dieser Logik falsch sind.
Es kann niemals schaden, über eine Sanierung nachzudenken und sie zu planen. Überlegen Sie sich also, wie Sie Ihr Programm umschreiben möchten, und versuchen Sie, alle Probleme zu identifizieren, auf die Sie stoßen. In diesem Fall hätten Sie die 'Advanced SQL-Joins' identifiziert, die Sie jetzt benötigen, und dann untersucht, wie sie funktionieren, und erfahren Sie mehr über sie.
Wenn Sie der Meinung sind, dass Sie die fortgeschrittene Wissenslücke beim Beitritt nicht durch Planung erkannt hätten (ohne mit der Entwicklung zu beginnen), müssen Sie Ihre Planungsfähigkeiten verbessern. Überlegen Sie, welcher Teil des Plans nicht detailliert genug war. Sie sollten so lange ins Detail gehen, bis Sie sicher sind, dass das gesamte System technisch möglich ist.
Dieser Ansatz ermöglicht es Ihnen , zu lernen , vor der Zeit .
Schließlich ist Lernen am Arbeitsplatz ein normaler Bestandteil des Programmierens. Dies bedeutet jedoch nicht, dass Sie eine Aufgabe starten und dann feststellen, dass Sie eine Woche innehalten müssen, um beispielsweise grundlegendes HTML zu lernen. Sie können ein paar Stunden innehalten, um sich über etwas zu informieren, aber Ihr Arbeitgeber bezahlt Sie nur, um die Arbeit zu erledigen. Effizientes Lernen - lesen Sie nicht die Einführung und den Verlauf, sondern nur, wie es funktioniert und wie es in Ihr Programm passt. Wenn Sie tagelang aufhören müssen zu arbeiten, um zu lernen, wie Sie einen Teil des Programms abschließen, machen Sie es falsch.
quelle
Vielleicht denken Sie, dass das Erlernen neuer Technologien und Probleme eine Zeitsenke ist. Aber keine Panik. Es ist normal. Es gehört zu Ihrer Übung als Programmierer, etwas zu lernen ... sonst würden wir alle bei COBOL bleiben.
Freiberufler passen ihre Provisionen entsprechend an, und Lernzeiten sollten unter anderem in Ihre Zeitschätzungen einbezogen werden. Wenn Sie sich das nächste Mal für ein neues Framework entscheiden, stellen Sie sicher, dass Sie genügend Zeit einplanen, um es zu lernen.
quelle
Nein, das gibt es nicht, und ich denke, das ist die Wurzel Ihres Problems hier. Mir kommt es so vor, als ob Sie zu sehr darauf aus sind, die Dinge „richtig“ zu machen, weil Sie als einzelner Entwickler nicht sehen, wie andere funktionieren. Aber richtig nach wem? Wer ist diese magische Person, die entscheidet, dass das, was Sie tun, „richtig“ ist? Nehmen Sie 100 der besten Programmierer der Welt, und ich garantiere, dass sich keine zwei zu 100% auf jedes Programmierthema einigen.
Entscheidend ist letztendlich, ob Ihre Kunden zufrieden sind. Wenn die von Ihnen erstellten Programme die Probleme lösen, die sie lösen sollen, und dies auf kostengünstige Weise, dann tun Sie es richtig. Es ist zum Beispiel von Natur aus nicht korrekter, Codeigniter zu verwenden, als Ihr eigenes Framework zu verwenden. Die Konsequenz ist, wenn Sie einen Haufen Mist produzieren, machen Sie es "falsch", unabhängig von den Prozessen oder "Best Practices", die befolgt werden.
Dass Sie Ihren Code überarbeiten und nach Verbesserungsmöglichkeiten suchen, ist ein normaler Teil des Entwicklungsprozesses. Es ist kein Zeichen dafür, dass Sie die Dinge nicht „richtig“ machen. Es ist ein Zeichen dafür, dass Sie sich dem Lernen und Verbessern verschrieben haben. Nach allem, was ich in Ihrem Beitrag sehe, haben Sie kein Problem.
Jetzt geh und trete ein paar * * *
quelle