Frage:
Ich habe einen Job zugewiesen, den ich nicht machen kann
marsh
2015-07-29 05:31:32 UTC
view on stackexchange narkive permalink

Ich bin ein Absolvent, der kürzlich durch das Land gezogen ist, um seinen Traumjob in der Spielprogrammierung zu bekommen. Ich habe ein Jahr bei einer Indie-Firma gearbeitet und wurde dann von einer der größten Firmen eingestellt. Dies ist ein wahr gewordener Traum für mich, denn es war der ganze Grund, warum ich zur Schule gegangen bin. Ich bin ziemlich neu in der Branche und habe Probleme, mich kompetent zu fühlen.

Wie auch immer, ich arbeite seit fast einem Jahr als Generalist-Programmierer in diesem Job. Wir sind ein ziemlich kleines Team im Unternehmen. Meine Aufgabe bestand hauptsächlich darin, Code, Funktionen und Fehlerbehebungen zu überarbeiten. Ich habe mit einer anderen Person gearbeitet, die viel erfahrener ist. Sie wurden befördert und nicht mehr programmiert. Ich habe ihre Arbeit erhalten.

Das Problem ist, dass sie ein Grafikprogrammierer sind. Ein Großteil meiner Arbeit ist jetzt 3D-Mathematik. Ich habe die Mathematik in der 10. Klasse abgebrochen, habe sie im College noch einmal gemacht und kaum bestanden. Ich bin schrecklich in Mathe und genieße es nicht. Mein neuer Job ist in einem Fach, von dem ich absolut nichts weiß. Während dies keine schlechte Sache ist, da ich zu Beginn dieses Jobs viele Dinge und Sprachen gelernt habe, bin ich jetzt die Hauptunterstützungslinie für viele große Teams. Ich habe die Aufgabe, Fehler in einer Grafik-Pipeline zu beheben, während ich kaum eine Matrixmultiplikation durchführen kann. Ich kenne keine Terminologie und keine Mathematik.

Wie kann ich meinem Chef sagen, dass ich für diesen Job nicht geeignet bin? Ich wurde im Interview nach meinen mathematischen Fähigkeiten gefragt und sagte ihnen, dass sie nicht gut seien. Zu der Zeit sagten sie, es sei egal.

Ein Teil des Problems besteht auch darin, dass niemand mehr für diese Aufgaben zuständig ist. Mir ist klar, dass die Antwort auf das Problem möglicherweise darin besteht, es aufzusaugen und damit umzugehen.

Wenn es darauf ankommt, handelt es sich um ein sehr großes Unternehmen, und ein Wechsel in ein neues Team ist möglicherweise möglich. Aber ich möchte es um jeden Preis vermeiden, da mir das Team und die Arbeit gefallen haben.

