Your AI powered learning assistant

#59 | Адилет Жаксыбай - Разбор задач по программированию и алгоритмам для попадания в Google (Гугл)

Show must go on!

00:00:00

Подготовка к техническим собеседованиям При подготовке к техническим собеседованиям важно охватить различные типы задач, а не сосредотачиваться исключительно на количестве заданий. Такие компании, как Google и Facebook, тестируют кандидатов с помощью алгоритмического кодирования в формате, требующем многомесячной подготовки. Процесс собеседования обычно длится 20-40 минут и включает в себя углубленное обсуждение работы в компании.

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

Почему Google использует задачи на собеседованиях?

00:03:04

Почему технологические компании используют задания для собеседований Технологические компании, такие как Google, Facebook и Amazon, используют задания для собеседований, чтобы оценить навыки решения проблем кандидатов и способности к программированию. Эти задания обычно включают алгоритмические задачи с ограничением по времени для их решения. Кандидатам необходимо подготовиться к этим собеседованиям, выполняя аналогичные задания в течение нескольких месяцев.

Философия, стоящая за короткими интервью Короткие технические собеседования продолжительностью 20-40 минут используются крупными технологическими компаниями, такими как Google, как эффективный способ оценки кандидатов. Философия заключается в том, что способность решать сложные задачи за короткое время демонстрирует ценные навыки, такие как способность к обучению, адаптивность и эффективное решение проблем.

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

Задача 1 - алгоритмы в стиле LeetCode

00:08:37

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

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

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

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

Интерес и сложность Докладчик выражает заинтересованность в обсуждении интересной задачи, взятой из старой книги по программированию, связанной с соревновательными олимпиадами по программированию.

Алгоритмы в стиле LeetCode Обсуждение перехода на следующую позицию, обработки крайних случаев и важности пересмотра собственного кода.

Ошибки в кодировании и отладка Спикер делится опытом совершения ошибок при кодировании на работе и подчеркивает необходимость осознания себя при отладке. Также обсуждаются ошибки при компиляции и сохранение спокойствия под давлением во время собеседований.

Тестирование качества кода Важность тщательного тестирования кода, многократного перечитывания собственного кода, выявления ошибок на ранней стадии путем пересмотра решений. Подчеркивает важность обучения на ошибках как важнейшей части подготовки к техническим собеседованиям.

Проверка "Решение существует" Процесс проверки "Истинно" или "ложно" объясняется на примерах. Обсуждаются ошибки компиляции, которые могут возникать при запуске решений в различных сценариях во время задач по кодированию или технических собеседований.

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

Методы сквозного тестирования Рассматриваются сквозные интеграционные тесты как важные компоненты сложных систем, но подчеркивается их актуальность главным образом в промышленных условиях, а не в стандартных задачах программирования.

Задача 2 (посложнее) - в жанре Codeforces и спортивного программирования

00:58:54

Введение в Codeforces и соревновательное программирование Спикер обсуждает вторую задачу, соревновательную задачу по программированию, которую он выбрал из конкурса Google Kick Start. Он объясняет, что задачи такого типа распространены на соревнованиях по спортивному программированию.

Предыстория задачи Спикер рассказывает о том, как идея этой конкретной задачи возникла во время его участия в конкурсе Google Kick Start. Задача предполагает планирование встреч в Google на основе определенных ограничений и реальных сценариев.

Вклад сообщества и предложение по проблеме Спикер делится своим опытом участия в конкурсах по программированию, таких как Kikstart, в том числе предлагает эту конкретную задачу по планированию встреч, которая позже была включена в конкурс в 2022 году.

Разработка задач на основе реальных сценариев "Он описывает простоту предлагаемой задачи планирования собраний, основанной на сценарии, подчеркивая ее актуальность для реальных ситуаций в таких компаниях, как Google, где частые собрания необходимы, но их сложно запланировать из-за различных ограничений.

Проблемы, с которыми сталкивается инженер в Google Дается подробное объяснение проблем, с которыми сталкиваются инженеры при попытке найти временные интервалы для совещаний с учетом множества переменных, таких как окна доступности, противоречивые расписания и оптимальное использование.

Задача 3 - System Design

01:28:03

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

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

Pasin - Платформа для обмена текстами Представляем Pasin, платформу для обмена текстами, аналогичную pastebin.com с такими функциями, как сохранение текста и обмен им по уникальным URL-адресам. Обсуждаем участие элитных программистов и его значимость в сообществах программистов.

"Убероподобная" система сохранения текста Подробно описывается простое решение, включающее прямое локальное хранение текстов с использованием консольных команд без зависимостей от Интернета или сервера. Подчеркивается простота этого подхода для начальной разработки.

Реализация "HTTP-сервера" и локальный хостинг Предлагается использовать HTTP-сервер (например, простой HTTP-сервер) локально для размещения сохраненных текстов, обеспечивая легкий доступ через API или терминалы без необходимости использования внешних серверов.

"Интеграция облачных хранилищ", "Мониторинг", "Оценка затрат" Переход от локального хостинга к облачной интеграции с использованием Google Cloud Storage или AWS S3. Особое внимание уделяется оценке затрат на основе количества запросов пользователей в секунду, использования памяти, потребностей в хранении данных, затрат на масштабируемость и т.д., а также требованиям к мониторингу.

