Pull to refresh

Comments 41

Чтобы не плодить одинаковых постов, отпишусь комментом. Работаю серверным инженером в KIXEYE уже полгода. Тоже буду рад ответить на вопросы.
Сколько примерная зарплата у Sr. Programmer в геймдеве в Bay Area?
Какие есть AAA console конторы, кроме Crystal Dynamics?
Зависит от географии, размера конторы, бонусов и прочего. Я бы сказал $120-170к в год.
Речь именно про gross, без бонусов.
Есть сильная вариация зп внутри Bay Area?
По второй части первого вопроса, простите, не отвечу потому что не знаю. Указанные цифры это чистое бабло, без бонусов и премий, но до налогов (то есть отнимайте 30-40 процентов налога). Разница по географии довольно существенная, в Сан-Франциско, как правило, выше. Ну и я не беру в расчет гигантов вроде Apple/FB/Google, которые выбиваются из статстики.
Эта статья, которая по ссылке — она кочует по хабру/rsdn уже продолжительное время. В прошлый раз на нее попал после прочтения про интервью Google.
У нее есть один минус, к которому постараюсь привлечь внимание: компанию, которая придет с такими вопросами, справедливо послать в черный список работодателей.

Аргументирую: типичное собеседование выглядит как «15 часов дня, обед, кафешка (вариант: рядом с офисом)». Звонит такой гуру и начинает допрашивать про реализацию abs. Какая, к черту, реализация abs, когда в голове реализация тикета до дедлайна и продумывание того, что вечером дописать к себе в проектик. (Нет, серьезно, наверно, это интересно — выбросить из головы план текущих задач и сделать что-то отдаленное от них, не пройти собеседование и получить задержки в основной работе. Наверно, какая-то высшая цель оправдывает подобный лузерский мультитаскинг. И эти люди еще удивляются, что им приходится кого-то отсеивать.)

Экзамены хороши, когда они в ВУЗе (либо сразу после ВУЗа, по привычке..); когда нанимается бездельничающий гик (анимешник-корзиночка из сычевальни*); но это вредно для случаев, когда разработчику не до теории (есть работа, есть необходимость одному пилить инди-проект, есть необходимость целый день писать на пхп за еду).
Никто не мешает назначить собеседование в конце рабочего дня и отпроситься с работы на полчаса-часик пораньше (это если вообще нужно, в условиях разницы часовых поясов). У меня никогда проблемой не было.

Цель такого опросника очень простая — пораньше отсеять чувака, который не знает базу. Потому что для программирования чего-то сложнее быдлоферм битовое представление — это база. Без которой нанятый человек будет писать медленный говнокод. Предваряя дальнейшие вопросы — да, у меня на практике были ситуации, когда двоичное представление знать нужно. Примеры: паковка вершинных атрибутов, паковка инстанс даты.

Такое собеседование — не в контору, где делают инди на пхп за еду, разумеется.
Про базу — не понятно.
Я смутно помню что представление float — это экспонента + мантиса…
Но именно что смутно. Потому что на практике 10 лет в геймдеве мне еще не разу не пришлось работать с битовым представлением float несмотря на то, что моя основная работа — это разработка движков. То есть на самом низком уровне.
А т.к. я не пользуюсь битовым представлением float — я и не помню в деталях что там как — чем не пользуешься, то забывается.
И еще с десяток аналогичных вопросов там такие же.

У меня в движке матлиба полностью написанная мной.
Ноя не отвечу на вопрос, как быстро инвертировать ортонормированную матрицу. Потому что когда реализовывал соответствующий метод — открыл учебник, разобрался, реализовал и забыл.
Думаю, Вы лукавите. :-) Если вы под ортонормированной имеете в виду ортогональную, то Вы, как и я, наверняка после недолгих размышлений ответите, что матрица, обратная ортогональной, равна транспонированной ортогональной матрице.
Ну это следует из определения ортогональной матрицы. :)
Но суть не в этом. Половина вопросов по ссылке я не отвечу. Не потому что идиот и не знаю. А потому, что не пользуюсь и не помню.
По поводу float — можно и не знать, сколько конкретно бит под что. Думаю, вопрос не в этом. Понятно, что под знак один бит, прикинуть сколько под мантиссу, а сколько под показатель степени тоже можно (особенно если примерно знаешь число значящих разрядов, хранимых без погрешности).