Haben Sie jemanden, der als Mentor für die mathematischen 3D-Themen dienen kann?
Offensichtlich haben Sie wichtige und schwierige Themen gemeistert. Sie können das gleiche mit mathematischen Fähigkeiten tun. Das Problem ist, dass es viel Zeit und Aufmerksamkeit kostet und es viel schwieriger ist, wenn Sie es selbst (oder sogar mit einem informellen Mentor) außerhalb der Struktur eines Kurses mit ernsthaften Hausaufgaben und Prüfungen tun. Es gibt keine Abkürzungen mit diesem Zeug.
Könnten Sie hinzufügen, ob Sie versuchen möchten, den 3D-Pfad zu lernen, oder ob Sie dies lieber nicht möchten? Die beste Antwort, wenn Sie mit dem Wort "Ich weiß nicht, was ich tue, aber ich werde es gut versuchen!" ist ganz anders als die beste Antwort, wenn Sie sagen wollen: "Ich habe eigentlich keine Freude an dieser Art von Arbeit."
Ich mag es nicht, aber ich fühle es, weil ich Dinge nicht mag, in denen ich schlecht bin. Ich möchte nicht, dass dies meine Berufswahl ist. Aber ich hasse es nicht.
Kommentare sind nicht für eine ausführliche Diskussion gedacht. Diese Konversation wurde [in den Chat verschoben] (http://chat.stackexchange.com/rooms/26444/discussion-on-question-by-marsh-assigned-job-i-cannot-do).
Ich denke, die Leute haben großartige Möglichkeiten aufgezeigt, um damit umzugehen. Aber um ehrlich zu sein, wenn Sie Mathe nicht mögen, sind Sie im falschen Feld, Kumpel, die Spieleentwicklung ist schwer mit trig, linearer Algebra. Auf der anderen Seite können Sie anfangen, Mathematik zu lernen und es direkt auf Spiele anzuwenden, wobei Sie einen praktischen Ansatz wählen. Das könnte Ihr Interesse an Mathematik wieder wecken und Ihnen das Leben erleichtern.
Für die Gesundheit der beteiligten Software ist es wichtig, dass jemand, der sich mit fortgeschrittener Mathematik so unwohl fühlt, nicht dazu gebracht wird, sie so zu unterstützen. Wer den anderen Programmierer befördert hat, sollte wissen, dass er durch einen anderen 3D-Grafikexperten ersetzt werden muss.
Fünf antworten:
Jane S
2015-07-29 05:41:26 UTC
view on stackexchange narkive permalink

Ich habe sowohl aus persönlicher Erfahrung als auch aus Beobachtung (hauptsächlich Beobachtung meiner Kinder) gelernt, dass Sie damit zu kämpfen haben, wenn Sie überzeugt sind, dass Sie etwas nicht tun können. Sie scheinen die Gehirnleistung einfach nicht darauf anzuwenden, weil Sie nur wissen , dass Sie scheitern werden.

Also werde ich Ihnen den gleichen Rat geben, den ich meinen Kindern gebe :) Eher als das ganze Problem von "Ich kann nicht rechnen" betrachten, zerlegen Sie es in kleinere Stücke. Wählen Sie etwas, das Sie fast verstehen, und versuchen Sie dann, es auf die praktischen Probleme anzuwenden, für die Sie es verwenden. Denken Sie daran, Mathematik ist ein Prozess, ein Algorithmus, genau wie Programmieren. Machen Sie einen Schritt, dann den nächsten, wenden Sie die Regeln an und Sie erhalten die Antwort :)

Wie können Sie dies nun mit Ihrem Chef verwalten? Haben Sie mit Ihrem Manager darüber gesprochen, dass Sie Probleme haben? Wenn er oder sie es nicht weiß, können sie Ihnen nicht helfen. Sie könnten sagen, dass Sie versuchen werden zu lernen, aber es wird einige Zeit dauern und vielleicht etwas Training, das helfen könnte. Dann kann der Manager das Risiko bewältigen, Sie dort zu halten oder jemanden zu finden, der diese Rolle übernimmt.

Ich würde mit Ihrem Chef sprechen und ihm sagen, wo Sie Schwierigkeiten haben und dass Sie bei diesen Aufgaben möglicherweise länger brauchen, während Sie versuchen, die Komplexität der dahinter stehenden Mathematik zu verstehen. Wenn Sie es dann wirklich, wirklich nicht können, haben Sie alles getan, was Sie können, und dafür gesorgt, dass die Leute, die es wissen müssen, es tun :)

