ch
Feedback
2 953
订阅者
-124 小时
+17
+4430
帖子存档
photo content

10) Овните sev. Sev - это серьезный инцидент. Старайтесь овнить хотя бы 1-2 сева за 6 месяцев. Напишите хороший sev review и презентуйте его. Часто на этих ревью будет ваш скип. Даже если вы были причиной этого sev, если вы напишете хороший sev report, и презентуете его перед скипом - это будет вам в плюс к оси Engineering Excellence. 11) Старайтесь не быть в хвосте по числу изменений кода в команде/орге. Напрямую это не влияет, но нахождение в хвосте будет вызывать вопросы у менежера, а работаете ли вы вообще и насколько интенсивно. Он у вас начнет спрашивать, вы начнете оправдываться, что текущая работа не подразумевает написание кода, но осадок в подсознании у менеджера останется. Поэтому если сильно код менять не надо в текущий момент, делайте время от времени косметические изменения в коде. 12) Бегите от менеджера, который не умеет/не хочет отстаивать оценки своих подопечных. Это вы можете узнать у своих коллег и на своем личном опыте после первого перфоманс ревью. Часто, бывшие программисты, которые стали менеджерами, не умеют в калибровки и отстаивание своих сотрудников. Но не всегда. Если это ваш случай, то с большой вероятностью, на сокращениях он не будет упираться и отстаивать вас, когда сверху спустили цифры и нужно кого-то найти. Другие менеджеры будут вас отстаивать, а каким-то менеджерам будет пофиг. Тогда из его команды и найдут, кого уволить.

Гайд по выживанию массовых сокращений(layoffs) в Meta Я пережил 3 массовых сокращений в Meta. За три волны сокращений уволили 25%-35% сотрудников. Вот мои рекомендации, которые могут помочь пережить массовые сокращения: 1) Работайте над наиболее приоритетными направлениями в компаниями. Обычно, компания публикует свои приоритетные направления, в которые она будет инвестировать в ближайшее время. В первые две волны сокращения сильнее задели менее приоритетные направления разработки. В FAANG компаниях достаточно распространённая практика смены команды, поэтому если вы чувствуете, что ваша область стала менее приоритетной для компании - меняйте команду. 2) Поддерживайте хорошие отношения с менеджером. Третья волна сокращений была по перфомансу. Ваша оценка очень сильно зависит от вашего менеджера. Предварительную оценку выставляет он, таже он подготавливает ваш пакет документов, представляет ваш пакет и отстаивает вашу оценку. Если у вас плохие отношения, то желания отстаивать вашу оценку у него будет меньше. Речь тут не про неформальные отношения или дружбу, а про продуктивные рабочие отношения и мнения менеджера о вас, как о сотруднике. 3) Реагируйте на actionable feedback от менеджера. Если на ваших регулярных 1:1 менеджер дает вам конструктивный фидбек и говорит конкретные действия, которые нужно сделать для исправления - рассматривайте это как ваш самый важный текущий приоритет. Если менеджер дал конструктивную критику, нужно собраться и показать, что вы среагировали и сделали, чтобы это исправить и показали результаты менеджеру на последующих 1:1. 4) Делайте, что говорит ваш менеджер. Менеджеры в фангах это не тех лиды. Если они что-то говорят, что вам нужно сделать - обычно это значит, что к ним кто-то пришел, убедил, что это супер важное, а вы по тем или иным причинам это не делаете или не рассматриваете это как ваш главный приоритет. 5) Перед началом работы над задачей или проектом спросите себя, какой будет импакт от этой работы? Выясните, как численно можно измерить результат работы до того, как к ней приступить. Сделайте метрики (засетапьте пайплайны, дашборды), которые покажут, как было и как стало. Я называю это Impact Driven Development по аналогии с TDD. Только тут вначале нужно сделать метрики и работать над их улучшением. Этот подход помогает приоритезировать проекты и быть уверенным, что вы его можете измерить и показать результат другим людям. 6) Повышайте свою визибилити для скипов. На калибровках будет не только ваш менеджер, но и скипы (менеджеры вашего менеджера). Нужно быть уверенным, что ваши скипы знают про вас и про вашу работу. Старайтесь посещать митинги, где есть скипы, презентовать свою работу и работу вашей команды, задавайте вопросы, показывайте свою квалификацию вашими ответами и экспертизой перед скипами. 7) Документируйте обсуждения, алайменты, договоренности с другими людьми и командами. Пишите документы, посты, отправляйте письма и сообщения с результатами обсуждений. Убедитесь, что эти доки, письма, посты видят ваш менеджер и ваш скип. Если вам надо что-то обсудить с человеком из другой команды/орга, подготовьте заранее док с вопросами для обсуждения. По результат обсуждения дополните его митинг ноутсами и описанием решения или промежуточными результатами, открытыми вопросами и следующими шагами. Добавьте для визибилити свой менеджмент и менеджмент второй стороны. 8) Пишите и публикуйте дизайн доки. Все технические решения документируйте в виде дизайн дока, публикуйте это в виде поста, сообщения или письма. Добавьте туда для визибилити свой менеджмент. 9) Собеседуйте, будьте ментором, интерн менеджером и т.д. Одна из осей на перфоманс ревью - people. Чтобы получить хорошую оценку по этой оси можно много собеседовать людей, стать ментором, bootcamp ментором или ментором для стажеров.