Наверное как устроен float нужно помнить разве что в задачах, где с ним нельзя работать с помощью FPU (какие-нибудь старые платформы с софтверным FPU, с медленным FPU или еще какими-то связанными проблемами; а еще в режиме ядра). Не смотря на это, их можно например очень эффективно отсортировать, (но своеобразно, так как сортировка будет по модулю, а не значению) если такая задача встает.

Эти вопросы двоякие, как и многое на собеседованиях. Вы можете знать на них точных ответ, а можете и не знать, но догадываться. Я бы от собеседуемых преследовал не точный ответ, а размышления на пути к нему.
Зависит, что за движок, насколько технически продвинутый.
Например, мне приходилось сталкиваться с конверсией float32->half16, причем это стало боттлнеком. Очевидно, без битовой магии там никак. Ну да, конкретных цифр можно и не знать про длину порядка/мантиссы, но это обычно и не спрашивают.

Точность флоата — постоянно напарываешься. Очевидно, как устроен флоат, надо знать, чтобы понимать, в чем проблема и как обойти. И так далее.

Про ортонормированную матрицу — вопрос, очевидно, не про теоретическую математику, а про трансформацию нормалей. Но его обычно напрямую и спрашивают про нормали.
Интересно Вы работаете. 10 лет-то…

Битовое представление float нужно хотя бы для того, чтобы определить, достаточно ли точности в определённых сценариях. Допустим, в каком формате экспортировать упакованные нормали? Или какой формат HDR поверхности лучше подойдёт для Вашей модели освещения?

Вашего смутного представления не достаточно хотя бы потому, что Вы забыли про бит знака.

Про математику и ортонормированную матрицу… грустно. Знать такие трюки нужно хотя бы для интуиции. Чтобы при поисках решения графических задач, уже на этапе моделирования (а не реализации) Вы могли оценить возможные варианты их сложность. Любой инженер может по учебнику написать алгоритм и даже оптимизировать его. Настоящего мастера отличает высокоточная интуиция, умение быстро и уверенно плавать в пространстве решений.
Что мне нравится в опроснике по ссылке — как правильно сказал кто-то в комменте на ДТФе, уже многое видно по реакции человека на опросник, еще до ответов на вопросы :)
Про ортонормированную матрицу — шутка. Внимательно прочитайте определение ортогональной матрицы. ;)

Бит знака очевиден. Смысл про него упоминать?

Когда у меня будет необходимость посчитать необходимую точность — я открою вики и посмотрю представление. Помнить тьму мусора… Ну наверно в каких-то задачах это может помочь. Но уж точно не при выборе формата запаковки. ;)
>Обычно, лучше не накрутить виртуальных функций и фич — а написать как можно более чистый, простой и оптимальный код
Геймдев на мой взгляд в принципе «противоположен» виртуальным функциям. На некоторых консолях прошлых поколений виртуальные вызовы обходились дороже, чем на ПК, и сильно дороже чем обычные вызовы. Не даром родились подходы типа data-oriented design. Но тем не менее многие все равно используют ООП.
Ну там в задании как раз про data-oriented сказано напрямую :)
Сейчас, когда в консолях стало x86-64, в принципе, критично только совсем на низком левеле, а так используют, конечно :)
Я просто оставлю этот ответ тут (после выполненного тестового задания за 6 часов реализации отображения на канве и ДОМ):

Мы посмотрели код и вынуждены отказать. В коде много моментов, которые не позволяют расширять возможности приложения без существенной переделки.
Спасибо за уделенное время.

Кстати, передаю привет.
Нормальный ответ, хотя бы указана причина. В западных конторах никогда не сталкивался, чтобы хоть какой-то фидбек давали.

От кого привет?
Ну, вот как сказать…
Во-первых, расчитывать на продакшн версию за 6 часов + пытаться использовать тестовое задание в продакшене — как-то в голове не укладывается.
Во-вторых, компании за границей очень часто еще смотрят на то, что сойдетесь ли вы с командой… И если они считают что нет, то не сообщают, т.к. это можно рассмотреть как дескриминацию. Поэтому они просто не дают фидбека.

Ну, а привет, тем, кто поймет про кого я.
Очевидно, никто не будет использовать тестовое задание в продакшене. Однако есть желание, чтобы кандидат умел писать код, который можно поддерживать и расширять. Это абсолютно нормальное желание, и задание, выполненное за 6 часов вполне может быть репрезентативным.