Sie sind bereit, mich zu unterrichten, da ich es für eine Weile langsam gelernt habe. Sie würden die schwierigeren Probleme übernehmen. Das passiert nicht mehr. Dies sind meistens Fehlerberichte. Sie müssen also so schnell wie möglich behoben werden, da möglicherweise ein ganzes Team wartet. Ich habe das Gefühl, dass ich nicht genug Zeit zum Lernen habe. Ich habe das Gefühl, dass mein Chef ungeduldig wird, obwohl ich gerade in meinem Kopf bin.
Wenn Sie sie über Ihre Bedenken informiert haben und sie bereit sind, Ihnen etwas Zeit zu geben, besteht für sie das Risiko von Verzögerungen, während Sie lernen, nicht für Sie. Halten Sie Ihren Manager über Ihre Fortschritte auf dem Laufenden, konzentrieren Sie sich auf das Lernen und die Geschwindigkeit, mit der Sie sich mit allem vertraut machen.
Wenn der Chef Sie damit beauftragt hat und weiß, dass Sie diesen Code und die dahinter stehenden Annahmen noch lernen, kann der Chef nicht erwarten, dass Sie die Fehlerberichte so effizient behandeln wie diejenigen, die diesen Code seit Jahren anstarren. Und der Chef, wenn überhaupt kompetent, weiß das und weiß, dass eine bewusste Entscheidung getroffen wurde, die anderen Leute neu zuzuweisen und nicht das Geld auszugeben, um jemanden neu einzustellen. Ein Großteil des Drucks, den Sie spüren, ist - zumindest im guten Fall - selbst erzeugt. Setzen Sie sich realistische Ziele, gehen Sie Schritt für Schritt vor und akzeptieren Sie, dass langsamere Korrekturen immer noch Korrekturen sind.
@keshlam Genau :)
Der zweite Absatz ist entscheidend. Es ist wahrscheinlich, dass jeder in seiner Karriere auf einige Probleme stoßen wird, die zunächst wie unüberwindbare Berge aussehen. Mein Ansatz in diesen Fällen war genau das, was hier befürwortet wird: Finden Sie eine Schwachstelle (eine Unteraufgabe, die machbar aussieht) und fangen Sie an zu knabbern. Die Lehren aus den ersten Knabbereien werden auf die folgenden Stufen angewendet, bis man durch diesen Berg getunnelt ist. Das Beste daran: Wenn Sie den Prozess einmal durchlaufen haben und gesehen haben, dass Sie trotz widriger Umstände erfolgreich sein können, haben Sie mehr Vertrauen, wenn das nächste derartige Problem auftritt.
+1: "Ob du denkst, dass du kannst oder nicht, du hast Recht - Henry Ford".
Eine Sache, die insbesondere bei 3D-Grafiken sehr hilfreich ist, ist die Erstellung wirklich einfacher Spielzeuganwendungen, mit denen Sie spielen können, um die Transformationen zu verstehen. Dies ist eine sehr praktische Möglichkeit, die gesamte "3D-Mathematik" in zugänglichere Aufgaben zu unterteilen, mit denen Sie experimentieren und ein Gefühl dafür bekommen können. Und hier ist ein kleines Geheimnis: Eine große Anzahl von Programmierern in Spielen versteht tatsächlich nicht alle Mathematik, die sie verwenden. Sie haben wahrscheinlich einige Grundlagen in der Mathematik, aber meistens kennen sie die Techniken und wie man sie anwendet.
Hier ist eine sehr nützliche Ressource zum Erlernen der Art von Mathematik, die Sie benötigen: http://www.euclideanspace.com/. Deckt eine Reihe von Themen ab, von einfachen Vektoren bis hin zu doppelten Quaternionen. Haftungsausschluss: Ich habe eine kleine Menge Material zu Doppelquaternionen zu dieser Site beigetragen.
@marsh: Hallo, ich hatte etwas, ich würde einen sehr erfolgreichen Lernansatz nennen, wenn es um die Programmierung von Spielen geht. Als Kind haben wir 3D-Spiele gespielt. Ein Freund fand heraus, dass Sie im 3d Studio MAX modellieren können. Ich habe versucht, damit zu spielen und war so interessiert, dass ich buchstäblich Nächte damit verbringen konnte, etwas Cooles zu tun (einen Vogel, Kakteen, eine Hand usw.). Dabei habe ich eine Menge Einschränkungen gelernt, indem ich sie nur getroffen habe: Objekte sind nur einseitig (normales Konzept), menschliche Modelle haben Nähte (UV-Texturen sind flach), die n-Gons mit mehr als 4 Seiten sind Müll, wenn nicht planar etc.
@marsh: ctd.: Es gibt mehr falsche als gute Möglichkeiten, ein fliegendes Flugzeug zu modellieren (Gimbal Lock). Alle organischen Formen werden angenähert (Tesselation). Mit einem Bezier-Werkzeug kann man nicht einmal einen perfekten Kreis bilden (zumindest das am häufigsten verwendete Rational mit 4) Steuergriffe). Später im Leben hatte ich kaum Probleme, die meisten dahinter stehenden mathematischen Konzepte zu verstehen (Projektionen, Kreuzvektoroperation, Rotationen, Welt, Ansicht, Modellmatrizen usw.). Es ist extrem schwierig, dieses Zeug nur auf der "Gedankenebene" zu verstehen. Viele Stunden Spiel haben mir die Konzepte sehr gut beigebracht.
@marsh: Die Mathematik in der Spielprogrammierung wird also als Werkzeug verwendet, um ein bestimmtes Ziel zu erreichen. Wie der Matrixstapel, der sehr einschüchternd wirkt (was ist das zusätzliche Gewicht für? 4 Gleichungen anstelle von 3 für 3d? Warum diese bestimmte Multiplikationsreihenfolge?), Ist wirklich einfach, wenn man es in Bezug auf die Modellierung betrachtet: Oh, also habe ich gesagt Kamera dort drüben (Ansichtsmatrix), die relativ zur Mitte der Bühne ist (Weltmatrix), wo ein Mann steht (Modellmatrix) und Gelenke hat, von denen diejenige, die ich direkt kontrolliere, die Hüfte ist (Wurzel von IK- und FK-Ketten-Hierarchie) und Rest folgt (lokale Transformationsmatrix).
Ich denke, jeder hier vereinfacht extrem stark, wie komplex die Rendering-Pipeline eines AAA-Spielestudios ist. Beim Rendern werden nicht nur einige Matrizen multipliziert. Es ist wirklich nichts, was man an ein paar Wochenenden lernt. Wir sprechen hier davon, den Höhepunkt des 3D-Renderings in Echtzeit zu meistern. Marsh braucht eine Lösung für seine aktuelle Situation. In ein paar Jahren keine mehr. Beachten Sie, dass ich definitiv nicht sage, dass es keine lernbare Fähigkeit ist, aber wie bei allen komplexen Dingen wird es viel Zeit in Anspruch nehmen!
@RoyT.: Ich stimme zu. Ich machte meinen Kommentar mit etwas im Sinn, das ich vergessen hatte zu schreiben. Jeder ist zunächst überwältigt, wenn er mit einer neuen Domain konfrontiert wird. Am Ende muss man es lernen, es gibt keine Abkürzungen. Das heißt nicht, man muss alles auf einmal wissen. Es ist am besten, eine einführende Domain-Approximation zu erhalten und sich auf Bereiche zu spezialisieren, in denen die Änderungsanforderungen dominieren. Dies ist in einem Zeitraum von Wochen möglich. Das Wichtigste am Anfang ist zu wissen, welche Teile NICHT bekannt sein müssen.
@Rekin, Entschuldigung, ich weiß nicht, was "einführende Domain-Approximation" ist. Aber ich denke, es gibt nur sehr wenige Abkürzungen, wenn es um Mathematik und 3D-Rendering geht. Sie müssen eine solide Basis haben, bevor Sie Teile überspringen und sich auf einige Themen konzentrieren können. Aber es scheint, wir schweifen von der Frage ab. Lassen Sie uns nur zustimmen, dass es nicht trivial dauert, bis Sie über nutzbares Wissen verfügen, das Sie auf dem Arbeitsbereich verwenden können.
Roy T.
2015-07-29 12:32:19 UTC
view on stackexchange narkive permalink

