Techniken zur Erhöhung der Logik beim Programmieren [geschlossen]

21

Ich beschäftige mich seit 3 ​​Jahren mit Programmieren. Aber ich scheint darin verloren zu sein. Ich kann nicht gut damit umgehen, obwohl ich jeden Tag programmiere.

Angenommen, ich löse ein Problem, wandere von Lösung zu Lösung und implementiere eine andere Lösung. Ich kann mich nicht sehr konzentrieren. Ich habe viele Fehler für den Code, den ich schreibe. Ich habe Angst vor Code Ich weiß nicht warum, wenn ich ihn nicht rechtzeitig beende, wird mein Chef mich feuern usw. Ich genieße das Codieren, aber nicht die ganze Zeit. Wie kann man die Geduld steigern?

Ich frage mich immer, wie ich der beste Programmierer wie viele außergewöhnliche Programmierer werden kann. Ich weiß, dass dies subjektiv klingt, aber ich denke, dass dies der Programmierer-Community helfen wird, gut darin zu werden, besonders für Durchschnitts-Programmierer wie mich oder Anfänger.

Umesh Kacha
quelle
8
Es ist üblich, sich so zu fühlen. Nicht jeder von uns wird Compiler schreiben oder Hardcore-Programmierer sein. Ich habe keine formale Ausbildung in Programmierung, aber das Lösen von Problemen ist der Schlüssel. Da sich die Technologie sehr schnell ändert, ist es sehr schwierig, über Wasser zu bleiben. Ich strebe nach ständiger Verbesserung. Das ist mein Ziel. Verstehe, dass dieser Beruf sehr unterschiedlich ist. Bemühe dich, das Beste aus dir herauszuholen und dich weiterzuentwickeln. Ich nehme mir jede Woche etwas Zeit, um etwas Neues zu lernen oder zu verstehen. Solange Sie diese Einstellung beibehalten, werden Sie besser.
Jon Raynor
"Ich habe Angst vor Code ... wenn ich ihn nicht rechtzeitig beende, wird mich mein Chef feuern, usw."
Paul D. Waite
@ PaulD.Waite Stimmt, es ist nicht großartig, aber sehr, sehr verbreitet.
Pramesh Bajracharya

Antworten:

12

Ich persönlich würde vorschlagen, mit kleineren Hürden zu beginnen; Versuchen Sie, in kleineren Blöcken zu programmieren, und setzen Sie sich mehr für die Zwischensiege ein. Es hört sich so an, als ob Sie entweder überfordert oder gelangweilt sind, wenn etwas zu lange dauert oder keine Fortschritte zeigt. Ich kann definitiv sagen, dass ich im selben Boot war.

Stellen Sie es sich wie ein Sandwich vor: Sie essen nicht alles auf einmal, Sie zerlegen es. Machen Sie dasselbe mit Ihren Projekten, Aufgaben usw. Je nachdem, auf welcher Ebene Sie sich befinden, möchten Sie möglicherweise Ihren Vorgesetzten / Manager bitten, es für Sie aufzuschlüsseln. Wenn Sie für Ihre eigene Arbeitsbelastung verantwortlich sind, legen Sie für sich selbst kleine, erreichbare Ziellinien fest (legen Sie kein Ziel fest, das Sie nie erreichen werden, dies entmutigt Sie nur und bringt Sie in eine unerwünschte Position). zB "Bis Mittag möchte ich diese Klasse definieren", "Bis 2 möchte ich diese Schnittstelle implementieren" usw.

Mein Unternehmen ist dafür berüchtigt, ein Projekt anzufangen und voranzutreiben, das es mir ermöglicht, die 90% -Marke zu erreichen, und dann den Teppich unter mir herauszuschieben, um mit dem "nächsten großen Ding" fortzufahren. Ich fange an, mich zu entmutigen, dass ich nie etwas erledige, und bekomme mich in einen "Funk" (wenn Sie so wollen). Schließlich drängte ich mich zurück und sagte ihnen, dass ich erst weitermachen würde, wenn ich fertig wäre. Dies hat meine Wertschätzung, Moral und Energie gewundert (obwohl ich nicht dasselbe über meine Arbeitgeber sagen kann: Achselzucken :)

