Я недавний выпускник, который переехал через всю страну, чтобы получить работу своей мечты в программировании игр. Я проработал год в инди-компании, а потом меня наняла одна из крупнейших компаний. Для меня это сбывшаяся мечта, потому что именно поэтому я пошел в школу. Я довольно новичок в отрасли и изо всех сил пытаюсь чувствовать себя компетентным.
Во всяком случае, я работаю на этой работе уже почти год в качестве универсального программиста. Мы довольно небольшая команда в компании. Моя работа заключалась в основном в рефакторинге кода, улучшении функций и исправлении ошибок. Я работал с еще одним человеком, который гораздо более опытен. Они были повышены в должности и больше не программировались. Мне дали их работу.
Проблема в том, что они программисты графики. Сейчас большая часть моей работы связана с 3D-математикой. Я бросил математику в 10 классе, повторил ее в колледже и едва сдал. Я ужасен в математике и не получаю от этого удовольствия. Моя новая работа связана с темой, о которой я абсолютно ничего не знаю. Хотя это неплохо, так как я выучил много вещей и языков, когда начинал эту работу, теперь я являюсь основной линией поддержки для многих крупных команд. Мне поручено устранять ошибки в графическом конвейере, в то время как я едва могу выполнять матричное умножение. Я не знаю ни терминологии, ни математики.
Как мне сказать своему боссу, что я не подхожу для этой работы? На собеседовании меня спросили о моих математических способностях, и я сказал им, что они плохие. В то время они сказали, что это не имеет значения.
Часть проблемы еще и в том, что больше некому выполнять эти задачи. Я прекрасно понимаю, что ответ на проблему может заключаться в том, чтобы просто смириться с ней и разобраться с ней.
Если это имеет значение, это очень большая компания, и возможен переход в новую команду. Но я хотел бы избежать этого любой ценой, потому что мне нравилась команда и работа.
Кое-что, что я усвоил как из личного опыта, так и из наблюдений (в основном, наблюдая за своими детьми), состоит в том, что если вы убеждены, что не можете что-то сделать, вы будете бороться с этим. Вы просто, кажется, не прикладываете к этому силу ума, потому что просто знаете , что потерпите неудачу.
Так что я дам вам тот же совет, что и своим детям :) Вместо того, чтобы рассматривать всю проблему «Я не умею делать математику», разбейте ее на более мелкие части. Выберите то, что вы почти понимаете, а затем попытайтесь применить это к практическим задачам, для которых вы это используете. Помните, что математика — это процесс, алгоритм, как и программирование. Сделайте один шаг, затем следующий, примените правила, и вы получите ответ :)
Теперь, как управлять этим с вашим боссом? Ну, вы обсуждали со своим менеджером, что у вас проблемы? Если он или она не знает, то они не могут вам помочь. Вы могли бы сказать, что попытаетесь научиться, но это потребует времени и, возможно, некоторого обучения, которое могло бы помочь. Тогда менеджер может управлять риском оставить вас там или найти кого-то другого, кто возьмет на себя эту роль.
Я бы поговорил с вашим боссом, сказал бы им, где у вас возникли трудности, и что вам может потребоваться больше времени на эти задачи, пока вы пытаетесь понять сложность математики, стоящую за ними. Тогда, если вы действительно, действительно не можете этого сделать, вы сделали все, что могли, и убедились, что люди, которым нужно знать, делают :)
Whether you think you can or think you can't, you're right - Henry Ford
.used
это инструмент для достижения some goal
. Например, матричный стек, который кажется очень пугающим (зачем лишний вес? 4 уравнения вместо 3 для 3d? Почему именно такой порядок умножения?), на самом деле прост, если вы думаете об этом в терминах моделирования: камера вон там (матрица обзора), которая относительно центра сцены (матрица мира), где стоит парень (матрица модели) и имеет суставы, из которых я непосредственно контролирую тазобедренный (корень IK- и иерархия FK-цепей), а остальное следует (локальная матрица преобразования).Все ответы до сих пор предполагают, что вы можете выучить всю математику 3D-графики (а я уверен, что вы можете), что вам это понравится (что может быть неправдой) и что вы можете выучить все это достаточно быстро, чтобы вы можете применять эти методы СЕГОДНЯ в производственной среде (что, вероятно, неверно).
Я думаю, что лучшее, что вы можете сделать, это поговорить со своим непосредственным руководителем. Сказать, что вы не в состоянии выполнять часть своей работы к собственному удовлетворению, не означает проявить слабость, это показывает, что вы критически относитесь к своей работе и способностям и хотите лучшего для компании. Не забудьте добавить (если хотите), что вы готовы изучить эти техники, но ищете курсы или наставника, который поможет вам в этом. Это отличная возможность улучшить себя и сделать себя более ценным для компании. (Вещи, которые менеджеры любят видеть).
Будьте коммуникабельны и не бойтесь переборщить. Делайте все возможное, чтобы предоставлять точные оценки и рейтинги сложности задач. Если вам нужна помощь, спросите, если нет помощи на месте, довольно часто переполнение стека даст вам ответы быстрее, чем люди, с которыми вы работаете, если вы четко задаете вопросы и предоставляете правильные детали. Учитесь как можно больше и как можно быстрее, и как только вы поймете, что это такое, это не будет казаться таким сложным. Попробуйте найти несколько семинаров, чтобы получить больше опыта, или следуйте инструкциям в Интернете. Если вы прикладываете усилия, и ваша команда это видит, часто это идет вам на пользу. Большинство людей предпочли бы работать с увлеченным и целеустремленным человеком, чем со всезнайкой-островитянином.
У меня есть докторская степень по математике. Однажды мне пришлось объяснять линейную алгебру студенту после того, как несколько лет я никогда не перемножал матрицы. Я понял, что забыл правило умножения матриц*, но, что интересно, я все еще мог объяснить многое из линейной алгебры. Причина в том, что многие концепции линейной алгебры не касаются таких деталей, как умножение матриц.
В своей работе вы можете просто использовать библиотеку или копировать и вставлять код. Важно понимать идеи, а это то, в чем вы, возможно, неплохо разбираетесь. Вы никогда не узнаете, если не попробуете.
Я был в таких ситуациях, как твоя, и никогда не бывает хорошо, когда ты теряешься и теряешься. Если это действительно работа вашей мечты, то единственный выход — разобраться в ней. Вы не можете вечно оставаться младшим программистом, выполняющим черную работу.
Ключ в том, чтобы найти кого-то, кто работал над кодом до вас, кто может вас наставлять. Это отношения, которыми вы должны хорошо управлять, потому что у вашего наставника будет своя работа, и у него не всегда будет время для вас. Для начала я бы попросил тех, кто раньше работал над этим кодом, посвятить с вами час или два и пройтись по нему. Не стесняйся. Задавайте вопросы, делайте заметки и т. д. Используйте время, которое этот человек посвятил вам. Надеюсь, вы узнаете достаточно, чтобы уверенно погрузиться в код. Если нет, то, возможно, эта работа все-таки не для вас.
После этого у вас наверняка появятся еще вопросы, но вы должны попытаться разобраться в них самостоятельно. Старайтесь использовать своего наставника только в крайнем случае. Делайте домашнее задание, чтобы не выглядеть глупо и не тратить их время. Объясните, как вы пришли к вопросам, которые у вас есть. Скажите что-нибудь вроде: «Я вычислил X и вычислил Y, но я не понимаю, как X и Y составляют Z». Если вы продемонстрируете, что изучаете этот материал и действительно стараетесь, люди будут намного более открыты и восприимчивы к вашим вопросам.
Брандин
тиего1967
Корт Аммон
болото
Моника Челлио
харсимранб
Майкл Бланкеншип