CodeGym /Java-Blog /Random-DE /Analyse häufiger Fehler von unerfahrenen Programmierern, ...
John Squirrels
Level 41
San Francisco

Analyse häufiger Fehler von unerfahrenen Programmierern, Punkt. 2

Veröffentlicht in der Gruppe Random-DE
Hallo nochmal, alle zusammen! Wir werden uns weiterhin mit den Problemen befassen, mit denen ein junger und unreifer Programmierer bei seinem ersten Job konfrontiert sein kann. Den ersten Teil finden Sie hier . Analyse häufiger Fehler von unerfahrenen Programmierern, Punkt.  2 - 1Lass uns weitermachen.

13. Nichteinhaltung der Codierungsstilrichtlinien.

Entwicklungsteams halten sich normalerweise an einen einzigen Codierungsstil. Das heißt, einzelne Entwickler befolgen bestimmte geschriebene oder ungeschriebene Regeln, um sicherzustellen, dass sich ihr Codierungsstil nicht von dem anderer unterscheidet. Versuchen Sie nicht, sich durch einen unverwechselbaren Codierungsstil abzuheben: Dadurch sehen Sie nicht gut aus. Wenn Sie neu im Projekt sind, sollten Sie sofort herausfinden, ob es eine Dokumentation gibt, die allgemeine Richtlinien für den Codierungsstil definiert. Für Ihr spezifisches Projekt gibt es möglicherweise einige Stildateien, die Sie anfordern und in Ihre IDE importieren müssen (z. B. IntelliJ IDEA), damit die IDE die richtigen Hinweise zum Codierungsstil bereitstellen kann. Beispielsweise könnte der Stil die Verwendung des endgültigen Modifikators erfordern, wann immer dies möglich ist. Die Stildatei ermöglicht es IntelliJ IDEA, alle Variablen gelb hervorzuheben, bei denen dies nicht beachtet wird.

14. Sich durch Fehler entmutigen lassen

Analyse häufiger Fehler von unerfahrenen Programmierern, Punkt.  2 - 2An Fehler muss man sich gewöhnen. Sie waren, sind und werden sein. Es spielt keine Rolle, ob Sie Anfänger oder ernsthafter Architekt sind, Sie werden immer Fehler machen. Die Anzahl und Schwere Ihrer Fehler kann sich ändern, sie werden Sie jedoch während Ihrer gesamten Karriere begleiten. Manchmal fällt es Ihnen die ganze Woche schwer, etwas zum Laufen zu bringen, Sie machen einen Fehler und dann ist es Freitagabend und Sie schleichen wie ein geprügelter Hund nach Hause, ohne diesen verdammten Fehler beheben zu können. Es ist ein unbeschreibliches Gefühl, aber es sollte Sie nicht entmutigen. Schließlich besteht ein weiterer wichtiger Unterschied zwischen einem erfahrenen Entwickler und einem Anfänger darin, wie er oder sie mit Fehlern umgeht. Erfahrene Entwickler nehmen sie sich nicht zu Herzen, sondern betrachten sie als Erfahrung. Niemand wird dich dafür schelten, dass du einen Fehler gemacht hast. Das ist normal – jeder gerät manchmal ins Chaos. Auch hier können Sie Kollegen um Hilfe bitten. Und vergessen Sie nicht Leute wie Projektmanager (PM). Wenn Sie bei etwas nicht weiterkommen, sollten Sie sich sofort an den PM wenden. Er oder sie kann Ihnen dabei helfen, jemanden zu finden, der sich auf dem Problemgebiet auskennt. In jedem Fall muss der PM über alle Probleme informiert werden, auf die Sie im Projekt stoßen. Es ist die Aufgabe des PM, bei der Lösung aller möglichen Probleme zu helfen, einschließlich der Kommunikation und Interaktion zwischen Teammitgliedern. Um es zusammenzufassen: Fehler passieren , lass dich nicht davon umbringen. Nehmen Sie sie stattdessen als Herausforderung für sich und Ihre Fähigkeiten an. Letztendlich ist es nur ein Teil der Arbeit.