Дожили, Meta открыла офис в Индии Сейчас пошли кандидаты из Индии, которых собеседуют в новый офис Мета в Индии. Прособеседовал несколько таких кандидатов подряд.

Минусы жизни в Люксембурге Плюсы жизни в Люксембурге Минусы, по моему мнению: 1) Мало опций для работы программистом. Из крупных работодателей, которые платят хорошо программистам и для работы нужен только английский, там только Амазон. Был еще микроофис Майкрософта, но не уверен, что он еще не закрылся. Остальные компании или меньше платят или еще требуют знание других языков (французский, например). Поэтому с большой вероятностью при смене работы вы потеряете в зп. 2) Мало разнообразия. Этот минус вытекает из того, что город и стана маленькие. Первые пару лет вам будет, что посмотреть и чем позаниматься. Далее все начнет приедаться и вы будете ходить в одни и теже заведения, посещать одни и теже ярмарки, спортзалы, магазины, кинотеатры и т.д. Если вам критично разнообразие, то это быстро надоест. 3) Дорогое жилье. Цены на недвигу большие, по сравнению с другими европейскими странами. Сравнимы с ценами на недвигу в Лондоне. Поэтому придется брать ипотеку на большие сроки (лет 25). Хотя из-за того, что ставка по ипотеке небольшая, месячный платеж будет не сильно больше арендной платы. 4) Хоть английский язык присутствует, его меньше, чем в Англии, США или Австралии. Вы все равно будете натыкаться на людей, которые не говорят на английском. Это могут быть коммунальные службы, например. Для получения гражданства, вам надо будет сдать экзамен по люксембургскому языку. Это что-то среднее между французским и немецким. Поучить годим вам его придется. 5) Рельеф. Город очень холмистый. По факту, в нем два уровня. Между ними есть лифт или крутой спуск/подьем. Поэтому приходится часто подниматься в гору, что достаточно утомительно, особенно, если тебе нужно в ближайший магазин и приходится делать для этого кардио.