Речь шла именно о тестовом задании. Обычно, когда его выдают, на онсайт не отвозят, поэтому с командой никто еще не встречается на этой стадии.
Я уже был после встречи с командой.

А вобще, тут как раз уже не подходит это — «Обычно, лучше не накрутить виртуальных функций и фич — а написать как можно более чистый, простой и оптимальный код».

Код был конечно не оптимальным, но исполнял свои задачи (и имел высокий ФПС). Таки да, для расширения его, в некоторых моментах требовались сильные переделки, но скажу вам, в среднем, что кода там было около 320 строк с комментариями (сейчас глянул и округлил), не считая MooTools.
Зачем?
Что это даст?
Во-вторых, там используется их внутренний закрытый API
Довольно часто вопросы можно нагуглить/откомпилировать — но это целиком на вашей совести


честно говоря не вижу в этом ничего плохого. зачем заниматься зубрёжкой в наше время, если маны на расстоянии одного-двух запросов? оО
Потому что вопросы «что выведет код» задаются с целью выяснить, понимает ли человек, как устроен в языке тот или иной инструмент, а не для того, чтобы выяснить, как быстро он умеет копипастить из задания в вижуал студию :)
Согласен. Есть вопросы другого класса, «а что если?», но их обычно задают себе самому, и отличным вариантом ответа может быть просто попробовать собрать.
Правда в компиляторах бывают баги, и стоит ещё заглянуть в стандарт :)
Вот например в gcc есть баг, позволяющий незаметно для себя вызвать не const функцию о const объекта. Знакомы с таким кстати?
Честно говоря, даже общаться никакого желания нет с человеком, который так выпендривается. Если бы он так «выёживался» в реальности, то сильно рисковал бы получить прямой в свою умную башню. В общем, пусть идёт в жопу. Про нельзя научить — чушь собачья. Сам-то он как-то научился, или он родился со всеми знаниями? Вообще статья написана с таким опломбом, просто жуть.

p.s. Речь про статью по ссылке из данного поста.
Вопросы там на мой взгляд хорошие, актуальные для разработчика (по-крайней мере знание особенностей работы памяти очень важно для разработки высокопроизводительных приложений), но личной позиции в статье многовато, и понтов.
Да я про это и говорю. Вопросы для геймдева, очевидно, хорошие, но стиль изложения вызывает отвращение к личности излагающего.
Я тоже ради тренировки проходил собеседования с разные западные компании. Общего у них много, но много и различного. Поэтому каждый раз я искал в сети статьи про собеседования в конкретную компанию. Пожалуйста, описывайте сугобо свой опыт, иначе даже читать неинтересно. В книгах типа Google Resume, также есть выдержки и анализ реальных примеров.
Я могу коротко отписать реалии на постсоветском пространстве. Тебя долго спрашивают про технологии геймдева, собеседуют по языку, готовы сожрать во время испытательного срока за не там поставленный в коде пробел — и наконец дорвавшись до реального проекта ты понимаешь что это все не нужно. В коде творится трэш, угар и содомия. Куча багов вообще не имеют отношения к игрострою, их можно найти программисту любой специализации (ну все же мы владеем отладчиком и знаем язык на котором пишем). Раскрыться как архитектору или алгоритмисту сложно если по 10 часов перманентным овертаймом разгребаеш багтрекер. Ну это мой такой опыт.
Слава богу моему начальнику на одном из проектов хватило ума убрать меня из собеседований. :)
Я был не так жесток, как описывают здесь, но тоже достаточно требователен.
Когда меня убрали — набрали людей, которых я бы забраковал… и проект успешно добрался до релиза.
Супер специалисты почти нигде не нужны. Особенно в геймдеве.
>Супер специалисты почти нигде не нужны. Особенно в геймдеве.
Неправда. Если было бы так — никто бы в геймдеве не платил бы тысячи долларов для того, чтобы свозить кандидата на собеседование, десятки тысяч — за визу и релокейшн и сотни тысяч зарплаты.
Десятки тысяч долларов? Вы серьезно? При зарплата в 15 000 баксов — это 0.
А вообще, вот история об EA. Она конечно устарела малость, но по моему и сейчас вполне актуальна.
ea-spouse.livejournal.com/274.html
Спецы нужны в единичных случаях и в конторах типа Crytek или Epic. То есть там, где надо делать что-то уникальное.
99% игр сейчас имеют примитивный код.
Времена Кармаков прошли. Выдумывать что-то новое не нужно, уровень графики не меняется уже несколько лет. Современная игра сложная не потому, что в ней крутые технологии, а потому, что объемы разработки большие. да и большая часть стоимости — это контент, а не код. Середнячки вполне способы генерировать весь этот код. Тем более, если есть готовый движок и весь код по сути скриптование поведения объектов.