15. Fehler bei der Implementierung der Thread-Sicherheit.

Nichts Gutes entsteht leicht. Jeder Entwickler muss verstehen, dass das Schreiben spezifischer Funktionen, sei es ein Modul oder nur eine Methode, einen Plan erfordert, was und wie getan werden soll. Generell gilt bei der Entwicklung beliebig komplexer Funktionalitäten folgende Vorgehensweise:
Denken -> analysieren -> einen Plan erstellen -> Code schreiben -> Code testen -> umgestalten
Viele Fehler, die in von unerfahrenen Programmierern geschriebenem Code auftreten, beziehen sich auf die Schritte in diesem Verfahren. Natürlich können Sie nicht ausschließen, dass es Momente gibt, in denen Sie schnell und ohne zu zögern Code schreiben müssen, sobald Sie die Aufgabe sehen. Dies funktioniert jedoch im Allgemeinen nur für bestimmte kleinere Aufgaben und Methoden, deren Implementierung offensichtlich ist und nicht viel Nachdenken erfordert. Das oben genannte Entwicklungsverfahren eignet sich eher für komplexe und große Aufgaben, die in Teilaufgaben unterteilt werden können. Es ist keine gute Idee, mit dem Schreiben von Code zu beginnen, ohne genau zu verstehen, was Sie schreiben möchten. Zunächst müssen Sie alles sorgfältig überdenken und planen. Es kann auch hilfreich sein , sich ein Blatt Papier und einen Bleistift zu schnappen und zu versuchen, Ihre Umsetzungsideen zu skizzieren. Das mache ich immer, wenn ich komplexe Funktionalitäten plane. Ein Programmierer verbringt die meiste Zeit nicht damit, Code zu schreiben, sondern darüber nachzudenken, wie er die erforderliche Funktionalität strukturieren soll . Sobald Sie alles geplant und durchdacht haben, wird das Schreiben von Code zu einem problemlosen, rein mechanischen Prozess.

16. Überarbeitung

Analyse häufiger Fehler von unerfahrenen Programmierern, Punkt.  2 - 3
aus dem Film „Fight Club“ (1999)
Vielleicht denkt jeder Anfänger, dass er oder sie durch die Arbeit bis in die Nacht hinein mehr Aufgaben erledigt und ihm mehr Verantwortung anvertraut wird. Das dachte ich früher auch, aber nicht mehr. Mir ist aufgefallen, dass man irgendwann an seine Grenzen stößt und nicht mehr in der Lage ist, angemessen zu denken. Du fängst an, ziemlich langweilig zu werden und einen mentalen Nebel zu verspüren. Man braucht eine Stunde, um Dinge zu erledigen, die man in 10 Minuten erledigen könnte, wenn man frisch im Kopf wäre. Fast ausnahmslos stößt man nach dem Überschreiten dieser Ermüdungsgrenze auf ein scheinbar unüberwindbares Problem. Aber wenn Sie am nächsten Morgen zur Arbeit kommen, lösen Sie das Problem im Handumdrehen. Wenn Sie also das Gefühl haben, dass Sie diesen Punkt erreicht haben, bleiben Sie nicht lange auf. Geh einfach nach Hause und ruh dich gut aus. Denn wer bis spät in die Nacht am Schreibtisch bleibt, wird in diesen quälenden Stunden nicht nur keine besonders herausragenden Ergebnisse erzielen, sondern riskiert gleichzeitig auch eine schlechte (nicht ausreichende) Ruhe vor dem nächsten Arbeitstag, an dem Sie Ich werde es noch einmal vermasseln. Denken Sie an Ihre Gesundheit: Lohnt es sich, sie zu Beginn Ihrer Karriere so zu beeinträchtigen? Ich denke nicht. Es ist eine teure Zeit, krank zu sein. Und denken Sie an Ihren Arbeitgeber. Indem Sie sich überarbeiten, verschlechtern Sie die Situation nicht nur für sich selbst, sondern auch für Ihren Arbeitgeber. Wer braucht schon einen ständig schläfrigen Mitarbeiter, der aus Erschöpfung den einfachsten Sortieralgorithmus nicht umsetzen kann? Ja, es gibt zweifellos Zeiten, in denen die Deadline knapp ist, Zeiten, in denen alles schief gelaufen ist, und Zeiten, in denen – und das ist mein persönlicher Favorit – „das gestern noch nötig war“. Aber solche Situationen sind im Allgemeinen selten, und wenn man sie einmal überstanden hat, muss man sich hinsetzen und sorgfältig darüber nachdenken, wie sie überhaupt passieren konnten und wie man sie in Zukunft vermeiden kann.