Brad Christie
quelle
7

Mein Vorschlag wäre, einen Mentor zu bekommen.

Wenn Sie ein neues Projekt erhalten, entscheiden Sie, welchen Weg Sie einschlagen möchten: Wie sieht das Gesamtdesign aus? Welche Algorithmen werden Sie verwenden? Wie wollen Sie es entwickeln, damit Sie früh und häufig testen können? und so weiter.

Bringen Sie diese Pläne zu Ihrem Mentor und besprechen Sie sie mit ihm / ihr. Wenn sie sehen, dass Sie auf dem falschen Weg sind oder etwas Wichtiges verpasst haben, überarbeiten Sie Ihre Pläne und versuchen Sie es erneut.

Wenn Sie einen genehmigten Plan haben, halten Sie sich daran. Ändern Sie Ihre Pläne nicht, es sei denn, es ereignet sich etwas Katastrophales. Überprüfen Sie anschließend Ihre Pläne, lassen Sie sich genehmigen und starten Sie sie neu. Ansonsten bleiben Sie bei Ihrem Plan und erledigen Sie genau das, wofür Sie sich entschieden haben. Wenden Sie sich in regelmäßigen Abständen an Ihren Mentor, um Ihre Implementierung zu validieren, und stellen Sie sicher, dass Sie Tests schreiben und verwenden.

Wenn Sie alle oben genannten Aufgaben erfolgreich ausgeführt haben, haben Sie ein Projekt pünktlich und mit korrekten Ergebnissen geliefert. Wenn Sie einen Teil des Projekts überarbeiten möchten, verfügen Sie über alle von Ihnen erstellten Tests sowie über eine Arbeitskopie des Programms, aus dem Sie das Projekt erstellen möchten.

Es klingt für mich, als ob du ein bisschen zu verstreut und unkonzentriert bist. Wenn Sie diese Probleme beheben und mit jemandem zusammenarbeiten können, den Sie respektieren, sind Sie vielleicht schon bald auf dem richtigen Weg.

Viel Glück für Sie.

unpythonisch
quelle
6