Bei allen bisherigen Antworten wird davon ausgegangen, dass Sie alle 3D-Grafik-Mathematik lernen können (was Sie sicher können), dass Sie Spaß daran haben werden (was möglicherweise nicht der Fall ist) und dass Sie alles schnell lernen können genug, damit Sie diese Techniken HEUTE in einer Produktionsumgebung anwenden können (was wahrscheinlich nicht der Fall ist).

Ich denke, das Beste, was Sie tun können, ist, mit Ihrem direkten Vorgesetzten zu sprechen. Zu sagen, dass Sie einen Teil Ihrer Arbeit nicht zu Ihrer eigenen Zufriedenheit ausführen können, zeigt keine Schwäche, sondern zeigt, dass Sie Ihre eigene Arbeit und Ihre Fähigkeiten kritisch sehen und das Beste für das Unternehmen wollen. Stellen Sie sicher, dass Sie (wenn Sie möchten) hinzufügen, dass Sie bereit sind, diese Techniken zu erlernen, aber dass Sie nach Kursen oder einem Mentor suchen, der Ihnen dabei hilft. Dies ist eine großartige Gelegenheit, sich zu verbessern und sich für das Unternehmen wertvoller zu machen. (Dinge, die Manager gerne sehen).

Genau. "Learn it" ist leicht zu sagen, aber wenn die meisten Vollzeit-CS-Kurse für Studenten kaum die Oberfläche von Computergrafiken zerkratzen, ist dies kurzfristig keine vernünftige Antwort. Langfristig können Sie zwar kompetent werden, aber kurzfristig muss etwas getan werden, während Sie noch nachschlagen, was eines der Wörter bedeutet.
@DavidTheWin +1. An meiner Universität müssen wir lineare Algebra und bis zu Kalkül II lernen. Wir lernen jedoch nie etwas in Bezug auf Computergrafik, es sei denn, Sie belegen den * einmal alle 2 Jahre angebotenen Grafikkurs *, und selbst wenn Sie daran teilnehmen, kratzen Sie kaum an der Oberfläche der eigentlichen Grafikprogrammierung, und schon gar nicht für Videospiele (wir) Erstellen Sie einfach statische Modelle, die sich nicht bewegen. Und * sicherlich * nicht in einer Produktionsumgebung, in der Arbeiten auf C-Ebene in Ordnung sind. +1 auch für dich Roy, dein erster Absatz ist genau richtig.
jcpennypincher
2015-07-29 06:06:52 UTC
view on stackexchange narkive permalink