17. Vernachlässigung von Englischkenntnissen

Viele angehende Entwickler legen Wert auf Lerntechnologie und schieben das Englischlernen auf. Dies ist ein schwerwiegender Fehler, da ein Programmierer häufig perfekt für eine Juniorposition (oder ein Praktikum) geeignet ist, den Job jedoch aufgrund mangelnder Englischkenntnisse nicht bekommt. Ja, natürlich gibt es Fälle, in denen man ohne Englisch auskommt. In der Regel werden solche Leute vor Ort für Projekte in nicht englischsprachigen Ländern eingestellt. Doch einheimische Unternehmen zahlen nicht die gleichen Löhne wie ausländische Unternehmen. Und es wird sehr, sehr schwierig sein, ein anständiges Gehalt zu bekommen, selbst auf lange Sicht. Deshalb sollten Sie Englisch nicht außer Acht lassen. Anstatt Englisch auf die lange Bank zu schieben, müssen Sie es lernen, um sich sofort auf englischsprachige Projekte konzentrieren zu können. Denken Sie einmal darüber nach: Englisch ist derzeit die Sprache im internationalen Geschäftsleben. Egal in welches Land Sie reisen, wenn Sie Englisch sprechen, können Sie mit anderen eine gemeinsame Sprache finden. Dasselbe gilt auch für Entwicklungsprojekte. Es spielt keine Rolle, wo das Projekt seinen Sitz hat: Deutschland, Australien, Frankreich oder anderswo – die gesamte Kommunikation, alle Aufgaben, Dokumentationen usw. erfolgen auf Englisch. Und wenn Sie eine Sekunde darüber nachdenken, werden Sie zustimmen, dass das sehr praktisch ist, oder?

18. Streben nach trendiger Technologie

Wenn Entwickler ihren Weg einschlagen, versuchen sie oft, mit den neuesten Technologien Schritt zu halten. Ist das das Richtige? Einerseits ja: die neuesten Technologien, Projekte ... Aber lohnt es sich, dies zur obersten Priorität zu machen? Vielleicht ist es besser, den „klassischen Werkzeugkasten“ für einen Spezialisten auf Ihrem Gebiet zu nutzen? Neu ist sicherlich gut, aber Sie dürfen die grundlegenden Technologien Ihres Fachgebiets nicht vergessen. Und erst dann, wenn Sie ein wenig Erfahrung und tiefes Wissen über die Grundlagen gesammelt haben, können Sie etwas Neues ausprobieren. Bedenken Sie auch, dass neue Technologien in einigen subtilen Punkten überlegen sein können, in anderen jedoch möglicherweise ihre Vorteile einbüßen. Bis ein unerfahrener Entwickler diese Kompromisse versteht, ist es besser, bei den bewährten Lösungen zu bleiben. Wenn ein Programmierer beispielsweise eine Anwendung entwickelt, die mit einigen Daten interagiert, sollten Sie nicht voreilig die neueste NoSQL-Lösung verwenden, nur weil sie in Mode ist. Eine gewöhnliche, bewährte SQL-Datenbank (MySQL, PostgreSQL usw.) verfügt höchstwahrscheinlich über eine detaillierte Dokumentation und Lösungen zu StackOverFlow für mögliche Probleme :)

19. Mehrere verschiedene Technologien und/oder Sprachen gleichzeitig lernen