Ich glaube, ich bin genau in der gleichen Position wie Sie und es ist nicht schön, dort zu sein. Es kann demorilisierend und ehrlich gesagt manchmal ziemlich deprimierend sein. Wie bei allem, von dem ich glaube, dass es bestimmte Dinge gibt, die Sie tun können, um dies zu lindern und so zu einer gesünderen und glücklicheren Arbeitskarriere zu gelangen.

  1. Man muss sich ändern und besser werden wollen. Wenn Sie sich so fühlen, aber nicht bereit sind, in die harten Höfe zu gehen, um Ihre Fähigkeiten zu verbessern, gibt es nicht viel, was irgendjemand für Sie tun kann.

  2. Manche Leute sind von Natur aus brillant. Einige Leute arbeiten hart, um brillant zu sein. Die meisten Menschen arbeiten nur hart, um brillant zu sein. Wenn Sie nicht von Natur aus talentiert sind (Programmieren oder auf andere Weise), können Sie durch harte Arbeit dorthin gelangen. Nur das Niveau der harten Arbeit wird variieren. Nichts ist unmöglich.

  3. Akzeptiere deine Defizite und versuche dich zu verbessern. Eine der größten Hürden, die ich sehe, sind Menschen, die Angst haben, zu akzeptieren, dass ihr Weg kein guter Weg ist, und deshalb niemals Rat suchen oder andere Wege besprechen, Dinge zu tun. Daher lernen sie nie bessere Praktiken und machen immer wieder die gleichen Fehler.

  4. Bitten Sie diejenigen um Rat, die Sie für gute Programmierer halten. Haben Sie keine Angst, mit Kollegen zu sprechen und sie um Rat zu bitten. Nehmen Sie ihren Rat jedoch immer zum Nennwert und entscheiden Sie selbst, ob Sie damit einverstanden sind oder nicht. Egal wie brillant jemand ist, es gibt immer viele Möglichkeiten, eine Schleife zu programmieren.

  5. Lesen Las gelesen. Lesen Sie Newsgroups. Posten Sie Fragen auf solchen Websites (gut gemacht). Kaufen Sie Bücher, von denen Sie gehört haben, dass sie gut sind, oder fragen Sie auf andere Weise nach Empfehlungen.

  6. Explicity wendet Designprinzipien in kleinen Schritten an und ist dann stolz auf das, was Sie getan haben. Wenn Sie stolz auf das sind, was Sie codieren, ist die Wahrscheinlichkeit geringer, dass Fehler und Bugs auftreten.

  7. Offen für Vorschläge und Hilfe. An eindimensionales Denken gebunden. Seien Sie offen für viele Möglichkeiten und Methoden. Achten Sie auf diejenigen, die glauben, dass es für alles einen Weg gibt. Ein bisschen wie 4.

  8. Ein brillanter Programmierer zu sein ist nicht dasselbe wie ein brillanter Angestellter zu sein. Wenn Sie nur ein brillanter Programmierer sein möchten, werden Sie ehrlich gesagt vielleicht nie dorthin gelangen. Ich glaube jedoch, dass jeder die Fähigkeit hat, ein brillanter Mitarbeiter und eine brillante Person zu sein. Arbeiten Sie an Dingen, die Ihnen dabei helfen können, dorthin zu gelangen.

dreza
quelle
Gute Antwort. Klingt so, als ob diese Punkte von einem großartigen Mentor stammen. Bemerke mich, Senpai!! _ / _
Pramesh Bajracharya
4

Wenn Sie nach 3 Jahren täglicher Programmierung Probleme mit den Grundlagen haben, müssen Sie ernsthaft überlegen, ob dies nicht der richtige Beruf für Sie ist.

Das ist keine schlechte Sache. Programmieren ist nicht jedermanns Sache, finden Sie heraus, wozu Sie gut sind, und tun Sie das, anstatt sich etwas aufzudrängen, das einfach nicht selbstverständlich ist.

Wenn das, was Sie sagen, wahr ist, werden Sie niemals ein "außergewöhnlicher Programmierer" sein. Das ist in Ordnung, akzeptiere es einfach.

Idioten
quelle
Kommentatoren : Kommentare dienen der Klarstellung und nicht der ausführlichen Diskussion. Wenn Sie eine eigene Lösung haben, hinterlassen Sie eine Antwort. Wenn Sie der Meinung sind, dass diese Antwort gut ist, stimmen Sie ab. Wenn Sie es nicht gut finden, stimmen Sie ab. Wenn Sie diese Frage mit anderen diskutieren möchten, verwenden Sie bitte den Chat . Weitere Informationen finden Sie in den FAQ .
Komm schon, niemand wird in drei Jahren "außergewöhnlich".
JacquesB
3

Versuchen Sie, sich in einen Flow- Zustand zu versetzen. Das ist der wichtigste Faktor, den ich als guter Entwickler gesehen habe. Dazu müssen Sie sich Herausforderungen stellen, von denen Sie wissen, dass sie schwer zu bewältigen sind. Sie müssen die richtige Herausforderung finden, um sich darauf einzulassen. dann kannst du es allmählich erhöhen, wenn es dir besser geht. Aufgaben, die entweder zu einfach oder zu schwer sind, sind nachteilig.

Konfigurator
quelle
3

Brechen Sie es in kleine Stücke.
Lassen Sie mich demonstrieren, wie man ein PB & J-Sandwich macht.

Stellen Sie den grundlegenden Gesamtprozess fest.