Kommunizieren Sie vorwärts und haben Sie keine Angst vor übermäßiger Kommunikation. Geben Sie Ihr Bestes, um genaue Schätzungen und Bewertungen der Komplexität für Aufgaben bereitzustellen. Wenn Sie Hilfe benötigen, wenn vor Ort keine Hilfe verfügbar ist, erhalten Sie häufig einen schnelleren Stapelüberlauf als die Personen, mit denen Sie arbeiten, wenn Sie Fragen klar stellen und die richtigen Details angeben. Lerne so viel du kannst so schnell du kannst. Sobald du dein Gehirn um Dinge gewickelt hast, wird es nicht mehr so ​​kompliziert erscheinen. Versuchen Sie, einige Workshops zu finden, um mehr Erfahrung zu sammeln, oder folgen Sie einigen Online-Tutorials. Wenn Sie sich anstrengen und Ihr Team dies sieht, ist dies oft zu Ihrem Vorteil. Die meisten Menschen arbeiten lieber mit jemandem zusammen, der leidenschaftlich und motiviert ist, als mit einem Besserwisser, der eine Insel ist.

Chan-Ho Suh
2015-07-29 06:05:55 UTC
view on stackexchange narkive permalink

Ich habe einen Doktortitel in Mathematik. Eines Tages musste ich einem Schüler die lineare Algebra erklären, nachdem ich einige Jahre lang nie wirklich Matrizen multipliziert hatte. Mir wurde klar, dass ich die Matrixmultiplikationsregel * vergessen hatte, aber interessanterweise konnte ich immer noch viel lineare Algebra erklären. Der Grund ist: Bei vielen linearen Algebra-Konzepten geht es nicht um Details wie das Multiplizieren von Matrizen.