Wir haben oben über Anfänger gesprochen, die versuchen, modische Technologien zu erlernen. Wie wäre es, wenn Sie gleichzeitig viele Technologien oder Sprachen studieren? Offensichtlich haben Sie von Programmierern gehört, die mehr als eine Programmiersprache beherrschen und viele Technologien beherrschen. Aber ich möchte schnell darauf hinweisen, dass diese Leute alles andere als neu im Programmieren sind. Das sind Menschen mit langjähriger Erfahrung. Sie beherrschten ihre ursprüngliche Technologie und gingen dann immer weiter. Anfänger, die alles auf einmal meistern wollen, sollten sich an das gute Sprichwort erinnern: „Jage zwei Hasen und du wirst keinen fangen.“ Die Konsequenz kann sein, dass Sie kein Thema gut beherrschen, sondern nur oberflächlich lernen. Es wird mehr Nachfrage nach einem Spezialisten geben, der eine einzelne Sprache gründlich beherrscht, als nach einem, der ein wenig über alles weiß. Wenn Sie also viele Sprachen und Technologien beherrschen möchten, müssen Sie mit Bedacht damit umgehen. Um zu beginnen, müssen Sie eine grundlegende Kernsprache auswählen, die Sie gründlich erlernen müssen. Und erst dann sollten Sie beginnen, andere Bereiche zu studieren. Werden Sie zum Beispiel ein Java-Guru und lernen Sie dann Python als Zweitsprache. Danach erfahren Sie möglicherweise etwas über React/Angular für das Frontend. In diesem Fall sprechen wir von Technologien, die nicht austauschbar sind, wie etwa C# und Java, sondern die sich ergänzen und Ihre Karrierechancen erweitern. Aber ich wiederhole noch einmal: Sie sollten nicht versuchen, alles auf einmal zu lernen. Sie müssen der Reihe nach vorgehen. Fangen Sie sozusagen einen Hasen nach dem anderen.

20. Falsch formulierte Ziele

Wie setzt man sich Ziele? Ein cooler Entwickler werden? Denken Sie ein für alle Mal daran: Sie müssen sich konkrete Ziele setzen, oder mit anderen Worten: erreichbare Ziele. Wovon rede ich? Sie setzen sich zum Beispiel das Ziel: „Ich möchte reich werden“. Aber woher wissen Sie, ob Sie dieses Ziel erreicht haben? Oder wie messen Sie, wie nah Sie dem Ziel sind? Nun, wenn Sie sich das Ziel setzen „Ich möchte eine Million Dollar verdienen“, ist das doch etwas klarer, oder? Sobald Sie 10.000 US-Dollar verdient haben, sind Sie Ihrem Ziel 10.000 US-Dollar näher – es bleiben nur noch 990.000 US-Dollar übrig. Es gibt noch viel zu erreichen, aber Sie können Ihre Fortschritte spüren und verstehen, wo die Ziellinie ist, sodass Sie motiviert sind, weiterzumachen. Wie wäre es, wenn Sie sich im Hinblick auf Ihre Karriere ein greifbareres Ziel setzen? Zum Beispiel: Ich möchte Teamleiter werden. Oder ein leitender Entwickler. Oder letztendlich ein Architekt. Nun, jede große Aufgabe muss in kleine Teilaufgaben unterteilt werden. Teamleiter wird man nicht gleich zu Beginn seiner Karriere. Legen Sie, wenn möglich und angemessen, Fristen fest und konzentrieren Sie sich auf die aktuelle Phase.
  1. Wenn es darum geht, Senior-Entwickler zu werden , dann wäre das erste kleine Ziel, ein Praktikum oder einen Job als Junior-Entwickler bei einem Unternehmen zu finden.
  2. Als nächstes können Sie sich Ziele setzen, um Ihr Wissen über bestimmte Technologien zu vertiefen. Was Java betrifft, können Sie sich auf die Level-1-Zertifizierung von Oracle vorbereiten. Wir legen einen Zeitrahmen für unsere Vorbereitung fest und gehen das Ziel an.
  3. Dann könnten Sie sich beispielsweise zum Ziel setzen, Ihr Englisch um eine Stufe zu verbessern (z. B. von B1 auf B2). Wir erstellen einen Lernplan, planen die Zeit und gehen auf das Ziel zu.