Путь в спортивном программировании - 2 финала ICPC

01:53:14

Введение в соревновательное программирование Обсуждение финала ICPC и пути в соревновательное программирование, начиная с позднего выхода на поле.

Ранний интерес к математике и информатике Участие в математических олимпиадах до того, как в 10-м классе обнаружил интерес к информатике благодаря навыкам самостоятельного программирования.

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

Изучение онлайн-ресурсов для обучения Подход к обучению "на низовом уровне" с использованием бесплатных онлайн-ресурсов, таких как образовательные веб-сайты, форумы, каналы YouTube успешных программистов для развития навыков.

Переход к соревнованиям Профессионального Уровня Аналогия с "элитным спортом" используется для описания перехода к соревнованиям профессионального уровня, требующим целенаправленных временных затрат (например, решения тысяч задач) наряду со стратегиями оптимизации.

Чему научился в Ipsy?

02:12:09

Опыт работы в стартап-компании IPS Спикер рассказывает о своем опыте работы в IPS, стартап-компании в Калифорнии. Он упоминает, что это был его первый реальный опыт работы после университета, и ему повезло, что у него была возможность работать в международной компании. Компания выросла до 200-300 сотрудников и получала значительную ежемесячную прибыль за счет услуг по подписке на косметические товары.

Роль в системах персонализации Спикер описывает свою роль в системах персонализации в компании, работая с большими объемами пользовательских данных и разрабатывая передовые алгоритмы подбора продуктов на основе предпочтений пользователей. Он также обсуждает технические аспекты их системы, использующей технологию Grails (GR) on Rails, подчеркивая критический характер обязанностей их небольшой команды, несмотря на ограниченные ресурсы.

Опыт работы в Google

02:16:44

Переход на Google Я начал работать в Google в Сан-Франциско, затем решил попробовать себя в более крупной компании. Получив предложения от нескольких компаний, я выбрал работу в Google в Сан-Франциско.

Работа с центрами обработки данных Я работал в команде под названием Planning, которая занималась оптимизацией ресурсов и спроса на центры обработки данных. В центре обработки данных были миллионы машин с триллионами оперативной памяти и процессоров. Наш отдел спрогнозировал потребность в 10 или 5 миллиардах единиц памяти на следующий год и оптимизировал расположение в зависимости от близости к центру.

Почему вернулся в Алматы?

02:18:34

Возвращение в Алматы Решение вернуться в Алматы было необычным и связано с годом работы в Google. Хотя команда была хорошей, через некоторое время стало несколько скучно. Недостаток адреналина от таких соревнований, как ICPC и Codeforces, заставил меня задуматься о других возможностях.

Изучение новых проектов Проработав около года над интересными проектами, я почувствовал, что задача решения проблем уже была решена другими за последние 20 лет. Мы улучшили существующие проекты, но не увидели появления новых, что побудило меня задуматься об изучении чего-то другого.

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

Заново открывая для себя Алма-Ату "Возвращение домой" означало повторное открытие знакомых мест и общение с местными жителями, осознание того, что жизнь там может быть финансово устойчивой, несмотря на экономические трудности. Этот период вернул воспоминания о детстве и возродил чувство принадлежности к городу, в котором я вырос.

Куда пойти в горы в Алматы?

02:26:15

Исследуя горы Алматы В Алматы есть нереальные и доступные горные места, но мало кто о них знает. От простых до сложных тропинок, с этих гор открываются захватывающие дух виды.

Пешеходные маршруты в Алма-Ате От Чимбулака до Талгарского перевала проложены различные пешеходные маршруты с потрясающими видами. Для некоторых маршрутов не требуется физическая подготовка, что делает их доступными для всех.

Сложные подъемы и водопады Начальный подъем на Чимбулак представляет собой интересное восхождение, где многие испытывают трудности. Будковский водопад - отличное место для посещения после неспешного подъема в гору.

Поход по леднику в долине Туйсо Долина Туйсо предлагает походы по леднику всего в нескольких часах езды от центра города. Удивительно, насколько близко эти чудеса природы расположены недалеко от города.

Опыт горных экспедиций Рассказчик делится своим опытом посещения альпинистского лагеря под названием "Альплагерь", который предусматривает обучение основам альпинизма в течение одной или двух недель.

Приключения на вершине: Пик Молодежный и Пик Комсомольский Пик Молодежный (1500 м) и пик Комсомольский (4000 м) обеспечивают сложные экспедиции под руководством опытных гидов с соблюдением мер безопасности от горной болезни.

Жизнь в Ирландии и Швейцарии

02:48:02

Жизнь в Ирландии и Швейцарии Сравнение жизни в Ирландии, Швейцарии, Казахстане и Америке. Дискуссия об уникальных аспектах жизни в Дублине с его рекой, мостами, барами, а также о том, что он является налоговым убежищем для американских компаний. Спикер также рассказывает о своем опыте жизни в развитых странах, таких как Америка и Европа.