1 - Get Ingredients
2 - Combine Ingredients
3 - Cut Sandwich
4 - Serve Sandwich

Dann brechen Sie jede dieser nach unten

**Get Ingredients**
1 - Validate/Create PB
1.1 - Validate/Create Jelly
1.2 - Validate/Create Bread
2 - Move PB To assembly area
...

Wiederholen Sie den Unterbrechungsprozess, bis Sie die Logik vollständig verstanden haben.

Dies erleichtert das Verständnis. Und einfacher, gängige Prozesse zu identifizieren. Bevor Sie mit dem Codieren beginnen, stellen Sie sicher, dass Sie die Logik bereits herausgefunden haben. Fehler zu machen ist nicht nur in Ordnung, es wird erwartet. Es ist viel einfacher, sie zu finden, bevor Sie sie implementieren.

Oft ist die Logik der schwierigste Teil der Programmierung. Es ist, warum nicht jeder es tun will. Wenn Ihnen die Logik nicht gefällt, Sie aber das UI-Design lieben, gibt es Rollen, die sich darauf spezialisiert haben und in denen Sie möglicherweise mehr Spaß haben. Daran ist nichts auszusetzen. Ich persönlich bevorzuge die Logik gegenüber der Benutzeroberfläche. Es gibt auch andere Rollen, wenn die Logik nicht der Ort ist, an dem Sie sein möchten, um herauszufinden, wo Sie sein möchten.

SoylentGray
quelle
2

Ich hatte schon einmal ein solches Problem. Es passierte kurz vor dem Ausbrennen und konnte danach fast ein Jahr lang nicht mehr produktiv programmieren (und ich war damals erst 19 Jahre alt).

Im Nachhinein war das Problem, das ich hatte, ein Mangel an Führung und Management. Ich würde ein oder zwei Monate daran arbeiten, etwas zu implementieren, und dann, wenn es fast fertig ist, muss es plötzlich auf eine ganz andere Art und Weise gemacht werden. Dies war ein schwerer Schlag für mein Selbstwertgefühl, da ich ziemlich stolz auf jede Codezeile bin, die ich schreibe. Das Management bestand meist aus ein paar Stunden Diskussion, wie etwas funktionieren sollte, und ein paar Tagen, in denen nichts besprochen wurde. Einiges davon war natürlich auch meine Schuld. Hinzu kam, dass die Arbeit irgendwann sehr langwierig wurde und ich das Gefühl hatte, nur Code zu tippen und überhaupt nicht kreativ zu sein.

Generelle Richtlinien:

  1. Wenn Sie das Gefühl haben, dass es an Anweisungen mangelt, sprechen Sie sie an. Fragen Sie Ihren Vorgesetzten nach mehr Struktur
  2. Wenn Sie Code die ganze Zeit löschen müssen (und dies nicht in einer guten Weise wie beim Refactoring), fragen Sie sich ernsthaft, warum vor der Implementierung kein vollständigerer Plan erstellt wird
  3. Wenn Sie in einem superkleinen Start-up sind und als "leitender" Entwickler fungieren, sollten Sie Ihren Stolz aufgeben und Ihrem Manager mitteilen, dass Sie eher ein Junior-Entwickler sind.
  4. Tedium entsteht normalerweise dadurch, dass keine Arbeit erledigt wird. Nehmen Sie Ihre Aufgaben in kleinen Bissen und verfolgen Sie Ihren Fortschritt. Dies wird dazu beitragen, das Gefühl zu haben, dass Sie etwas erledigen
  5. Wenn alles andere fehlschlägt, möchten Sie sich möglicherweise an einer anderen Stelle bewerben, insbesondere dann, wenn es Ihrem Manager nicht wichtig zu sein scheint, dass Sie möglicherweise auf einen Burnout zusteuern
Earlz
quelle
-1

Finde ein induktives Logikspiel wie Zendo und spiele es in deiner Freizeit. Ernst. Induktive Logik ist das Herzstück des Debuggens.

Malachi
quelle