So können wir Schritt für Schritt unser Endziel erreichen (und gleichzeitig Erfahrungen in der Softwareentwicklung sammeln).

21. Theorie ohne Praxis

Es ist eine unbestreitbare Tatsache, dass wir bessere Fachleute werden, wenn wir uns mit neuen Technologien befassen und tiefer in Themen eintauchen, die wir bereits kennen. Doch zu Beginn der Reise wird Entwicklern selten klar, dass das Verschlingen von Fachbüchern nacheinander keine großen Vorteile bringt, wenn das neue Wissen nicht in der Praxis ausprobiert wird. Ich persönlich bin mehr als einmal darauf gestoßen. Wenn man einem Buch viel Zeit widmet, es aber nicht in die Praxis umsetzt, ist fast das gesamte neu erworbene Wissen vergessen: Es bleibt nur eine allgemeine, vage Erinnerung daran, wie alles funktioniert. Das Ergebnis ist eine Menge Zeitverschwendung ohne greifbares Ergebnis. Warum sollten wir unsere Zeit verschwenden? Das Leben dauert nicht ewig. Das Fazit ist, dass Sie sich beim Erlernen einer neuen Technologie nicht auf die Theorie beschränken sollten: Schreiben Sie die gegebenen Beispiele parallel zu Ihrer Lektüre auf und experimentieren Sie mit der neuen Technologie. Nur so kann Ihr Gehirn die Informationen behalten. Ja, Sie werden neue Materialien langsamer verbrauchen, aber Sie werden deutlich mehr von dem verarbeiten, was Sie lesen. Und wenn Sie eine Technologie gut beherrschen, wird es Ihnen noch leichter fallen, die nächste zu beherrschen (genau wie beim Erlernen von Sprachen).

22. Übermäßiger Perfektionismus

Die meisten Entwickler sind Perfektionisten: Menschen, die nach Perfektion streben. Das bedeutet, dass auch ihr Code perfekt sein muss. Ihr Code wurde also geschrieben, getestet und verfeinert, und es scheint, als wäre es an der Zeit, ihn an den Hauptzweig zu übermitteln. Aber Sie sind mit dem Code immer noch nicht zufrieden, also fangen Sie an, ihn hin und her zu verdrehen, und verbringen viel Zeit damit. Und in diesem Fall ist Zeit das Geld Ihres Kunden. Programmieranfänger sind anfälliger für dieses Streben nach Perfektion. Erfahrene Entwickler sind an das Gefühl gewöhnt, dass der Code nie perfekt sein wird und sie versuchen sollten, ihn besser zu schreiben. Aber gleichzeitig gehen sie nicht ins Extreme, um dem „Ideal“ näher zu kommen. Denken Sie also daran, zu lernen, wie Sie einen guten Mittelweg erreichen: nicht auf schlampige Art und Weise und nicht versuchen, die Mona Lisa im Code nachzubilden.

23. Versäumnis, über Architektur nachzudenken

Lassen Sie es mich noch einmal sagen: Sie sollten keinen chaotischen Code schreiben. Neben der Lesbarkeit und Leistung müssen Sie auch darüber nachdenken, wie sich Ihr Code auf den Rest Ihrer Anwendung als Ganzes auswirken könnte. Wie schwierig wird es beispielsweise sein, Ihren Code zu erweitern usw. Das Problem besteht darin, dass unerfahrene Entwickler aufgrund mangelnder Erfahrung möglicherweise nicht sofort erkennen, wie sich ihre neue Funktionalität in Zukunft auf die Anwendung auswirken wird. Die Entwicklung dieser Weitsicht erfordert sicherlich viel Übung. Aber was sollen Neulinge dann tun? Kein Code schreiben? In diesen Situationen helfen uns verschiedene Programmierparadigmen. Zum Beispiel SOLID-Prinzipien oder verschiedene Designmuster, die Ihnen nützliche Praktiken vermitteln können. Auch diese Paradigmen sollten mit Vorsicht behandelt und nicht zu weit getrieben werden. Aber wie erkennt man den Punkt, an dem man es übertreibt? Hier hilft Ihnen eine Codeüberprüfung durch einen erfahreneren Kollegen. Durch die Einbeziehung frischer und objektiver Augen kann Ihr Kollege Ihnen den richtigen Weg weisen.

