How to get to Google in 2020
В ноябре этого года Алексей (один из наших менти) получил оффер от Google на позицию L4 Software Engineer, имея всего один год опыта за плечами.
"Как так?" — спросите вы.
Мы провели с Алексеем подробное интервью о секретах его успешной подготовки и собрали для вас много полезного материала!
Лайфхаки для прохождения собеседований, нужные книги, сервисы, курсы, таблицы, списки полезных ресурсов и всё о хронологии подготовки ждет вас в статье:
https://verbetcetera.com/tpost/2rzp7rd1a1-how-to-get-to-google-in-2020
Удачи с подготовкой! И помните, что для начала вы можете воспользоваться нашей бесплатной консультацией😉
Получить работу в Google, Facebook, Amazon и другие компании из FAANG - не так сложно, как кажется, но нужно хорошо подготовиться к интервью.
Сегодня мы разберём один из самых эффективных способов подготовки: mock-interview. Вы узнаете, что это такое, какие уникальные преимущества оно даёт вам при подготовке и как его можно себе организовать: https://verbetcetera.com/tpost/m0bsg98oj1-what-is-a-mock-coding-interview-and-wher
System Design Interview
Архитектурное интервью, возможно, самое важное из собеседований для разработчиков, так как по его результатам определяется грейд и, соответственно, будущая заработная плата, стоки и прочие бенефиты.
Мы подготовили статью, предлагающую фреймворк ответа на вопрос архитектурного интервью, с пояснениями и примерами в каждом пункте, а так же собрали самые часто задаваемые вопросы.
https://verbetcetera.com/tpost/yhrt1yz2lu-system-design-interview-preparation
Удачи с подготовкой!
Один из самых популярных сайтов для подготовки к техническим собеседованиям — leetcode.com. Там собрана неплохая база задачек на разные темы, но, чтобы получить максимальную пользу от их решения, желательно иметь четкую структуру. Мы разработали конкретный алгоритм подготовки, если просто следовать ему, вы увидите свой прогресс. Он работает не только с литкодом, но и с любой другой базой задач.
Данный алгоритм подходит не на всех этапах. Он предназначен для тренировки, чтобы "набить руку" или вспомнить, как проходить собеседования после перерыва, когда базовые знания уже есть, но существуют проблемы со скоростью, тестированием или с выбором алгоритма. (Этап закрепления). Если вы не уверены, какой сейчас этап, можно попробовать позаниматься по этой инструкции, и если часто приходится смотреть в ответ, значит сейчас лучше переключиться на этап обучения: пройти курс по алгоритмам, изучить теорию, а также не смотреть ответы, а долго думать над каждой задачей, чтобы подход лучше запомнился. Через некоторое время можно возвращаться к тренировке по этой инструкции. По необходимости повторять цикл несколько раз.
Для удобства чтения и последующего референса, алгоритм опубликован в нашем блоге: https://verbetcetera.com/tpost/c7pzth7c54-kak-polzovatsya-litkodom
Почему Литкода недостаточно
Как мы рассматривали ранее – решать задачки важно, но есть и другие важные для собеседования навыки, которые не тренируются на литкоде.
0. Фундаментальная теория.
Литкод не для обучения, а для тренировки. Если какой-то класс проблем "не идет" потому что не хватает знаний структур данных или алгоритмов, лучше почитайте книгу или пройдите курс.
1. Коммуникация
Задачи на собеседовании зачастую специально не до конца определены, чтобы дать кандидату возможность уточнить задачу, спросит про ограничения на данные и т.п.
Это показывает, как и в реальной жизни человек ведет себя: сразу бросается решать то, как он понял (возможно, неверно), или задаст уточняющие вопросы и убедится, что он правильную задачу решает.
Также нужно уметь донести свои мысли и идеи до интервьюера. Лучше вообще не молчать. А если надо подумать в тишине, то заранее предупредить.
2. Оформление кода
Литкоду и codeforces без разницы, работает — не трогай.
Но в реальной жизни, как и в собеседовании, код читают живые люди. И он должен быть понятным:
- названия переменных и функций должны отражать то, что в них содержится: t, s, k, obj, func — это всё плохие названия.
- код должен быть структурирован: если какая-то часть решения логически отдельная, желательно выделить её в функцию. Иногда уместно использовать классы. Если человек понимает, как структурировать код — это большой плюс.
3. Другие типы собеседований
Кроме программирования бывают и другие типы собеседований:
- System Design
- Object Oriented Programming, архитектура классов
- Design Patterns
- Behavioural
4. Резюме
Чтобы вообще попасть на собеседование, нужно чтобы ваше резюме понравилось рекрутеру и потенциальному менеджеру. Если человек решил читать его 10 секунд оно должно ему понравится (это для рекрутера, должно быть адаптировано для быстрого чтения), и если человек читает его две минуты или 10 минут, ему тоже должно понравится (это для руководителя группы который берет к себе человека).
Так что надо понимать, что им нравится. Вплоть до того, как построить свою карьеру, какие проекты взять на текущей работе, чтобы они дали нужный опыт.
Кроме того, люди часто описывают свои проекты такими словами, что поймет только их коллега, а человек из другой фирмы вообще ничего не поймет.
Больше статей и заметок в блоге на нашем сайте:
https://verbetcetera.com/ru/blog/
Before the quarantine we've made a cool interview with my friend Natasha about her personal path to Machine Learning and career in one of the top AI teams in the world - Google DeepMind.
She shared a number of cool resources and how her PhD background helped her to transfer to ML field.
https://www.youtube.com/watch?v=6ylzts5uCxI
Like, share and subscribe!
How is your weekend going? Do you want to try a new challenge today?
We are given an array of integers of size N and also a number X. We need to find such a number Y that the expression
min(a[0], Y) + min(a[1], Y) + … + min(a[N-1], Y)
is as close to X as possible.
Time complexity: O(N)
Read the solution here: https://medium.com/verbetceteratech/task-6e940c134e94
Как получить офер в одну из больших технологических компаний? В сети очень много контента на эти темы, но очень мало людей действительно доходят до результата. Связано это со множеством причин:
- людям сложно оценить свой уровень по-настоящему хорошо. Кто-то подается слишком рано и получает отказы, а кто-то, несмотря на то, что уже готов к интервью, медлит с подачей.
- даже если кандидаты практикуются на сайтах вроде Leetcode, они далеко не всегда могут понять, насколько их решения оптимальны.
- самостоятельно подготовиться к поведенческому интервью тяжело — лучше всегда делать это с живым ментором, который может дать реальный фидбек.
- кандидаты подаются только в ограниченное количество компаний, потому что не знают обо всех возможностях на рынке. Плюс подачу можно сделать более эффективной за счет рефералов, о чем также думают далеко не все.
- и, наконец, когда речь заходит о переговорах о зарплате, имея только один офер на руках, кандидаты обычно соглашаются на предложенные условия, в то время как несколько оферов могут помочь вам повысить свою компенсацию на 5-10%, а иногда и 20-30%.
Мы знаем обо всех этих проблемах не понаслышке, и поэтому помогаем техническим кандидатам как через курсы по алгоритмам, так и через комплексную подготовку, включая пробные интервью, CV и другую помощь с интервью. Пишите нам напрямую в Телеграм (@alinaverbenchuk) или на info@verbetcetera.com.
Подробнее: http://verbetcetera.com/eng-mentorship
М - Мотивация
Многим кандидатам типовые поведенческие вопросы на интервью в международных tech компаниях кажутся бессмысленными. Обычно большинство ребят готовит техническую часть и забывает про поведенческую — или, по крайней мере, не ожидает от нее сложных вопросов. Но именно на вопросах о мотивации, конфликтах или гипотетических ситуациях завалиться очень легко.
Сегодня рассмотрим самый первый и, казалось бы, самый легкий вопрос, через который будут проходить все, как технические, так и не технические кандидаты — “Почему ты хочешь работать у нас?”
Как вы думаете, сколько раз интервьюеры уже слышали про замечательную корпоративную культуру, которая привлекает многих подаваться в компанию? Десятки, сотни, тысячи раз. Подумайте о том, что будет выделять вас среди всех остальных и заранее подготовьте два-три пункта для ответа на этот вопрос.
Что может быть хорошей мотивацией:
✅Это может быть конкретный продукт: “Я очень интересуюсь продуктом Х — мне кажется, он приносит большую ценность пользователям, и мне хотелось бы быть причастным к нему.”
✅Ваш опыт работы с этим продуктом или технологией: “Я уже 3 года занимаюсь темой Х, и поэтому мне хотелось бы снова поработать с ней.”
✅Миссия и ценности компании. Только приводите конкретные примеры и кейсы, иначе это будет тот же заезженный ответ, который они уже слышали: “Мне нравится честность и открытость компании Х – это резонирует с моими ценностями.”
✅Масштаб, если вы собеседуетесь в большую компанию: “Мысль, что продуктом, который я делаю, будет пользоваться 2 миллиарда людей каждый день, меня очень мотивирует.”
✅Экспертиза коллег: “Меня мотивирует работать с одними из самых крутых экспертов в этой теме — вы реально делаете лучшую технологию в Х.”
✅Корпоративную культуру тоже можно упомянуть, но желательно с конкретными примерами: “Мне нравится гибкость и возможность тестировать разные идеи — я хотел бы работать в такой культуре.”
Что демонстрировать не стоит:
❌Отсутствие ярко-выраженной мотивации: “Я смотрела позиции на LinkedIn, и тут выпала ваша позиция — я подумала, почему бы не попробовать податься.” (Мысли интервьюера: А кроме алгоритмов LinkedIn есть что-нибудь, что привело тебя к нам?)
❌Мотивацию плюшками, которые не должны быть самоцелью: “Я слышал, что у вас в офисе есть спортзал/трехразовое питание/работа из дома — мне хотелось бы работать с такими бенефитами.” (Мысли интервьюера: Это не та мотивация, ради которой нужно идти работать именно к нам)
❌Чисто меркантильную мотивацию: “Слышал, что у вас платят на 10% больше, чем в Х.” (Мысли интервьюера: Если мы возьмем его на работу, он так все время и будет концентрироваться исключительно на зарплате вместо своего развития и команды)
❌Мотивацию, основанную на личной жизни: “Мой молодой человек переезжает жить в Лондон/Париж/Берлин, поэтому я тоже хочу переехать к нему.” (Мысли интервьюера: Человек хочет просто переехать, ему без разницы, что мы тут делаем.)
❌Звездную болезнь: “Это вы мне расскажите, почему мне должна быть интересна ваша компания и позиция.” (Мысли интервьюера: Что этот человек вообще тут делает?).
Это ваше первое знакомство с интервьюером — подумайте хорошо, чем бы вы хотели запомниться другому человеку, который может стать вашим коллегой в будущем? Не будьте нудными и не повторяйте за другими, но и не придумывайте безумную мотивацию, которая не является правдой. Задайте этот вопрос самому себе и ответьте честно — возможно, именно так вы поймете, хорошая ли это вакансия для вас.
Удачи!
Сегодня предлагаем вам изучить отличную задачу с технических интервью. Интервьюеры любят давать "глубокие" задачи. Хоть как-то их решить может каждый, но более-менее оптимально надо уже неплохо подумать. И не обязательно за 30 минут рассказать и реализовать самый лучший метод решения. Это может быть даже вредно: интервьюер подумает, что кандидат заучил эту задачу. Кандидату нужно показать, что он не сдается при виде сложной задачи и умеет рассуждать. А далее написать любой вариант решения. Даже если это перебор, но написан вовремя, понятно и без ошибок, это hire. А если осталось время, можно устно обсудить и более сложные способы решения, это покажет общий кругозор и даст возможность рассмотреть кандидата на более высокие уровни.
Существует поверье о "счастливых билетах": в них сумма первых трех цифр билета совпадает с суммой последних трех. Сколько всего существует таких билетов? Для 6 цифр можно обойтись полным перебором: написать 6 вложенных циклов for от 0 до 9 и проверить все варианты.
Но если увеличить длину билета, такой способ быстро становится непрактичным, так как имеет сложность O(10^N), где N — длина билета.
Можно ли посчитать быстрее? Оказывается, можно! Этот вопрос рассматривается в серии статей журнала Квант: http://ega-math.narod.ru/Quant/Tickets.htm
Сегодня мы делимся историей разработчика, который 5 лет назад переехал в Лондон и построил успешную карьеру. Мы расскажем о препятствиях на его пути, о совершенных ошибках, и поделимся как ему удалось устроиться в топовые компании. Вопросы задает наш ментор Оля (Sr PM @Amazon), а отвечает Илья (Software Engineer в одном из Лондонских хедж фондов, ex-Facebook, Bloomberg, Yandex).
Полное интервью можно прочитать по ссылке.
Почему ты решил переехать в Лондон?
Я поехал в отпуск и мне очень понравился город . Здесь нет минусов, которые присутствуют в Европе, например, магазины работают по воскресеньям. 🙂 Мне хотелось жить в городе, который вбирает в себя лучшие стороны Москвы, но в котором нет того, что отталкивало меня в Москве.
Чем ты занимался до переезда в Лондон?
Работал 4 года в Яндексе. После Яндекса я был год в стартапе, мне не очень нравилось. Если бы я не переехал в Лондон, то я бы пытался вернуться в Яндекс.
Как ты искал первую работу в Лондоне?
Через рекрутеров и подавался сам. Есть два типа компаний: первые ищут кандидатов через внешних рекрутеров — например, Bloomberg, а вторые ищут сами — например, Google, Facebook. Туда стоит подаваться только через рекомендации иначе сложно пробиться через отбор по резюме. Еще в Москве я подался в Facebook и получил отказ, несмотря на мой опыт работы в Яндексе. С Google коммуникация затянулась, в первый раз я подался самостоятельно на позицию в Лондоне и ждал ответа несколько недель. Мой звонок с HR постоянно переносился. В итоге через какое-то время мне написала другая HR из Цюриха. Я сказал ей, что мне интересна работа в Лондоне, она через своих знакомых внутри компании отправила мое CV опять в Лондон. И только тогда пошел процесс собеседований с Google в Лондоне.
А в Bloomberg было проще. Я завел LinkedIn и добавил своих знакомых, которые уже переехали в Лондон работать разработчиками в финансовой сфере. Кажется, рекрутеры как-то могут определять новеньких на LinkedIn, в итоге мне написали рекрутеры, которые были в контактах у моих Лондонских знакомых на LinkedIn. Набросились сами. 🙂 Я остановился на общении с одним рекрутером. Кажется, именно тогда он открыл, что из России можно перевозить классных разработчиков. В Bloomberg я подавался через него.
Он мне очень помог и организовал все — я ничего не знал про Лондон, он помогал общаться с компаниями, обсуждать зарплату в Bloomberg и пакет для переезда.
Из чего состояло интервью c Bloomberg?
Звонок с HR, звонок с менеджером, двухчасовое интервью по видео с кодингом, интервью в офисе, которое включало проверку моего прошлого опыта, несколько интервью на алгоритмы, поведенческие вопросы, system design. Я много общался не только с разработчиками, но и с менеджерами разных уровней. Также у Bloomberg фокус больше на C++ и многопоточность, там спрашивают менее сложные алгоритмы, чем в Google.
Как проходили собеседования в Google?
HR скрининг, два видеозвонка на программирование, затем целый день интервью в офисе (5 интервью по 45 минут, одно system design, четыре алгоритмических).
Как ты готовился к интервью?
Я три года преподавал студентам С++ в техническом университете, поэтому готовиться к собеседованиям было сравнительно просто. Еще я фокусировался на алгоритмах и поведенческих вопросах. За время подготовки я решал очень много алгоритмических задач на скорость. Искал такие задачи, которые могут попасться на собеседованиях, кодил их. К архитектурному интервью я не готовился, так как считал себя достаточно опытным в этом...
#партнерскийпост
JUG Ru Group поделились с нами промокодом на свои конференции - делимся с вами!
Что общего между джавистами, джаваскриптерами, мобильными разработчиками, тестировщиками, дата инженерами, плюсовиками, дотнетчиками и DevOps-джедаями?
Кроме того, что они все айтишники и умеют в технологии, JUG Ru Group делает конференции для каждого из них.
Если вы узнали себя в этом списке, приходите на конференцию, чтобы набраться советов и преисполниться знаниями!
А если вам мало одной — берите сразу Full Pass на все 8 конференций. Стоит, как две, а профита — как на всех форумах, которые вы сможете прочитать за пару лет.
С 4 ноября по 12 декабря приходите на трансляции, в чатики и зумы — будет круто.
Подробности и билеты со скидкой по промокоду verbetcetera2020JRGpc на сайте.
3Sum problem
Сегодня мы решили разобрать популярную на собеседованиях задачу "3Sum".
Условие задачи следующее:
Given an array of n integers, are there elements a, b, c in nums such that a + b + c = 0? Find all unique triplets in the array which give the sum of zero.
Note: The solution set must not contain duplicate triplets.
Разбор решения с примерами кода на С++, Python и Java смотрите в посте 3sum leetcode problem.
Зачем доска дома?
Очень полезно иметь дома Whiteboard. Фейсбук, например, сейчас оплачивает кандидатам покупку доски, отчего бы не воспользоваться?
Если вы готовитесь по инструкции из предыдущей статьи, рекомендую каждую пятую задачу сначала писать на доске. Это поможет свыкнуться с такой поверхностью, и вы научитесь небольшим трюкам: что надо оставлять небольшое расстояние между строчками, что переменные надо называть кратко, но всё ещё понятно.
Низкая скорость письма по сравнению с клавиатурой усиливает важность того, что надо сначала придумать решение, а потом писать его с первого раза, чтобы не тратить время на исправления.
Купите тонкий маркер, он поможет писать убористо. И возьмите этот маркер с собой на собеседование. Кто знает, какой маркер будет в переговорке во время вашего собеседования? Может он будет толстый, неудобный. Может полувысохший. Лучше защититься от такого исхода и прийти со своим.
Но сейчас же карантин и онсайтов еще долго не будет? Для онлайн-интервью доска тоже пригодится. Поставьте её за спиной, чтобы было видно в камере интервьюеру. Иногда полезно что-то нарисовать, особенно в задачах с графами. А для System Design собеседований доска просто незаменима!
Альтернативы доске. Если некуда поставить или всё-таки не хочется покупать доску.
- Листочек. Подходит для подготовки, хуже для онлайн-собеседования. Только используйте обычные листы A4, без разлиновки.
- Высокотехнологичные: iPad с Apple Pen или планшет Wacom. Для подготовки подойдет любая программа-рисовалка, а для онлайн-собеседования можно расшарить с интервьюером онлайн-доски типа awwapp.com или Google Jamboard.
Удачи!
Эта и другие статьи в нашем блоге https://verbetcetera.com/tpost/t3d866yh4t-zachem-doska-doma
Зачем готовиться к собеседованию в FAANG?
Одна только подготовка к собеседованию лично мне очень помогла сильно улучшить свой уровень как программиста. Казалось бы, как могут алгоритмические задачки помочь в реальной жизни? Мы же не олимпиаду решаем. Тем не менее, для подготовки к собеседованию я прошел курс по алгоритмам и узнал, как устроены библиотеки, лучше разобрался, в какой момент какие стандартные функции надо вызывать (например, зачем нужны разные сортировки). Также я научился видеть, в каких местах нужно использовать какие-то особенные структуры данных, если того требует производительность.
А самое главное, пока готовился писать код на доске без IDE, я научился двум важным вещам:
- сначала продумать решение, прежде чем бросаться писать
- видеть ошибки без запуска компилятора
Теперь я чаще пишу чистый код с первого раза без ошибок, это сильно экономит время. Также я думаю о корнер-кейсах и чаще вижу чужие ошибки в пулл-реквестах.
Но чтобы развивать важные навыки, нужно готовиться правильно. Об этом в следующих постах.
Больше статей и заметок в блоге на нашем сайте:
https://verbetcetera.com/ru/blog/
Зачем идти в FAANG
Есть мнение, что поработать в FAANG стоит только ради строчки в резюме. Что там неинтересно и заставляют “джейсоны перекладывать”. Что надо потерпеть пару лет в Гугле и потом уже устраиваться на нормальную работу. А если и так уже работа хорошая, то можно сказать шаг пропустил — время сэкономил!
Так обычно говорят те, которых в Гугл не взяли.
Стоит задуматься, а почему эта строчка в резюме так важна? Почему во многих компаниях готовы заплатить x2 по зарплате бывшему гуглеру или фейсбукеру по сравнению с другими кандидатами? Потому что с большой вероятностью он принесет пользы, как три других разработчика.
Компании FAANG помешаны на эффективности. Они старательно учитывают, документируют и обучают лучшим приемам Software Engineering.
Если какой-то инструмент тормозит разработку, его улучшают или делают новый. Этому нет границ: может быть и база данных, и таск-трекер, даже своя система контроля версий или язык программирования. Иногда эти разработки попадают в Open Source и тогда другие компании тоже могут воспользоваться этими инструментами. Так что разработчик FAANG приучается не мириться с текущим состоянием вещей, а постоянно улучшать всё вокруг.
Также он учится задавать правильные вопросы: “а какую задачу ты решаешь?”, а не просто делать, что сказали. Он не Python Developer или Angular Programmer, а инженер, и умеет выбирать правильный инструмент для каждой задачи. Он привык, что бывает много того, о чем он не знает, и умеет ориентироваться в огромных потоках информации, выбирая то, что нужно в данный момент.
В FAANG-компаниях культура открытости и постоянного фидбека. Если тебе не нравится твоя задача, скажи. Всегда есть возможность найти другую задачу или даже перейти в другую команду.
Во многих компаниях обещают при найме “вот поработаешь какое-то время хорошо, и мы тебя повысим и зарплата будет больше”. Но почти везде это неправда. Потому что нет критериев, что такое “хорошо” и какое-то время это сколько: год, два, бесконечность? По факту если не напоминать постоянно, не просить прибавки, не угрожать офферами из других компаний — ничего не будет. В результате нередка ситуация, когда люди, проработавшие 5–10 лет, имеют зарплату намного ниже, чем те, кого наняли недавно.
В компаниях уровня FAANG такая ситуация маловероятна. Там есть формальный процесс ревью каждые полгода, и на его основе практически все получают бонусы и повышение зарплаты. Плюс конкретный фидбек, что хорошо, а что могло бы быть лучше.
Если с английским пока не очень, то рекомендуем поработать в Яндексе. Это единственная из известных нам российских компаний, в которой работают вышеизложенные принципы. Обычные российские компании отличаются от Яндекса больше, чем Яндекс от FAANG.
Удачи!
Статья на медиум: https://medium.com/verbetceteratech/%D0%B7%D0%B0%D1%87%D0%B5%D0%BC-%D0%B8%D0%B4%D1%82%D0%B8-%D0%B2-faang-15ce1757df56
Для тех, кто сомневается в своих силах…
Мы много слышали от наших менти и потенциальных клиентов, что у них не так много опыта прохождения интервью на английском языке, и что им вообще непонятно, как их уровень соотносится с уровнем IT-специалистов на международном рынке. Мы придумали простой способ узнать свой уровень и понять, сколько нужно готовиться к подаче в международные компании и стартапы - 45-минутный скрининг звонок с одним из менторов.
✅Мы делаем ревью CV и вашего текущего уровня
✅На звонке мы задаем вам вопросы про ваш опыт, мотивацию и задаем вам простые задачи/вопросы, которые задают на скрининг звонках в топовые международные компании и стартапы (интервью проходит на английском)
✅После звонка мы проговариваем с вами нашу обратную связь и высылаем вам отчет с рекомендациями
Кому подойдет скрининг? Тем, кто хочет попробовать податься за рубеж, но не знает, какой на самом деле у него уровень и сколько ему стоит готовиться. Если вам нужно подтянуть алгоритмы, мы скажем, сколько примерно месяцев или прорешанных задач вам еще понадобится, чтобы чувствовать себя уверенно на интервью. Если это, например, бизнес-стратегия, то мы тоже расскажем, что стоит почитать или прорешать, чтобы подтянуть эту сферу знаний.
Забронировать и оплатить скрининг можно на сайте: http://verbetcetera.com/
Удачи!
Ever wondered how to scale solution of a simple algorithmic task to a fully-scalable version being able to handle terrabytes of input data? Check out our new article about array subsegment sums and how is this primitive task becoming more sophisticated to address large input sizes. Get to know useful tricks for your future system design interview!
https://medium.com/verbetceteratech/distributed-subsegment-sums-7c58e3eb22d3
When you apply to big tech companies usually there are one or more interview rounds where the interviewer asks you to design a system.
You need to understand the requirements for the system and to come up with an efficient realisation.
Today we will be discussing how to design a distributed rate limiter:
https://medium.com/verbetceteratech/system-design-task-rate-limiter-90ab678840cc
#systemdesign
Все вокруг делятся новым демо-видео Unreal Engine, и его действительно стоит посмотреть.
Основная фишка это Nanite (virtualized micropolygon geometry system). То есть раньше надо было оптимизировать модели, следить, чтобы в них было не слишком много полигонов, а то FPS упадет. А теперь сколько угодно полигонов добавляешь, а Nanite в реальном времени их как-то оптимизирует. Причем без видимой потери детализации!
Говорят, в кадре демки миллиарды полигонов, но реально отрисовывается только несколько миллионов, которые видны пользователю. Что логично: даже в разрешении 4К 3840 * 2160 = 8 294 400 пикселей. Если полигоны размером с пиксель, их не может быть больше 9 миллионов вносящих вклад в изображение.
Какие-то системы отсечения невидимых пикселей были и раньше, но тут есть две проблемы:
1. Посчитать, какой полигон рисовать, а какой нет, может быть дороже, чем его отрисовать. Поэтому нельзя запускать этот процесс для каждого полигона, а только для отсечения больших групп.
2. Также из-за ограниченного полигонального бюджета делают несколько вариантов моделей, от более детальных до совсем примитивных. И заменяют их в зависимости от расстояния игрока. Можно быстро прибежать в новую локацию (или даже резко камерой крутануть) и увидеть низкополигональные модели, пока они еще не успели замениться. Такой подход сильно увеличивает трудоемкость, так как каждую модель необходимо создавать в нескольких вариантах.
Теперь вопрос: как они это сделали на UE5 в реальном времени? Похоже на магию. К сожалению, чтобы увидеть новый движок в действии, ждать придется долго, потому что релиз назначен на конец 2021 года. И это только самого движка! Сколько еще пройдет времени, пока увидим игры на нем?
https://youtu.be/qC5KtatMcUw
When was the last time you solved an algorithmic task? Big tech companies use those tasks to evaluate candidates during the interviews. Strong candidates should be able to solve those tasks in 15-20 min at home so they could solve them in around ~40 min time during the interview.
Wanna start brushing up your knowledge of algorithms? Here is the algorithmic task for your weekend: https://medium.com/verbetceteratech/algorithmic-task-dynamic-bracket-sequences-b69f5101405c
Всем привет! Мы сделали отдельный канал @verbetceteratech специально для разработчиков. Здесь мы будем постить контент, который больше подходит именно инженерам, рассказывать их истории и решать задачки для прохождения в топовые мировые компании.
Читать полностью…