Meistens bin ich Künstler, obwohl ich mich selbst als Künstler / Physiker bezeichne. Während ich rechnen kann, mit Wörtern umgehen kann und das "logische" Zeug, das als linke Gehirnhälfte betrachtet wird, ist es eine Anstrengung und ich mache Fehler, während ich gut mit den Dingen umgehen kann und die meiste Zeit in Bezug auf die Dinge denke, die mit der rechten Gehirnhälfte verbunden sind Denken - räumliche Beziehungen, ganzheitlicher Gesamtkontext usw. Natürlich ist alles verschwommen, da die Theorie der rechten und linken Gehirnhälfte zu stark vereinfacht ist und keine mentale Aktivität so einfach ist. Ich spüre jedoch, dass ich gut zu Künstlern, Videoregisseuren, Köchen und anderen nonverbalen Denk- und Kreativtypen passe, während die meisten Leute in "IT" - oder Hardcore-Software-Ingenieuren Köpfe haben, die anders arbeiten, mit Liebe zum Detail, halten viele Details gleichzeitig im Auge und starke rationale und verbale Fähigkeiten.
Hier bin ich also in einem Job, der dafür bezahlt wird, pingelige und obskure Fehler in einem riesigen Schwarm von C ++ - Software zu beheben, der sehr schwer mit OO zu tun hat, und jede einzelne Codezeile macht keinen Sinn, es sei denn, ich denke an ungefähr zwanzig andere Klassen- und Methodennamen. Beziehungen zwischen ihnen, der Fluss der Ausführung (sehr spaghettiartig) und andere Details.
Abgesehen davon bin ich auch ziemlich stark gegen viele zeitgenössische C ++ - und OO-Stile. Diejenigen, die diesen Code geschrieben haben, haben wirklich die tiefe OO und Modern C ++ Kool-Ade getrunken. Ich finde, es macht es tatsächlich viel schwieriger, Code zu befolgen, und es ist viel schwieriger zu entscheiden, wo etwas repariert oder geändert werden soll. Ich weiß nicht, ob dies Teil des Unterschieds zwischen links und rechts ist (oder wie auch immer Sie es nennen möchten) oder nicht.
Aber ich muss an C ++ arbeiten - die Leute sind für mein Einkommen auf mich angewiesen. Was sind Tipps und Techniken, um mit dieser Situation umzugehen und für meinen Arbeitgeber so effektiv wie möglich zu sein?
Antworten:
Versuchen Sie, mehr in die Design-Seite von Dingen einzusteigen, bei denen es eine Stärke ist, sich mit der Unschärfe vertraut zu machen, was mein Vorschlag in Bezug auf den beruflichen Aufstieg wäre. Als jemand, der gerne kreativ ist, passt die Arbeit an der Wartung möglicherweise nicht besonders gut, während die Arbeit an neuen Dingen möglicherweise besser ist, wenn dies möglich ist.
Es ist zwar nichts Falsches daran, stolz auf seine Arbeit zu sein, aber wenn Sie nicht in den Details stecken bleiben möchten, müssen Sie möglicherweise einen neuen Ansatz finden, um sich zu verbessern. Anstatt es als schmutzig anzusehen, könnte es eine andere Perspektive geben, die es irgendwie lustig machen könnte.
Support und Wartung haben wahrscheinlich ihre Fans, da einige Leute es vorziehen würden, vorhandene Systeme zu optimieren, als ein neues System einzubauen. Ich weiß, dass ich eher mit einem vorhandenen System arbeite, das ich ändere, als zu versuchen, etwas aus dem Äther herauszuholen.
Was Sie versuchen können, ist zu notieren, wenn Leute Ideen für den Umgang mit verschiedenen Krisenherden und Brainstorming-Lösungen suchen, da dies Teil Ihrer Vorlieben ist. Es geht nicht darum zu wissen, welche Codezeilen geändert werden müssen, sondern darum, ob Sie jemandem sagen können: "Haben Sie in dieses Objekt geschaut und festgestellt, ob es mehr tut, als es behauptet?" Art der Sache.
Ein weiterer Punkt ist zu wissen, was Sie erstellen möchten: Grafiken, Anwendungen, Websites, Prozesse oder Systeme? Dies sind alles etwas andere Dinge, bei denen Sie beim Erstellen gefragt werden könnten, ob Sie was erstellen möchten.
quelle
Es klingt (zumindest für mich) nicht so, als ob Ihr Code besonders objektorientiert oder "Modern C ++" besonders ähnlich ist. Im Gegenteil, eines der Schlüsselelemente einer guten Objektorientierung ist die Kapselung, deren Hauptabsicht darin besteht, die Anzahl der Dinge zu reduzieren, die Sie zu einem bestimmten Zeitpunkt verfolgen müssen. Ebenso klingt "sehr spaghettiartiger ... Ausführungsfluss" weder objektorientiert noch modern (irgendetwas).
Wenn ich mir den Code anschaue, den Sie pflegen, sehe ich ihn möglicherweise anders und / oder Sie sehen meinen Code ähnlich wie den, den Sie gerade pflegen - das ist ein bisschen schwer zu erraten. Es ist wahr, wenn Sie versuchen würden, jedes Detail der Funktionsweise meines Codes nachzuvollziehen, könnten Sie es als einen eher spaghettiartigen Kontrollfluss ansehen.
Zum Beispiel mag ich einige implizite Konvertierungen viel mehr (oder zumindest toleranter) als viele Programmierer - ich verwende Dinge wie Proxy-Klassen ziemlich oft. Dies bedeutet, dass beim Aufrufen einer einzelnen Funktion leicht drei oder vier temporäre Objekte unterschiedlichen Typs erstellt werden können (und beachten Sie, dass ich nicht davon spreche , die Funktion tatsächlich auszuführen , sondern nur aufzurufen ). Natürlich werden alle diese temporären Objekte am Ende des Ausdrucks, der den Funktionsaufruf enthält, wieder zerstört. Wenn Sie es hochzählen, können Sie leicht ein halbes Dutzend oder mehr separate Funktionen aufrufen, die beim Aufrufen / Zurückkehren von einer Funktion aufgerufen werden, die im Code "sichtbar" aufgerufen wird.
Der Punkt , Dinge zu tun auf diese Weise jedoch zu machen , ist es einfach zu ignorieren die meisten der Haupt in (zum Beispiel) beteiligt sich mit Details wie , wie ein bestimmtes Objekt dargestellt wird, und konzentrieren sich ausschließlich auf das, was es wirklich ist , statt. Sie müssten sich immer nur mit dem größten Teil dieses Codes befassen, wenn Sie einen Fehler in diesem bestimmten Teil gesehen hätten. Ich versuche jedoch, viel davon zu vermeiden, indem ich Klassen erstelle, die so klein und einfach sind, dass sie kaum mehr als einen Blick benötigen, um zu erkennen, dass sie offensichtlich korrekt sind, und von da an leicht zu ignorieren sind.
quelle
Warnung : Diese Antwort ist sehr lang und hat viel Psychobabble (was ich zu erklären versuche, aber immer noch). Was kann ich sagen? Psychologie ist eines meiner Lieblingsfächer außerhalb der Programmierung.
Dies basiert tatsächlich auf einer etwas veralteten Sicht der Neurowissenschaften. Zu einem bestimmten Zeitpunkt glaubten Wissenschaftler, dass die linke Gehirnhälfte nur für Logik und sensorische Rohdaten verantwortlich war, während die rechte Gehirnhälfte allein für Intuition und Gefühl verantwortlich war. Wie sich herausstellt, ist die linke Gehirnhälfte wirklich zu allem fähig, was die rechte Gehirnhälfte ist, und umgekehrt. Als jemand, der extrem rechtshirnig und doch logisch ist, schrecklich in Bezug auf Richtungen und räumliche Ausrichtung und völlig frei von jeglicher künstlerischen Kreativität, die traditionell mit der rechten Gehirnhälfte verbunden ist, kann ich dies bestätigen.
Der beste Weg, sich den Unterschied zwischen der linken und der rechten Gehirnhälfte vorzustellen, besteht darin, sie als Spiegelbilder voneinander zu betrachten. Um dies zu verstehen, benötigen Sie einige Hintergrunddaten. Ein Psychologe namens Carl Jung entwickelte in den 20er Jahren eine Persönlichkeitstheorie, die die Persönlichkeit in mehrere Dimensionen aufteilte. Sie haben wahrscheinlich von einem davon gehört: Introversion gegen Extraversion. Ich habe ein paar Blogposts zu diesem Thema geschrieben, aber es läuft im Grunde darauf hinaus: Introversion unterscheidet sich von anderen, während Extraversion sich darauf konzentriert, wie sie sich mit anderen verbinden kann. Dies wird als "Haltung" bezeichnet.
Dann haben Sie vier verschiedene kognitive Funktionen: Denken, Fühlen, Empfinden und Intuition. Nehmen wir der Einfachheit halber einfach an, dass zwei dieser Funktionen als "Beurteilungsfunktionen" (Denken und Fühlen) betrachtet werden, während die anderen beiden Funktionen "Wahrnehmen". Die Bewertungsfunktionen treffen Entscheidungen. Wenn Sie urteilen, versuchen Sie, Überraschungen zu vermeiden. Sie möchten im Voraus alle richtigen Entscheidungen getroffen haben, damit Sie sich nicht anpassen müssen, wenn Überraschungen auftreten. Weil Sie so viel im Voraus geplant haben, neigen Sie möglicherweise dazu, starr und unflexibel zu werden, sobald eine Entscheidung getroffen wurde. Andererseits neigt eine wahrnehmende Denkweise dazu, lieber am Sitz ihrer Hose vorbei zu fliegen und mit den Schlägen zu rollen.
Im Allgemeinen kombinieren Sie die Funktion und eine Haltung, um eine (kreativ benannte) Funktionshaltung zu erzeugen (introvertiertes Denken, extravertiertes Gefühl usw.). Die bewussten Persönlichkeiten der Menschen werden hauptsächlich durch eine dominante Funktionshaltung und eine Hilfsfunktionshaltung definiert. Schließlich waren sich die Psychologen einig, dass es im Großen und Ganzen zwei Arten von Menschen gibt: Menschen, deren primäre zwei Funktionen aus einer introvertierten Beurteilungsfunktion und einer extravertierten Wahrnehmungsfunktion bestehen, oder Menschen, deren primäre zwei Funktionen aus einer extravertierten Beurteilungsfunktion und einer introvertierten Wahrnehmungsfunktion bestehen . Wenn Sie jemals den MBTI oder einen ähnlichen Persönlichkeitstest absolviert haben, erfahren Sie im letzten Buchstaben, in welche Kategorie Sie fallen. Wenn Sie ein P sind, bedeutet dies, dass Sie ein introvertierter Richter / extravertierter Wahrnehmender sind und J umgekehrt ist.
Bis jetzt noch bei mir? Hier komme ich zu dem, was ich damit gemeint habe, dass die beiden Seiten Spiegelbilder voneinander sind. Niemand hat es damals bemerkt, aber sie haben im Wesentlichen eine Skizze erstellt, wo Funktionalität im Gehirn liegt. In der Tat wurde jede von Jungs Funktionseinstellungen auf eine raue Stelle im Gehirn abgebildet. Wie sich herausstellt, befinden sich alle P-Funktionen (introvertiertes Beurteilen und extravertiertes Wahrnehmen) auf der rechten Seite des Gehirns und die J-Funktionen auf der linken Seite des Gehirns.
Immer wenn Sie sagen, dass Menschen mit dem linken Gehirn gut in Details sind und Menschen mit dem rechten Gehirn gut im "großen Bild" (obwohl ich sagen würde, dass "ganzes Bild" genauer wäre), konzentrieren Sie sich auf die extravertierte Seite der Dinge . Wenn eine Person mit dem linken Gehirn eine Person mit dem rechten Gehirn verwaltet, möchte der Linke alle Details darüber wissen, wie der Rechte seine Arbeit im Voraus und im Voraus erledigen wird. Sie wollen die in Stein gemeißelten Anforderungen und die im Voraus festgelegten harten Fristen. Der Righty möchte nur eine sehr umfassende Vorstellung davon, was er tun muss, damit er die Details später ausfüllen kann.
Beachten Sie jedoch, dass dies nicht das zu sein scheint, was Sie gerade erleben. Es scheint, als ob der Code der Linken im Voraus wahrscheinlich nicht besonders gut durchdacht war und einige Probleme aufweist, die durch Voraussicht hätten verhindert werden können. Dies liegt daran, dass Sie beim Erstellen abstrakter Modelle von Dingen wie Code in Ihrem Kopf Ihre introvertierte Funktion verwenden, die umgekehrt funktioniert. Der Righty möchte dieses Modell im Voraus erstellen und dies so, dass es alle erforderlichen Details ausfüllt oder problemlos alle Details ausfüllen kann . Außerdem können sie in Bezug auf den besten Ansatz starr werden (beachten Sie, dass Sie eine harte Linie in Bezug auf Ihre Meinung zu den fortschrittlicheren Funktionen von C ++ haben). Das Modell der Linken wird ad hoc sein und im Laufe der Zeit ausgefüllt werden.
Ich habe die Erfahrung gemacht, dass die Linken aus diesem Grund die Rechten beschuldigen, alles überarbeitet zu haben, während die Rechten die Linken beschuldigen, zu schnell und schmutzig zu sein. Beide Seiten haben ein Körnchen Wahrheit, aber nur, wenn dieser Ansatz bis zum Äußersten geht. Das ist jedoch lustig: Sie verfolgen entgegengesetzte Ansätze, um dasselbe Ziel zu erreichen (dh Dinge zu erledigen). Die Rechten möchten, dass ihr Modell im Voraus festgelegt wird, damit sie weniger Zeit für die Implementierung der Sache aufwenden und somit das gesamte Projekt schneller erledigen können. Die Linken wollen weniger Zeit mit Architektur verbringen, damit sie die Dinge früher erledigen können.
Im Übrigen sind diese beiden Einstellungen umgekehrt, wenn es um Dinge vom Typ Projektmanagement geht (Festlegen von Zeitplänen, Festlegen von Anforderungen usw.). Dies kann zu einer wirklich verwirrenden Situation führen, in der eine Seite die andere beschuldigt, zu starr zu sein, während die andere behauptet, dass die andere Seite nicht vorausschauend genug plant, und dann beim nächsten Argument beide Seiten genau die entgegengesetzte Haltung einnehmen.
Was können Sie dagegen tun? Nichts anderes, als sich dieser Unterschiede bewusst zu sein und zu versuchen, der Sichtweise der anderen Seite so weit wie möglich Rechnung zu tragen. Das Problem ist jedoch, dass dies in beide Richtungen geht. Sie können die Linken so gut wie möglich verstehen und aufnehmen, aber das wird keinen großen Unterschied machen, wenn sie nicht versuchen, den Gefallen zu erwidern. Das ist immer die Herausforderung. Nicht weil die Linken Arschlöcher sind und das Leben der Rechten unglücklich machen wollen, sondern weil die Linken es gewohnt sind, auf dem Gebiet der Programmierung dominant zu sein. Wenn Ihre Denkweise von so ziemlich allen anderen bestätigt würde, wären Sie ziemlich überzeugt, dass Sie auch Recht haben.
quelle
Vertraue deiner Intuition. Wenn Sie ein guter Profi sind, bedeutet dies, dass Sie unabhängig von Ihrem "Verstand" - links oder rechts - Dinge, die Linkshirnler bewusst tun, intuitiv tun können. Am Ende ist es dasselbe. Leider kontrollieren wir unser Unterbewusstsein nicht, aber es erledigt die Arbeit schneller als unser Bewusstsein, wenn es es überhaupt tut. Diese intuitiven Erkenntnisse aus dem Nichts sind genau das Ergebnis unbewusster Berechnungen.
Oh, und Sie können scheitern, es ist zu unzuverlässig. Aber da hast du gefragt ...;)
quelle
Ich denke auch visuell und die Details der Typografie stören mich.
Google-Begriffe: Britische Legasthenie-Website auch Lernstile: visuelles räumliches Denken, ganzes bis teilweises Lernen.
Konzepte zuerst, Tipps danach
TIPPS, die mir geholfen haben:
Welcher Abschnitt muss als nächstes behoben werden?
Mein Workflow
Wer lebt dort? (Prozess, Verbindungen, Daten usw.)
Was müssen sie tun? (Funktion) OK
in Ordnung
Code es irgendwo kann es Syntax / Rechtschreibprüfung OK OK Kopieren und Einfügen
Prüfung
Ergebnis -> es funktioniert? Ja, mach weiter
Nein? Die Charaktere müssen Hamlet spielen, wo jeder stirbt.
Zurück zur Umwelt-
quelle