Тимур Тибеев | BigTechDream – Telegram
Тимур Тибеев | BigTechDream
2.15K subscribers
99 photos
5 videos
1 file
337 links
Senior Backend Engineer @ Canva
Бывший Яндексоид

🧑🏻‍💻Пишу про карьерный рост в IT
📚Делюсь советами, как пройти собеседования в MAANG
👨‍🏫Обучаю алгоритмам и структурам данных

👋Новопришедшие, читайте закрепленный пост
Download Telegram
Почему синьорам тяжелее пройти в Google, чем студентам?

🤔 Задумывались ли вы о том, почему на собеседованиях в FAANG не спрашивают про языки программирования, про технологии и фреймворки?
Вы не услышите вопрос - как устроен Garbage Collector или как работает HTTP запрос, вместо этого будут алгоритмические задачки - найти кратчайший маршрут между вершинами, повернуть дерево, убрать все нолики из массива и так далее.

Почему так?

📏 Принцип, которым руководствуются в Google и другие тех гиганты - принцип непредвязтости (unbiased). Идея такая - смышленный инженер, сможет завтра изучить любую технологию, любой язык программирования и даже написать свой фреймворк. Опыт конечно играет свою роль, но проявляется больше при проектировании систем (system design) и поведенческих (behavioral) интервью.

🚴‍♀️ Из-за того, что технологии меняются слишком быстро (каждый день новый JS framework), Google просто не может завязаться на них, не успеет. Можно для примера сравнить, на чем писали люди 5 лет назад и на чем пишут сейчас. Вот и пришлось построить систему, которая по определенным параметрам: data structures, system design, behavioral на выход отдает одно число: L3, L4, L5. Таким образом Google может сравнивать одного кандидата с другим и выбирать лучших. Конечная оценка конечно коррелирует с уровнем самого разработчика, но упускает один важный момент - практический опыт человека, из-за этого крутые ребята могут остаться за бортом.

🙁 В Яндекса я периодически собеседую ребят 30+, с большим багажом знаний, полезного опыта и критически важных навыков. Основная проблема этих ребят, что они не могут осилить задачки на алгоритмы и структуры данных, просто потому что их ежедневная деятельность не связана с посторением Минимального Оставного Дерева или динамическим программированием. С опытом понимаешь, что разработка внутри Google по сути такая же как в внутри Kaspi, те же базы, те же технологии, отличаются лишь детали. Теперь представьте, разработчик прошедший огонь, воду и лежаший прод - это золото для любого соискателя, за битого двух небитых дают. Такой человек может решать задачи любого уровня и достигать поставленных бизнесом показателей. Но такие ребята обычно получают оценки уровня middle. Не справедливо? Соглашусь.

👩‍🎓 Поэтому когда ты молод и только погружаешься в мир программирования, тебе легче уделять время leetcode, codeforces, topcoder. Среди студентов IT специальностей проходят всевозможные ACM соревнования, практически в каждом университете есть курсы по Алгоритмам и Структурам Данных. Все мечтают о Google и ты находишься в этом состоянии, и готов шерстить Кормена и Кнута ночами напролет. Важно как минимум получить необходимую базу, попробовать и провалить несколько собеседований в FAANG, с годами такие штуки даются намного сложнее.
👍7
🎯 Сколько задачек нужно решить, чтобы попасть в Гугол?

👩‍💻 Наткнулся на такую статью https://medium.com/@siddhism/how-i-prepared-for-google-0-leetcode-questions-to-200-questions-e37690ebce85. Парень делится своим опытом подготовки к интервью в Google. Он решил 200 задач на leetcode.com, 60 легких, 120 средних и 20 сложных. В результате он смог получить оффер.

🏋️ Конечно же можно не пройти в FAANG и с 500 задачами. Как и количество подходов в тренажерном зале не означает, что вы станете следующим Рони Колманом. Но взаимосвязь между количеством решенных задач и вероятностью успешного прохождения интервью все таки присутствует.

🧠 Поэтому запускаю ежедневный челендж, каждый день буду публиковать одну задачу из leetcode. Цель решить 200 задач: 60 легких, 100 средних и 40 сложных задач. Будем решать задачки вместе 🤝
🔥14
Тимур Тибеев | BigTechDream pinned «🎯 Сколько задачек нужно решить, чтобы попасть в Гугол? 👩‍💻 Наткнулся на такую статью https://medium.com/@siddhism/how-i-prepared-for-google-0-leetcode-questions-to-200-questions-e37690ebce85. Парень делится своим опытом подготовки к интервью в Google. Он…»
🧩 Задача 1/200.
https://leetcode.com/problems/remove-letter-to-equalize-frequency/
Difficulty: Easy, Acceptance: 17.4%
Делитесь своими решениями в комментариях, для удобства можно использовать https://pastebin.com/

#problemoftheday
👍1
🧩 Задача 2/200.
https://leetcode.com/problems/latest-time-by-replacing-hidden-digits/
Сложность: Легкая, Процент успешных попыток: 42.1%

🤓 Условие на русском:
Нужно реализовать метод, который на вход принимет строку в формате hh:mm, где некоторые цифры заменены символом ?.
Правильным временем считаются те, что в промежутку от 00:00 до 23:59 включительно.
Метод должен возвращать самое позднее время, которое может быть получено, если заменить символы ? на цифры.
Пример:
Ввод: "2?:?0"
Результат: "23:50"

Если есть вопросы, пишите в комментариях, будем вместе думать.
Делитесь решениями, https://pastebin.com/ в помощь

В течении дня скину решение на Java, кстати если интересно решение на других языках, тоже дайте знать, напишу.

#problemoftheday
👍5
😉 Мини тест

Какая конечная сложность у данного кода? ``` for (int i = 0; i < 100; i++) { for (int j = 0; j < N; j++) { ... } } ```
Anonymous Quiz
30%
O(100 * N)
30%
O(N)
0%
O(100)
40%
O(N^2)
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
👍1