Плюсы жизни в Люксембурге Я прожил в Люксембурге 3.5 года. Плюсы, по моему мнению: 1) Распространенность английского языка. Большинство местных жителей говорят на трех языках: английском, французском и немецком. Таких проблем с языком, как в других станах Европы, у вас будет сильно меньше. Достаточно знать английского, чтобы нормально там жить. 2) Безопасность. Это одна из самых безопасных стран мира. 3) Там очень тихо и спокойно. Население столицы - чуть больше ста тысяч человек. Днем, в будние дни, население сильно увеличивается, т.к. на работу приезжают люди из Франции и Германии. Но вечером в спальных районах очень тихо, спокойно и безопасно. 4) Хорошая медицина. Можно легко записаться к любому врачу в ближайшее время. Необязательно проходить через GP (терапевта). Высокое качество медицинских услуг. 5) Бесплатный общественный транспорт. Весь общественный транспорт, кроме такси, в стране бесплатные (автобусы, трамвай и т.д.) 6) Близость к Франции и Германии. На машине или общественном транспорте занимает всего один час, чтобы добраться до соседних стран. Многие даже ездят за покупками в другие страны (т.к. там дешевле). До Парижа ехать всего 2 часа на скоростном поезде. 7) Живя там, у вас есть blue card, которая позволяет ездить по всему Шенгену без виз. 8) Низкие процентные ставки по ипотеке. Когда я там жил, это было что-то типа 1%, сейчас 3%. 9) Это очень красивая страна. Много замков, красивой архитектуры, холмы, природа. Первое время кажется, что живешь в диснеевской сказке. 10) Налоги высокие, но меньше чем во многих европейский странах. 11) Наличие аэропорта. Несмотря на то, что страна маленькая, есть свой хороший международный аэропорт. Хоть в нем нет прямых рейсов во все страны, но есть рейсы с пересадкой в Париже и Франкфурте. 12) Наличие крупного офиса Амазона. Есть много позиций как в разработке так и в менеджменте. 13) Сауны. Там очень распространен такой вид отдыха как сауны. Их много по стране. Есть даже целый курорт из саун - Мондорф. 14) Много ресторанов высокого уровня (в том числе мишленовские). 15) Легко обменять права РФ на местные. Не надо сдавать экзамен, просто меняешь одни на другие. 16) Можно подать на гражданство после 5 лет жизни (не обязательно подряд, можно уехать, потом прожить еще. Нужно в сумме 5 лет). 17) Очень развитая инфраструктура. Хоть город и маленький, но есть все необходимое. Сочетание проживания в маленьком и тихом городке с инфраструктурой развитого мегаполиса. 18) Наличие посольства РФ. Если надо получить новый загран и еще что-то, все можно сделать в этом же маленьком городке.

Рейтинг городов по уровню преступности Уровень преступности взят с сайта https://www.numbeo.com. Взял популярные города среди программистов. Чем меньше рейтинг, тем безопасней. Дубай - самый безопасный. 1) Дубай, ОАЭ – 16.12 2) Мюнхен, Германия – 20.6 3) Цюрих, Швейцария - 23.3 4) Сеул, Южная Корея – 24.2 5) Прага, Чехия – 24.5 6) Токио, Япония – 24.7 7) Варшава, Польша – 25.5 8) Амстердам, Нидерланды – 28.4 9) Люксембург, Люксембург – 28.7 10) Лиссабон, Португалия - 31.3 11) Веллингтон, Новая Зеландия – 32.9 12) Валенсия, Испания – 33 13) Сидней, Австралия – 34.1 14) Москва, Россия – 35.6 15) Дюссельдорф, Германия – 35.7 16) Бостон, США – 39.7 17) Остин, США – 42.1 18) Ванкувер, Канада – 43 19) Торонто, Канада – 43.4 20) Берлин, Германия – 44.6 21) Франкфурт, Германия – 46.1 22) Окленд, Новая Зеландия – 50.1 23) Нью-Йорк, США – 50.7 24) Барселона, Испания – 51.7 25) Сиэтл, США – 53.9 26) Лондон, Великобритания – 55.1 27) Париж, Франция – 58 28) Сан-Франциско, США – 61.5

Среди сотрудников FAANG/Big Tech сейчас популярен выход на пенсию до 40 Несколько моих коллег так сделали. Вот типичный пример: к 39 накопил $3.5 миллиона. В Калифорнии или Нью Йорке это стоимость дома среднего класса. Поэтому он решил жить на $185k в год в Дубае. Это примерно 5% от сбережений, что можно покрыть доходами от инвестиций в индексы типа S&P 500, акции крупных команий и депозиты в банках. https://youtu.be/L-9BYcc6--A?si=tCjrL9wVU_zX6KWk