24. Hochstapler-Syndrom

Analyse häufiger Fehler von unerfahrenen Programmierern, Punkt.  2 - 4Das Hochstapler-Syndrom ist ein psychologisches Phänomen, bei dem eine Person ihre Leistungen nicht auf persönliche Qualitäten, Fähigkeiten und Anstrengungen zurückführen kann. Trotz der externen Beweise für ihre konstante Leistung glauben Menschen, die für dieses Syndrom anfällig sind, weiterhin, dass sie Betrüger sind und den Erfolg, den sie erreicht haben, nicht verdienen. Viele Entwickler haben dieses Syndrom. Vielleicht gibt es uns die Beharrlichkeit, die uns zu neuem Wissen und neuen Technologien vorantreibt. Sie sehen erfahrenere und leistungsfähigere Kollegen an und haben das Gefühl, dass Sie Ihr Gehalt nicht wert sind. Glauben Sie mir, das ist nicht wahr. Es gibt und wird immer Entwickler geben, die besser oder schlechter sind als Sie. Jemand anderes schaut Sie an und fühlt sich unwohl, weil er denkt, dass er oder sie niemals so werden wird wie Sie. Und das ist normal. Feedback von Ihrem Team, Codeüberprüfungen und Diskussionen helfen, diesem Gefühl ein wenig entgegenzuwirken. Glauben Sie mir, die Meinung eines Außenstehenden wird Sie angenehm überraschen, aber nur, wenn Sie Ihre Arbeit und berufliche Entwicklung wirklich nicht vernachlässigen. Wenn Sie diese Dinge vernachlässigen, haben Sie den falschen Beruf gewählt. In diesem Beruf muss man immer etwas Neues lernen und das Beste anstreben. Aber ich denke, die Leute, die sich hier versammeln, sind alles andere als faul. Stattdessen bewegen sich die Menschen hier unbeirrt auf ihr liebgewonnenes Ziel zu. Wenn das auf Sie zutrifft, dann haben Sie nichts zu befürchten.

25. Selten Verpflichtungen eingehen

Denken Sie daran, häufig Commits durchzuführen! Wohlgemerkt nicht jede halbe Stunde. Wenn Sie eine Woche damit verbringen, einige Funktionen zu implementieren, sollten Sie nicht einen Commit am Freitagabend durchführen, sondern beispielsweise fünf Commits. Fast jede große Aufgabe kann der Einfachheit halber in kleinere Aufgaben unterteilt werden. Sie erledigen also diese kleineren Aufgaben und verpflichten sich. Und vergessen Sie nicht, diese Commits sofort an den Remote-Server zu senden. Andernfalls könnte es sein, dass Sie die ganze Woche über Commits durchführen und dann am Freitagmittag ein Hardwarefehler auf Ihrem Computer auftritt, und dann haben Sie eine ganze Woche umsonst verloren! Wenn Sie Ihre Commits jedoch auf einen Remote-Server hochgeladen hätten, würden Sie einfach den Zweig mit Ihrem letzten Commit auf einen anderen Computer ziehen und mit der Arbeit fortfahren. Noch etwas: Übermitteln Sie keine neuen Funktionen am Freitagabend an einen Live-Produktionsserver. Vertrau mir einfach. Das brauchst du nicht. Es ist sehr wahrscheinlich, dass unerwartete Fehler auftauchen und Sie Ihr Wochenende damit verbringen, sie zu beheben. Und das macht keinen Spaß. Am Wochenende müssen Sie sich ausruhen. Ich denke, das ist alles für heute. PS: Ein letzter Tipp: Schreiben Sie viel Code. PPS: Schreiben Sie wahnsinnig viel Code, denn nur so können Sie dringend benötigte Erfahrungen sammeln.
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION