TGTGInsightтелеграм анализLIVE / telegram public index
← FAANG зовет! | Работа в ИТ от $100К в год
FAANG зовет! | Работа в ИТ от $100К в год avatar

TGINSIGHT POST

Post #12

@faangiscalling

FAANG зовет! | Работа в ИТ от $100К в год

Прегледи471Брой прегледи
Публикувано28.1128.11.2023 г., 11:24
Съдържание на публикацията

Съдържание

Как я решил 100 задач на LeetCode и что я делал неправильно? 👨🏼‍💻 LeetCode – сайт с алгоритмическими задачами, похожими на задачи с собеседований в FAANG и других ИТ-компаниях. Задач там тысячи, они все сгруппированы по сложности (Easy, Medium и Hard – простые, средние и сложные), по теме и по популярности на собеседованиях в конкретных компаниях (можно, например, выбрать задачки, которые чаще всего встречаются на собеседованиях в Apple или Google). Поэтому решение задачек на LeetCode является одним из основных “модулей” в программе подготовки к собеседованиям в топовые ИТ-компании. Решив за полгода более 100 задач там и общаясь с другими ребятами, я понял, что я делал не так, а что я делал правильно. Делюсь с вами этим, чтобы у вас подготовка шла эффективнее и быстрее. 1. Системность ✅ Многие начинают решать задачки случайным образом, начиная с простых и перепрыгивая между разными темами. Это – неэффективный подход. Попробовав так пару дней, я решился и купил их курс подготовки и пошел решать по темам – сначала читаю и изучаю теорию (точнее вспоминаю ее из института), потом разбираю решения и уже потом решаю сам. Пожалуй, эта одна из лучших моих инвестиций в $100 2. Надежда на чудо❌ Сначала я думал, что вот надо просто подольше посидеть и как следует все обдумать, еще раз перечитать условие задачи, пописать код и проверить подошел ли ответ. И так проходил час, другой, третий. Потом стало понятно, что если непонятно как решить задачу в первые 5-10 минут, то чуда не случится. Озарение внезапно не приходит. Случайный код не дает вдруг правильный ответ и “зеленые” тесты. Поэтому я стал просто изучать решения задач (я из курса, но вы можете и просто загуглить по номеру и названию задачи – есть много видео-разборов), смотреть какие приемы используются и потом уже, разобравшись и поняв алгоритм, шел решать другие задачи по теме. И это уже действительно позволяло решать задачу за 5-10-20 минут. 3. Нет четкой цели, не меряешь прогресс ❌ Сначала я просто решал задачки, но со временем стал замечать, что не чувствовал прогресс. Это влияло и на самооценку, и на мотивацию. Тогда я завел тетрадку-дневник, куда стал записывать как разборы задач, так и проблемы, на которых я “зависал” в конкретных задачах, чтобы осмыслить их и реже допускать в будущем. Также я стал записываать каждый раз после решения простую статистику: ХХ задач решено, Y%от курса пройдено, рейтинг с системе ХХХ (да, там меряют твое место среди других решающих. Вроде ерунда, а на мотивацию работает. Например, я начинал и был позади 2-х миллионов человек, сейчас в 800 тысячах лучших). Это сработало – появилось приятное ощущение роста и динамики. И для справки, по мнению экспертов решение даже 150 задач дает уже больше 80% успеха прохождения интервью по алгоритмам в FAANG. 4. Выбор неправильного языка программирования ❌ Как понять, что язык неправильный? if (Язык !== Python) print (‘Язык неправильный’) 😀 Так как я последнее время в основном пишу на JavaScript/TypeScript все свои задачи я решал именно на JavaScript. Но сейчас я буду переходить на Python, так как на нем любое решение задачи записывается гораздо проще (приложил скриншот со сравнением). Мы это обсуждали и с моим знакомым из Google в Германии – он тоже однозначно “топил” за Python, даже если ты пишешь на других языках (он, как и я, пишет на JavaScript/TypeScript). Поэтому нужно (и гораздо проще) выучить основы синтаксиса Python и записывать решение 100+ задач быстрее, чем каждый раз фокусироваться не на самом алгоритме, а на правильной расстановке фигурных скобок (как в JavaScript или C++). Помимо этого, в нем много встроенных структур данных, типа кучи (heap), реализации которой в JavaScript вообще нет и на интервью пришлось бы воспроизводить ее, вместо просто использования встроенного функционала языка (а задача-то не про то, как написать реализацию кучи, а как ее правильно использовать и фокус должен быть на этом). Буду раз узнать о вашем опыте решения LeetCode, ваших ошибках и успехах, в комментариях 👋 #leetcode @faangiscalling