Культура стартапов: Америка против Европа Сравнение возможностей для стартапов в Америке и Европе. Обсуждается, насколько удобно начинать бизнес или работать над проектами, связанными с защитой прав потребителей, такими как присутствие Amazon, ведущее к повышению доступности продуктов, но также упоминаются негативные комментарии в социальных сетях.

Поляризация в социальных сетях Обсуждает поляризацию, наблюдаемую на платформах социальных сетей, таких как Facebook, где люди выражают крайние мнения по различным темам, включая израильско-палестинские отношения. Рассказывает об интересной динамике разделения общества, подчеркиваемой онлайн-взаимодействиями.

Различия в качестве жизни: Европа против России Америка "Сравнивает факторы качества жизни в европейских странах (например, в Испании) с языковыми барьерами для стартапов в сравнении с благоприятными условиями труда; сравнивает системы здравоохранения, подчеркивая преимущества, обнаруженные в разных регионах".

"Преимущества Швейцарии" "Подчеркивает такие преимущества, как более низкие налоги по сравнению с большинством европейских стран, обсуждая высокие зарплаты наряду с дорогостоящими расходами, особенно в ресторанной культуре".

Восхождение на Килиманджаро

03:02:37

Восхождение на гору Килиманджаро Идея подняться на гору Килиманджаро возникла как способ путешествовать и исследовать мир после карантина из-за COVID-19. Подготовка к восхождению не требовала никакой технической подготовки, просто регулярные пешие прогулки по выходным в Швейцарии. Восхождение в Африке подарило уникальный опыт благодаря другой окружающей среде и людям, работающим с вами, таким как гиды (носильщики), которые переносили тяжелые грузы, мотивируя альпинистов.

Физические трудности восхождения Физически восхождение было сложным, но выполнимым без особых трудностей. Высотная болезнь на высоте 6000 метров усложнила задачу такими симптомами, как головная боль и тошнота. Однако поддержка коллег-альпинистов и носильщиков помогла преодолеть эти трудности во время восхождения.

Логистика экспедиции Стоимость восхождения на гору Килиманджаро включала оплату услуг гидов (Gidi), носильщиков с личными вещами, обеспечение питанием на протяжении всего путешествия, включая блюда, приготовленные поварами на газовых плитах в специально отведенных местах для кемпинга в соответствии с правилами национального парка. В экспедиции приняли участие около 13 альпинистов при поддержке примерно 50 сотрудников, включая гидов, носильщиков и поваров, что обеспечило хорошо организованный поход.

Какие из 45 стран запомнились больше всего?

03:09:05

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

Составление бюджета на поездки Беседа посвящена составлению бюджета на проживание, авиабилеты и общим расходам во время путешествия. В нее включены советы по поиску дешевых авиабилетов с помощью Google Flights и booking.com, а также рекомендации по экономичному путешествию без ущерба для качества.

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

Карьерные планы

03:14:34

Карьерный рост в Google Спикер обсуждает путь карьерного роста в Google, начиная с уровня L3 до уровня L5. Он упоминает, что достичь уровня L5 в Google непросто, и не многим людям дается эта должность, особенно в Казахстане. Кроме того, он рассказывает о своей роли руководителя команды и о том, чем это отличается от написания кода.

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

Переход к руководящей роли В этой главе спикер исследует переход от более низких уровней (L3/L4), где навыки программирования были необходимы, к более высоким уровням, таким как L5, где лидерство становится важнее технических навыков. Он делает акцент на понимании бизнес-аспектов, таких как получение дохода, а не просто на написании красивого кода.

Личные планы

03:19:25

Профессиональная и личностная эволюция Спикер обсуждает личные и профессиональные планы, выражая заинтересованность в поездках в разные места. Они выражают желание получать более содержательный контент в Instagram и YouTube.

Документирование приключений Спикер говорит о необходимости документирования приключений в хорошем формате, упоминая, что они предпочитают более длинные посты, в которых все объясняется. Они также проявляют интерес к платформам, отличным от Medium или WordPress.

Любимые города по всему миру Спикер рассказывает о своих любимых крупных городах по всему миру, таких как Нью-Йорк, Лондон, Париж, Токио (хотя они там еще не были), Сан-Франциско, а также о некоторых личных связях с Алма-Атой.

Рекомендации

03:24:20

Всегда актуальная книга Рекомендация книги Джека Лондона "Мартин Иден", ее влияние на жизнь говорящего и актуальность в художественной и нехудожественной литературе.

Ненасильственное общение Рекомендация книги "Ненасильственное общение", обсуждение того, что название вводит в заблуждение, объяснение того, что представляет собой насилие в соответствии с книгой, и краткий обзор ее содержания.

Личностный рост с помощью подкастов Отражение на значение привычки в том числе и подкасты Предпочтение каналов YouTube; исследования в философской подкастов, а также личностному развитию темы.

Художественные фильмы и боевики Предпочтение художественных фильмов боевикам с особым упоминанием "Затерянных в переводе", оценка абстрактного искусства; восхищение "Безумным Максом: Дорога ярости" из-за выброса адреналина от экшн-сцен.

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

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