Andrej Karpathy выпустил новое видео с разбором того, как работает ChatGPT Andrej Karpathy это один из основателей Open AI и был директором в Tesla AI по разработке автопилота. Видео: https://youtu.be/7xTGNNLPyMI?si=pKZtOYql3Z4DQTns P.S. Другие его видео: Создание GPT с нуля Создание GPT-2

Типичный кандидат с литкод подготовкой Сегодня собеседовал кандидата с типичной хорошей литкод подготовкой. Задачи решил оптимально. Были небольшие ошибки в коде. Во время verification ручная проверка давалась тяжело, сам нашел только часть ошибок. Набор тест кейсов назвал неполный. Также неправильно оценил space и time complexity. Из-за этого оценка по verification и problem solving будут ниже, чем могли бы быть. Это достаточно типично для современной литкод подготовки. Т.к. литкод сам проверяет ваш код, вы написали примерный вариант, засабмитили, посмотрели, когда не работает, починили, засабмитили еще раз и т.д. также литкод не спрашивает space & time complexity.

Примеры: 1) Марк Цукерберг (Facebook) - Гарвард. 2) Сергей Брин, Ларри Пейдж (Google) - Cтэнфорд. 3) Безос (Амазон) - Принстон. 4) Бил Гейтс (Майкрософт) - Гарвард. 5) Сэм Альтман (Open ai) - Стэнфорд. 6) Николай Дуров (Вконтакте, Телеграм) - СпбГУ 7) Николай Сторонский (Revolut) - МФТИ 8) Skyeng - основатели из МФТИ и Бауманки

Стоит ли поступать в 2025 году в технические вузы c целью стать программистом? Краткий ответ: да. В мире до AI: 1) Наличие высшего технического образования в резюме является плюсом и/или критерием отбора, особенно на начальных стадиях карьеры (стажер, junior). Если у вас нет опыта работы в IT и вы в поисках своей первой работы, то при отборе по резюме отдадут предпочтение тому, у кого такое образование есть и его позовут на собес в первую очередь. Особенно, это является преимуществом в современных условия российского рынка труда программистов, где число выпускников курсов без образования очень много. Поэтому при отборе по резюме, наличие технического вуза будет большим плюсом. 2) В BigTech/FAANG и в другие топовые компании, наличие диплома бакалавра прямо указывается в требованиях вакансий программистов. Поэтому отсутствие образования для некоторых позиций будет блокером. 3) В BigTech/FAANG основной отбор по резюме (кого позвать на собес) ведется на основе названий компаний, где вы работали и вузов, где вы учились. Отсутствие топового вуза, можно компенсировать наличием топовой компании вашей страны. Но наличие вуза (желательно топового) повышает ваши шансы попаданий на собесы и без топовых компаний в резюме. 4) В технических вузах можно получить фундаментальное образование. Оно может быть разного качества, но все же. Это не изучение текущего тех стека, который меняется раз в 3-5 лет (это можно изучить самостоятельно или на курсах такое преподают). А это изучение алгоритмов и структур данных, архитектуры компьютера, операционные системы, ассемблер, основы баз данных, устройства сетей, системное программирование, компиляторы и т.д. Даже если вы это не будете использовать на практике, то это сформирует более глубокое понимание того, как на самом фундаментальном уровне все работает. В мире в AI: Когда я начинал работать программистом 18 лет назад, то в России программисты уже были, но их было на порядок меньше чем сейчас. Вузов, факультетов, которые бы выпускали программистов было очень мало. Поэтому за основу брали выпускников технических вузов (математика, физика, инженерия и т.д.) Предполагалось, что нужный склад ума у них уже есть и в процессе работы они изучат что надо самостоятельно. Я не учился на программиста и никогда не планировал им стать. Я учился на физика/инженерию. Но появилась новая область (программирование), в которую начали брать людей с таким образованием. Аналогично, что если AI сильно изменит или трансформирует программирование или его заменит полностью или частично, то появятся другие отрасли. В эти отрасли на первых этапах не будет специализированного образования, поэтому будут брать выпускников технических вузов. Просто потому что у них есть нужный склад ума. Большинство выпускников технических вузов не работает по прямой специальности. Поэтому, когда вы поступаете на инженерные специальности, или что-то связанное с физикой, математикой или химией, то вы не обязательно будете этим заниматься. Поэтому не надо рассматривать вуз как способ получения конкретных знаний для применения. Это просто показывает, что вы можете пройти какой-то отбор (поступить), и обучение физике, математике, computer science развивает в вас техническое мышление и умение быстро, много учиться в технических областях. Но если вы уже не в том возрасте, чтобы куда-то поступать, но сумели найти работу в IT, то не застаивайтесь, развивайтесь, занимайтесь самообразованием, растите по карьере/стремитесь попасть в топовые компании вашей страны. И на последок еще один миф, что топовые IT предприниматели нигде не учились и создали свой бизнес без универа. Большинство из них поступили в топовые вузы мира, и некоторые их бросили, т.к. параллельно с учебой создали свои бизнесы. Т.е. они сумели пройти туда отбор, что говорит об их интеллекте и подготовке. Если бы они не создали свои бизнесы будучи студентами, то они бы закончили эти топовые вузы и не бедствовали в любом случае.

Стоит ли собеседоваться в BigTech/FAANG если вы только начали готовиться/планируете начать или в процессе подготовки? Краткий ответ: да. С почти 100% вероятностью вы завалите собес. Но вы получите реальный опыт. Реальный опыт собеса сильно полезней, чем просто решать задачи на литкоде. Вы почувствуете на своем опыте структуру собеса, насколько вам комфортно общаться в рамках собеса на английском. Насколько вы волнуетесь, можете ли концентрироваться. Вы узнаете свой текущей уровень, сильные и слабые стороны. Но если я завалю собес, меня же больше не позовут на собес? Вас позовут снова или вы сами можете податься. В одну и ту же компанию можно собеседоваться раз в 6-12 месяцев. Плюс подобных компаний с десяток. Возможно, вам стоит отложить собес, если вы уже давно готовитесь и уже близки к завершению подготовки и вам надо еще 1-3 месяца. В таком случае имеет смысл завершить подготовку и пробовать уже после.

Собеседовал противоречивого кандидата Он PhD graduate, на позицию ресечера. Открыл резюме - там 4 страницы. Из опыта 3 стажировки, включая Microsoft. Также преподавание в универе. Причем по программированию, архитектуре, ML. Остальное - учеба и PhD. Он туда вставил все свои статьи, грамоты от бабушки и т.д. На собесе был тип, на вид лет 40. Хотя я ожидал, что будет лет 25. Может просто плохо сохранился. На собесе не смог решить ниодной задачи. Даже не смог написать без подсказок просто обход дерева(это 3 строки кода). И неправильно назвал алгоритмическую сложность обхода дерева. Часто не реагировал на подсказки и наводящие вопросы. Мне интересно, как он в Майкрософт попал. Или резюме фейковое.

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

Че там по замене программистов AI? Прошло больше 2 лет с момента релиза ChatGPT. Появились тулы для програмистов, такие как GitHub Copilot, Cursor, Devin. Сэм Альтман последние два года кормит всех завтраками, что вот вот зарелизятAGI. За последние несколько недель снова поднялся хайп после релиза DeepSeek и заявлений Зака, что в 2025 в Мета заменят мидлов на AI. Мои мысли по этому поводу: 1) На данный момент нет технологий, которые могут заменить даже Junior программистов. Программист это больше, чем написание кода с детальным описанием. Текущие тулы приближаются по написанию кода к Junior программистам. Но им все также нехватает агентности. Devin обладает примитивной агентностью, но ему все также далеко до кожаного программиста. 2) Заявления Зака это такие же заявления, как и заявления Альтмана. Они призваны нагнетать интерес к AI и влиять на стоимость акций компании. Более того, заявление скорее касается того, что AI будет кодить как мидл. Но агентности как у мидла у него гарантированно не будет. Он должен быть интегрирован со всеми тулами, быть в них очень эффективным. Более того, он должен обладать самостоятельностью и проактивно вступать в дискуссии с други людьми и агентами. Т.к. нужно много согласовывать, обсуждать и договариваться. Кроме того, куча информации и идей находится по прежнему в головах людей, а не в документации. 3) DeepSeek это про удешевление. Модель R1 хоть и опережает другие модели в бенчмарках, но не сильно. Они сильно лучше в плане ресурсов, необходимых для обучения и во время выполнения(inference/test time). 4) Текущие модели это скорее похоже на долгосрочную память в мозге и про интуитивное мышление. Обученная модель - это очень эффективный способ задампить весь интернет на один жесткий диск. А ее запуск - восстановление данных. Своего рода неточный, но эффективных архиватор. Данные хранятся не в исходном состоянии, а в виде весов огромной матрицы. Своего рода каждое новое понятие не заново с нуля описывается, а то, как оно связано с другими понятиями в разных контекстах. Это похоже на долговременную память человека. Человек тоже хранит много знаний в виде прочности связей между нейронами. А то как выполняется модель, похоже на то, как человек говорит первый попавшийся интуитивный ответ(как у Канемана в книге: "Думай медленно, решай быстро"). Это примерно, как быстрая система мозга. 5) Текущие модели все еще не умеют думать. У мозга есть вторая функция, кроме как давать интуитивные ответы из памяти - это думать медленно и более глубоко (как в известном примере про цену мяча и биты). Сейчас появляются технологии вроде Chain-of-Thought и другие reasoning модели на основе reinforcement learning, деревьев и метода Монте Карло. Но это все еще далеко от мозга. 6) Большие результаты на бенчмарках падают при смене имен переменных. Модели все также не умеют думать и просто натренированны на примерах готовых решений под эти тесты. Если поменять имена переменных в задачах, то результаты падают на 10-30%. Если еще больше шума внести, то результаты будут еще хуже. 7) Человек учится на порядки эффективней. LLM нужно скормить весь интернет, чтобы она решала задачи как человек. Человек же учится на данных, которые на порядки меньше в размерах. Соответственно, архитектура обучения мозга сильно лучше и нужно совершить еще ряд прорывов для улучшения архитектуры. А это все плохо предсказуемо. Последний крупный прорыв был в 2017 году с открытием Attention, что и привело к созданию ChatGPT. Может в версии 5.0 будут такие открытие, но есть сомнения. 8) LLM не имеет тех же механизмов памяти как человек. У человека есть краткосрочная и долгосрочная память. Есть механизм, который переносит часть памяти из краткосрочной в долгосрочную. Есть механизм забывание неважной информации. У LLM этого нет. Она обученна один раз на всем интернете. У нее есть контекст, но она не переобучивается на лету и не забывает ненужную информацию. Я знаю, что есть работы на эту тему, но на практике пока это не реализовано и не протестировано.

Если нашли ошибку, ее нужно исправить, это засчитывается как позитивный сигнал. Часто, кандидаты делают неправильные фиксы, которые ломают другие тест кейсы. По таймингу, на обсуждение и решение - 2-10 минут на задачу. Код - 5-10 минут. Верификация - 5. Если задача сложная и у вас 35-40 минут на задачу, то 10-15 минут обсуждение и решение. 10-15 минут на кодинг и 5-10 на проверку.