Вы весьма крутой специалист судя по профилю, явно выше уровнем чем я, так что если считаете чтоя не прав — высказывайтесь, интересноу знать мнение спеца такого уровня.
Серьезно абсолютно.
На собеседование свозить: штука за билеты, полштуки за отель, несколко сотен за тачку, компенсацию такси. Иногда еще еда. $2k минимум. Релокейшен обходится, обычно, в $10-20k, если из-за океана (перевоз вещей, бренного тела, аренда жилья на первое время). Виза, скажем, О1, требует работы иммиграционного адвоката — а в США они очень хороших денег стоят. И еще ждать несколько месяцев пока виза будет готова — это самое сложное.

$15k/год — это мало в геймдеве в США/Канаде даже для джуниоров. Вон выше коллега написал про зарплаты в Bay Area.

Статья про EA spouse — я к таким вещам отношусь настороженно, потому что там много эмоций. В какой-то мере это правда и в каких-то студиях. Да, овертаймы в геймдеве случаются, в том числе — некомпенсируемые. У меня есть знакомые из EA Vancouver — не заметил, чтобы они были прямо выжаты как лимон.

Если говорить про браузерки/социалки — возможно, я не работал в индустрии. Хотя, думаю, там свои челленджи тоже есть, только не про графику.
Контор с крутым теком уровня Crytek или Epic достаточно — я не буду перечислять все, достаточно, скажем, открыть архивы GDC или SIGGRAPH и посмотреть, откуда докладчики.

Спецы нужны всегда. Есть хорошая поговорка: «If you think it's expensive to hire a professional to do the job, wait until you hire an amateur.» Даже если пост-советское пространство брать — в мейле том же в Allods Team очень нужны крутые спецы (и там есть много очень хороших спецов, прямо мирового уровня).
Я имел ввиду, что при зарплатах от 15 000 трата на переезд считай нулевая и ее можно не считать как что-то особенное.

Челенджи вероятно везде есть, не в курсе браузерок, но мало ли. Но врядли они требуют серьезных экспертов.
Даже скорее не про деньги вопрос, а про время. Обычно, сотрудник нужен вчера, а тут ждать от пары месяцов до года.
Я для определения таланта к архитектуре ПО использую некое абстрактное и заведомо неполное ТЗ, прошу прочитать его, сказать какие моменты кандидат хотел бы уточнить перед началом работ по прокетированию, а также что именно в ТЗ определяет класс и архитектуру системы. Через 15-30 минут можно уверенно говорить либо да либо нет. Если мяса маловато, то ничего страшного, само нарастет.
Нда, пост однако… извините, но читать невозможно. Такое ощущение, что писал какой то выпускник вуза, который слышал или просто для себя, считает модным вставлять через слово «недоанглоцизмы». Такое ощущение, что автор выучил пару слов на английском и для «крутости» решил повставлять их везде для вящей крутости.

Брр: «зареферрил», «внутренний эйчар», «зафорвардить », «офферы», «фейл», «фидбек», «нахантили», «экспириенс», «несколько телефонных скринингов», «зафейлить», «вас позовут на онсайт».

Автор — Вы зафейлили мой брейн, когда расшарили Ваш экспириенс через фидбек в этом пэйпере.
Вы заставили меня залогиниться.

Оставьте подобное мнение при себе. Когда работаешь в с форейнами, начинаешь миксовать совершенно спокойно два языка и получается этакий рунглиш, просто потому что:
а) какое слово первое прилезет, то и будет вставлено в прямую речь,
б) обычно круг русскоговорящих знаком с обоими языками и проблем с понятийным аппаратом не возникает.

Этот эффект наблюдается много где. Большая часть Украины говорит на суржике, например.

Очевидно, что Хабр вполне входит под определение группы лиц пункта б). А Вы — фиксайте свой брейн.
Sign up to leave a comment.

Articles