In Ihrem Job können Sie einfach eine Bibliothek verwenden oder Code kopieren und einfügen. Das Wichtigste ist, die Ideen zu verstehen, in denen Sie vielleicht nicht schlecht sind. Sie werden es nie erfahren, wenn Sie es nicht versuchen.

  • Als Ego-Sache möchte ich erwähnen, dass ich die Regel für den Schüler ableiten konnte.
Richtig, und Matrizen in 3D sind meist 4 gepackte Vektoren, die die Koordinatenbasisvektoren x, y, z und den Ursprungsversatz beschreiben. Ich bezweifle auch, dass er jemals den Multiplikationsteil machen muss.
@joojaa: Richtig, und alles läuft auf Arrays von Arrays hinaus - das lernen Sie im ersten Monat der Programmierung.
Verwenden einer Bibliothek = sehr gut. Kopieren und Einfügen von Code, den Sie nicht verstehen = ** sehr schlecht **. Die einzige Möglichkeit, kopierten Code zu verwenden, besteht darin, ihn in eine Bibliothek selbst zu isolieren, die eindeutig als kopiert markiert ist und die Quell-URL enthält, damit zukünftige Besucher wissen, woher er stammt.
Es ist so eine schlechte Idee, dass es einen Namen hat - https://en.wikipedia.org/wiki/Cargo_cult_programming
Mohair
2015-07-29 18:13:37 UTC
view on stackexchange narkive permalink

Ich war in Situationen wie Ihrer und es ist nie ein gutes Gefühl, über Ihrem Kopf zu sein und verloren zu sein. Wenn dies wirklich Ihr Traumberuf ist, ist die einzige Wahl, es herauszufinden. Sie können nicht für immer ein Junior-Programmierer bleiben, der einfache Aufgaben erledigt.

Der Schlüssel besteht darin, jemanden vor Ihnen zu finden, der an dem Code gearbeitet hat und der Sie betreuen kann. Dies ist eine Beziehung, die Sie gut verwalten müssen, da Ihr Mentor seine eigene Arbeit zu erledigen hat und nicht immer Zeit für Sie hat. Zu Beginn würde ich jeden, der zuvor an diesem Code gearbeitet hat, bitten, ein oder zwei Stunden mit Ihnen zu verbringen und ihn durchzugehen. Sei nicht schüchtern. Stellen Sie Fragen, machen Sie sich Notizen usw. Nutzen Sie die Zeit, die diese Person Ihnen gewidmet hat. Hoffentlich lernen Sie genug, um sicher in den Code einzutauchen. Wenn nicht, dann ist dies vielleicht doch nicht der richtige Job für Sie.

Danach werden Sie sicherlich weitere Fragen haben, aber Sie müssen versuchen, diese selbst herauszufinden. Versuchen Sie, Ihren Mentor nur als letzten Ausweg zu verwenden. Machen Sie Ihre Hausaufgaben, damit Sie nicht dumm aussehen und ihre Zeit verschwenden. Erklären Sie, wie Sie zu den Fragen gekommen sind, die Sie haben. Sagen Sie etwas wie: "Ich habe X herausgefunden und ich habe Y herausgefunden, aber ich verstehe nicht, wie X und Y Z machen." Wenn Sie zeigen, dass Sie dieses Zeug lernen und es wirklich versuchen, werden die Leute viel offener und empfänglicher für Ihre Fragen sein.

"Man kann nicht für immer ein Junior-Programmierer bleiben, der einfache Aufgaben erledigt." Sehr wahr, etwas, an das ich nicht gedacht hatte.


Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...