Структура coding interview в FAANG, оценивание и ошибки В FAANG-компании на позицию Software Engineer для всех уровней есть coding interview(3-4 таких собеседования), system design (0-2 собеседования в зависимости от левела) и поведенческое (1-2 в зависимости от левела или расспределенное по всех раундам, как в Amazon). Coding Interview обычно 3. Одно - screen и два на full-loop. Все собеседования длятся 45 минут. Структура: 1) Приветствие. 2-3 минуты. Интервьюер кратко представляется, сообщает структуру собеседования. 2) Решение coding задач. Обычно, это одна задача, иногда две. В Meta спрашивают всегда две задачи. Длится эта часть обычно 35-40 минут. В Amazon она длится 20-25 минут, т.к. там выделяется еще 15 минут на поведенческую часть (Amazon Leadership Principles). Это основная часть, все оценивание происходит тут. 3) Вопросы со стороны кандидата. 2-5 минут. Эта часть не влияет на оценивание, если, конечно, не создаст red flags, вроде оскорблений, неэтичного поведения и т.д. Оценивание и ошибки в процессе решения задач. Решение задачи состоит из 4 этапов: 1) Получение задачи и уточнение условий. Вам сообщают задачу. Часто пропуская некоторые условия или нечетко их формулируют. От вас ожидается, что вы уточните условия, сделаете предположения и их подтвердите. Или как минимум переформулируете задачу, чтобы удостовериться, что вы поняли задачу правильно. Тут оценивается прежде всего communication. Типичная ошибка - ничего не уточняя, сразу начинают ее решать. Часто это приводит к тому, что они решают другую задачу, не ту, которую имел ввиду интервьюер. Или решают ту, но получают плохую оценку по communication. 2) Обсуждение возможных решений и их сравнение. Тут нужно брейнстормить идеи решения, сравнить их между собой(space and time complexity) и выбрать оптимальный. Нужно подумать про возможные edge-cases и как ваш алгоритм будет их хэндлить. Тут оценивается problem solving скил и communication. Типичная ошибка - человек молчит и застревает. Проговаривайте мысли вслух, это позволит интервьюеру понять, где вы застряли и подсказать вам. Если вам надо состедоточиться и подумать самостоятельно 2-5 минут это нормально. Скажите это, подумайте и потом начните обсуждения. Еще типичные ошибки - кандидаты придумывают первое решение, которое пришло в голову и не пытаются его проанализировать и попытаться улучшить. В идеале вам нужно придумать решение, оценить space and time complexity, найти потенциальные улучшения, найти другое решение. Если решение оптимальное сходу, то проанализоровав space and time complexity можно показать, что принципиально лучше не сделать. Еще одна небольшая ошибка, это кандидаты не анализируют edge cases, где могут быть проблемы у вашего решения. Не валидация инпута, как многие думают, а где при валидном инпуте могут быть проблемы у алгоритма. 3) Coding. После обсуждения и согласования решения вам нужно конвертировать это в реальный код. Тут оценивается coding, вашу способность конвертировать идеи в работающий код. Также оценивается структура и читаемость кода. Сильно заморачиваться не надо, но делать его нечитаемым не стоит. Частые ошибки: незнание базового синтаксиса, незнание простейших библиотечных функций, не уделение внимания граничным условиям, edge cases. Опять же это не про валидацию инпута. Вы можете спросить интервьюера, можно ли считать инпут валидным и в 90% он скажет, что да. Нужно смотреть edge cases, когда ваш код может не работать при валидном инпуте. Еще типичные ошибки: не умение реализовывать базовые алгоритмы, не умение трансформировать мысли в код. 4) Verification. Оценивается verification скил. Тут требуется проверить, что ваш код работает правильно, найти и исправить ошибки если есть. Код нужно проверять руками, без запуска. Нужно подобрать примеры и пройтись строка за строкой и убедиться, что на этих примерах это будет работать правильно. Также нужно устно сказать, какие еще тест кейсы вы бы использовали в реальном юнит тесте. Типичные ошибки: кандидаты не умеют дебажить код руками, делают проверку слишком high level, без деталей, и упускают баги.