Для тех кто думает, что недвига в Лондоне стоит каких-то космических денег
Если сравнивать квартиры примерно одного уровня скажем в Лондоне и Москве, разница максимум в два раза. Например, зашел на cian, чтобы поискать что-то похожее на то что у меня. Все что нашел ~140 кр аренда. Ипотека соответственно еще больше. Вот пример аналогичной недвиги в Москве: https://www.cian.ru/rent/flat/295714613/ У меня 3 комнаты, 2 балкона с видом на реку. При этом внешне дома и дворы выглядят намного лучше + консьерж+бесплатный фитнес, бесплатный бассейн, джакузи и сауна. В квартире на циане ничего из этого нет, поэтому что-то аналогичное или не найти или еще дороже будет.
Просто зачастую начинают сравнивать однокомнатную хрущевку в человейнике на окраине Москвы, с трешкой в хорошем районе со всей инфраструктурой. Типа, да я в Москве или своей деревне сниму миллион метровый особняк за такие деньги. Нет, не снимете.
Если сравнивать квартиры примерно одного уровня скажем в Лондоне и Москве, разница максимум в два раза. Например, зашел на cian, чтобы поискать что-то похожее на то что у меня. Все что нашел ~140 кр аренда. Ипотека соответственно еще больше. Вот пример аналогичной недвиги в Москве: https://www.cian.ru/rent/flat/295714613/ У меня 3 комнаты, 2 балкона с видом на реку. При этом внешне дома и дворы выглядят намного лучше + консьерж+бесплатный фитнес, бесплатный бассейн, джакузи и сауна. В квартире на циане ничего из этого нет, поэтому что-то аналогичное или не найти или еще дороже будет.
Просто зачастую начинают сравнивать однокомнатную хрущевку в человейнике на окраине Москвы, с трешкой в хорошем районе со всей инфраструктурой. Типа, да я в Москве или своей деревне сниму миллион метровый особняк за такие деньги. Нет, не снимете.
CIAN
Сдаётся 3-комнатная квартира 120 000 руб./мес., 100 м.кв., этаж 13/20
Нагатинская наб., 10к3, Москва м. Коломенская
👍4❤1👎1
Почему решив 1500 задач на leetcode вы не сможете получить офер в FAANG
Свой первый офер в FAANG(в Amazon) я получил не решая задач на leetcode вообще. Готовился я туда в 2015, 2016 годах и про leetcode не знал вообще. Тогда он не был чем-то большим и известным. Я готовился по книгам. В частности по Cracking the Coding Interview.
На leetcode свою первую задачу я решил 6 лет назад. И активно использовал его года 2-3. Это помогло мне получить офер в Facebook. Но тогда я еще решал задачи на algoexpert.io. Надо сказать, что собеседование в Facebook сложнее, чем в Amazon в среднем. Но и компенсация выше.
Стоит ли решать 1500 задач на leetcode и поможет ли вам это получить офер в FAANG?
Я думаю, что это неэффективная трата времени. Это не гарантирует, что вы пройдете собеседование.
Во-первых, coding собеседования это только половина собеседований, которые нужно пройти, если вы не интерн. Есть еще system design и поведенческое собеседование. На уровень staff нужно пройти два system design. Leetcode вам в этом не поможет, от слова совсем. А решив 1500 задач на leetcode вы потратите коллосальное количество времени на один аспект собеседования и не уделите должное внимание остальным аспектам.
Во-вторых, это не гарантирует, что вы пройдете coding собеседование. На coding собеседовании оценивается problem solving, coding, communication и verification/testing. Leetcode не поможет вам в communication вообще. И скорее всего не поможет в verification/testing. Т.к. там автоматическая система проверки и вам не надо вручную проверять ваш код и глубоко в него погружаться. Более того, в зависимости от того как вы решали эти 1500 задач, далеко не факт, что вы делали это оптимальным способом, за нужное время и не просто копипастили решения и сабмитили просто поверхностно разобравшись с чьим-то решением. Поэтому само число почти ничего не гарантирует. При идеальной подготовке вам может хватить 100-200 правильно подобранных задач + правильный подход к обучению, чтобы получить офер в FAANG. Возможно, не в Google или Facebook, где собесы сложнее, но в Apple, Amazon, Uber, Microsoft, Lyft.
Свой первый офер в FAANG(в Amazon) я получил не решая задач на leetcode вообще. Готовился я туда в 2015, 2016 годах и про leetcode не знал вообще. Тогда он не был чем-то большим и известным. Я готовился по книгам. В частности по Cracking the Coding Interview.
На leetcode свою первую задачу я решил 6 лет назад. И активно использовал его года 2-3. Это помогло мне получить офер в Facebook. Но тогда я еще решал задачи на algoexpert.io. Надо сказать, что собеседование в Facebook сложнее, чем в Amazon в среднем. Но и компенсация выше.
Стоит ли решать 1500 задач на leetcode и поможет ли вам это получить офер в FAANG?
Я думаю, что это неэффективная трата времени. Это не гарантирует, что вы пройдете собеседование.
Во-первых, coding собеседования это только половина собеседований, которые нужно пройти, если вы не интерн. Есть еще system design и поведенческое собеседование. На уровень staff нужно пройти два system design. Leetcode вам в этом не поможет, от слова совсем. А решив 1500 задач на leetcode вы потратите коллосальное количество времени на один аспект собеседования и не уделите должное внимание остальным аспектам.
Во-вторых, это не гарантирует, что вы пройдете coding собеседование. На coding собеседовании оценивается problem solving, coding, communication и verification/testing. Leetcode не поможет вам в communication вообще. И скорее всего не поможет в verification/testing. Т.к. там автоматическая система проверки и вам не надо вручную проверять ваш код и глубоко в него погружаться. Более того, в зависимости от того как вы решали эти 1500 задач, далеко не факт, что вы делали это оптимальным способом, за нужное время и не просто копипастили решения и сабмитили просто поверхностно разобравшись с чьим-то решением. Поэтому само число почти ничего не гарантирует. При идеальной подготовке вам может хватить 100-200 правильно подобранных задач + правильный подход к обучению, чтобы получить офер в FAANG. Возможно, не в Google или Facebook, где собесы сложнее, но в Apple, Amazon, Uber, Microsoft, Lyft.
👍9🔥5
Как решать алгоритмические задачи на подготовке, чтобы это было эффективно
1) Составьте список задач, которые вы хотите решить (план). Этот план должен быть индивидуальным в зависимости от ваших целей и текущего уровня. Если вы только приступаете, то этот список должен включать задачи на все основные темы: two pointers, arrays, strings, hashmaps, queues, stacks, binary search, sorting, topological sorting, priority queue, binary trees and tree traversal, binary search tree, trie (prefix/suffix tree), graphs (dfs, bfs), dynamic programming. А также включать на группу тем задачи разного уровня сложности. Начиная от easy и много задач medium, можно добавить пару hard. Если вы не начинающий, то это могут быть задачи только medium на конкретную тему или темы, которую вы хотите прокачать. Если вы хотите прособеседоваться на горизонте 3-6 месяцев в конкретную компанию - просто отфильтруйте на leetcode по компании и частоте и решите первые 100 задач по частоте для этой компании. Книга Cracking The Coding Interview и сайт algoexpert.io по сути уже являются такой подборкой + с очень хорошими разборами решений. И подойдут для начинающих. Я могу тоже набросать такой план с задачами с leetcode в следующем посте.
2) Попробуйте решить задачу сначала самостоятельно. Не открывайте сразу решение. Т.к. сразу прочитав решение, вы не научитесь решать задачи самостоятельно. Более того, у вас оно быстро испарится из памяти + вы не вникните в детали и сложности решения. Потратьте 30 минут - 1 час на самостоятельное обдумывание задачи, даже если у вас не будет продвижения, вы осознаете в чем сложность задачи и у вас возникнет эмоциональный отклик на эти моменты. И когда вы будете смотреть решение, у вас будут моменты типа: "ага, вот как можно преодолеть то, на чем вы застряли и не могли придумать как это решить". В таком случае вы лучше запомните решение, и это знание будет индивидуальным, т.к. вы особенно хорошо запомните моменты, с которыми именно у вас возникли проблемы. Вы запомните, то чего не хватило вам при ваших размышлениях. Это и есть рост. Эти 30 минут-1 час, когда вы думаете и не можете решить являются ключевыми и самыми ценными в вашем росте. Именно после того, как вы сами подумаете, вы поймете в чем конкретно сложность задачи именно для вас, у вас возникнет эмоциональная привязка к задаче и разобравшись в решении, вы закроете ваши индивидуальные пробелы. Делая так, вы можете сократить число задач, которые вам надо решить на подготовке для выработки скила в несколько раз.
3) Если у вас собеседования по алгоритмическим задачам на горизонте 3-6 месяцев, то при решении задач моделируйте условия собеседования при решении задачи. После прочтения условия, попробуйте его переформулировать своими словами (если собеседование будет на английском, то переформулируйте условие задачи своими словами на английском). Подумайте какие уточняющие вопросы вы бы задали на реальном собеседовании (на leetcode задачи формулируются однозначно, поэтому представьте, что части условий нет и вам надо их уточнить). После решения задачи, попробуйте не сабмитить сразу свое решение, пройдитесь по коду на примерах и продебажте ваш код. Какие будут значения переменных на каждой итерации цикла или рекурсивном вызове, какой будет результат работы вашего кода. Если он работает не правильно, поправьте ошибки сами до сабмита кода.
4) Делайте упор на решении medium задач. На реальном собеседовании большинство задач будет medium уровня leetcode. Если вы только начинаете готовиться, то начинайте конечно с easy, но как только на какую-то тему вы easy решаете легко, переходите на medium, решать 300 easy задач смысла никакого нет, роста у вас не будет.
1) Составьте список задач, которые вы хотите решить (план). Этот план должен быть индивидуальным в зависимости от ваших целей и текущего уровня. Если вы только приступаете, то этот список должен включать задачи на все основные темы: two pointers, arrays, strings, hashmaps, queues, stacks, binary search, sorting, topological sorting, priority queue, binary trees and tree traversal, binary search tree, trie (prefix/suffix tree), graphs (dfs, bfs), dynamic programming. А также включать на группу тем задачи разного уровня сложности. Начиная от easy и много задач medium, можно добавить пару hard. Если вы не начинающий, то это могут быть задачи только medium на конкретную тему или темы, которую вы хотите прокачать. Если вы хотите прособеседоваться на горизонте 3-6 месяцев в конкретную компанию - просто отфильтруйте на leetcode по компании и частоте и решите первые 100 задач по частоте для этой компании. Книга Cracking The Coding Interview и сайт algoexpert.io по сути уже являются такой подборкой + с очень хорошими разборами решений. И подойдут для начинающих. Я могу тоже набросать такой план с задачами с leetcode в следующем посте.
2) Попробуйте решить задачу сначала самостоятельно. Не открывайте сразу решение. Т.к. сразу прочитав решение, вы не научитесь решать задачи самостоятельно. Более того, у вас оно быстро испарится из памяти + вы не вникните в детали и сложности решения. Потратьте 30 минут - 1 час на самостоятельное обдумывание задачи, даже если у вас не будет продвижения, вы осознаете в чем сложность задачи и у вас возникнет эмоциональный отклик на эти моменты. И когда вы будете смотреть решение, у вас будут моменты типа: "ага, вот как можно преодолеть то, на чем вы застряли и не могли придумать как это решить". В таком случае вы лучше запомните решение, и это знание будет индивидуальным, т.к. вы особенно хорошо запомните моменты, с которыми именно у вас возникли проблемы. Вы запомните, то чего не хватило вам при ваших размышлениях. Это и есть рост. Эти 30 минут-1 час, когда вы думаете и не можете решить являются ключевыми и самыми ценными в вашем росте. Именно после того, как вы сами подумаете, вы поймете в чем конкретно сложность задачи именно для вас, у вас возникнет эмоциональная привязка к задаче и разобравшись в решении, вы закроете ваши индивидуальные пробелы. Делая так, вы можете сократить число задач, которые вам надо решить на подготовке для выработки скила в несколько раз.
3) Если у вас собеседования по алгоритмическим задачам на горизонте 3-6 месяцев, то при решении задач моделируйте условия собеседования при решении задачи. После прочтения условия, попробуйте его переформулировать своими словами (если собеседование будет на английском, то переформулируйте условие задачи своими словами на английском). Подумайте какие уточняющие вопросы вы бы задали на реальном собеседовании (на leetcode задачи формулируются однозначно, поэтому представьте, что части условий нет и вам надо их уточнить). После решения задачи, попробуйте не сабмитить сразу свое решение, пройдитесь по коду на примерах и продебажте ваш код. Какие будут значения переменных на каждой итерации цикла или рекурсивном вызове, какой будет результат работы вашего кода. Если он работает не правильно, поправьте ошибки сами до сабмита кода.
4) Делайте упор на решении medium задач. На реальном собеседовании большинство задач будет medium уровня leetcode. Если вы только начинаете готовиться, то начинайте конечно с easy, но как только на какую-то тему вы easy решаете легко, переходите на medium, решать 300 easy задач смысла никакого нет, роста у вас не будет.
👍27❤8💘2
Как не забыть решения задач и алгоритмы
В дополнение к прошлому посту.
Кроме комбинации самостоятельного решения и обдумывания + последующий разбор оптимального решения я рекомендую следующие методики для закрепления и запоминания. Это работает для меня, для себя вы можете придумать что-то другое:
1) писать решения и просто стандартные алгоритмы ручкой на бумаге. Это позволяет выработать мышечную память + избавиться от всевозможных подсказок в виде подсветки синтаксиса, подчеркиваний, тултипов и т.д. это будут ваши чистые остаточные знания, а не чьи-то знания из интернета
2) Расскажите самому себе, коллеге, другу, жене, мужу решение задачи, которую вы решили сами или не могли решить и смогли разобраться с решением.
3) периодически повторяйте алгоритмы и задачи. Память устроена так, что забывание максимально вначале. Потом оно замедляется. Вначале повторяйте чаще, после реже и реже. Я многие задачи перерешивал 3-5 раз. А алгоритмы выписывал на бумажке более 10-20 раз. Сейчас я этого не делаю, но могу написать без подготовки любую основную сортировку или dfs/bfs за 3 минуты если меня разбудить ночью.
Это не значит, что вам нужно делать тоже самое, возможно, у вас есть свои подходы к запоминанию, к которым вы привыкли. Применяйте их.
В дополнение к прошлому посту.
Кроме комбинации самостоятельного решения и обдумывания + последующий разбор оптимального решения я рекомендую следующие методики для закрепления и запоминания. Это работает для меня, для себя вы можете придумать что-то другое:
1) писать решения и просто стандартные алгоритмы ручкой на бумаге. Это позволяет выработать мышечную память + избавиться от всевозможных подсказок в виде подсветки синтаксиса, подчеркиваний, тултипов и т.д. это будут ваши чистые остаточные знания, а не чьи-то знания из интернета
2) Расскажите самому себе, коллеге, другу, жене, мужу решение задачи, которую вы решили сами или не могли решить и смогли разобраться с решением.
3) периодически повторяйте алгоритмы и задачи. Память устроена так, что забывание максимально вначале. Потом оно замедляется. Вначале повторяйте чаще, после реже и реже. Я многие задачи перерешивал 3-5 раз. А алгоритмы выписывал на бумажке более 10-20 раз. Сейчас я этого не делаю, но могу написать без подготовки любую основную сортировку или dfs/bfs за 3 минуты если меня разбудить ночью.
Это не значит, что вам нужно делать тоже самое, возможно, у вас есть свои подходы к запоминанию, к которым вы привыкли. Применяйте их.
🔥18❤5👍4💘3
Подборка вопросов и ответов для подготовки к собеседованию на Java программиста
#java #interview #собеседование
Статьи, которые были на medium, мигрировал на dev.to. Напишите, если есть какие-то проблемы с форматированием или ссылками после миграции.
Общие вопросы:
1) Методы класса Object
2) Иерархия и типы исключений
3) GC
4) Сравнение строк в Java
Коллекции:
5) HashMap
6) ArrayList vs LinkedList
7) Иерархия коллекций в Java
8) Иерархия Map
9) Maximum ArraySize
Многопоточность:
10) Перевод между банковскими аккаунтами (dead-lock).
11) Ping-Pong (wait-notify).
12) Приостанавливаемый поток.
13) Подборка вопросов по многопоточности
14) Напечатать последовательность чисел при помощи нескольких потоков на Java.
15) ConcurrentModificationException
16) Thread Safe Singleton
17) Обедающие философы
18) Реализовать потокобезопасную блокирующую очередь на Java ограниченного размера
19) Реализовать потокобезопасный неблокирующий стек на Java
20) Daemon потоки
21) Является ли immutable class в Java Thread safe?
22) Implicit Lock Reentrancy
SQL:
23) Типы SQL joins
24) Плюсы и минусы индексов
#java #interview #собеседование
Статьи, которые были на medium, мигрировал на dev.to. Напишите, если есть какие-то проблемы с форматированием или ссылками после миграции.
Общие вопросы:
1) Методы класса Object
2) Иерархия и типы исключений
3) GC
4) Сравнение строк в Java
Коллекции:
5) HashMap
6) ArrayList vs LinkedList
7) Иерархия коллекций в Java
8) Иерархия Map
9) Maximum ArraySize
Многопоточность:
10) Перевод между банковскими аккаунтами (dead-lock).
11) Ping-Pong (wait-notify).
12) Приостанавливаемый поток.
13) Подборка вопросов по многопоточности
14) Напечатать последовательность чисел при помощи нескольких потоков на Java.
15) ConcurrentModificationException
16) Thread Safe Singleton
17) Обедающие философы
18) Реализовать потокобезопасную блокирующую очередь на Java ограниченного размера
19) Реализовать потокобезопасный неблокирующий стек на Java
20) Daemon потоки
21) Является ли immutable class в Java Thread safe?
22) Implicit Lock Reentrancy
SQL:
23) Типы SQL joins
24) Плюсы и минусы индексов
DEV Community
faangmaster — DEV Community Profile
Мой телеграм: https://t.me/faangmaster
Мой youtube: https://www.youtube.com/@faangmaster
Мой youtube: https://www.youtube.com/@faangmaster
🔥15❤3👍3💘3
Подборка алгоритмических задач с решениями и описание алгоритмов уже опубликованных в этом канале
#interview #собеседование #алгоритмы #подборка
Смигрировал статьи с medium на dev.to + обновил подборку.
Как решать алгоритмические задачи на подготовке, чтобы это было эффективно
Как не забыть решения задач и алгоритмы
Two Pointers:
1) Проверка на палиндром.
2) Усложненная версия проверки на палиндром.
3) Merge Two Sorted Arrays
4) Самая длинная палиндромная подстрока
5) Удалить дубликаты в отсортированном массиве
6) Видео: Merge Intervals
HashTable:
7) Two Sum
8) Видео: Сгруппировать анаграммы
Stack:
9) Проверить скобочное выражение.
Sorting:
10) Видео: Top k elements
LinkedList:
11) Удалить n-й элемент с конца в односвязном списке
12) Deep Copy списка со ссылкой на случайный элемент.
BinarySearch:
Описание алгоритма BinarySearch.
13) Пропущенный элемент в отсортированном массиве.
14) Пиковый элемент.
15) Число итераций в бинарном поиске.
16) Первая плохая версия
DFS:
Описание алгоритма DFS.
17) Flood Fill.
18) Видео: Число Островов
BFS:
Описание алгоритма BFS.
19) Проверить полноту дерева.
20) Обход дерева по уровням.
Binary Tree:
Алгоритмы обхода двоичного дерева
21) Invert Binary Tree
22) BranchSums
23) Максимальная высота дерева
24) Максимальная сумма пути в бинарном дереве
25) Сумма элементов бинарного дерева поиска в диапазоне значение
Dynamic Programming:
Основные этапы решения задач на динамическое программирование Top-Down методом
26) Top Down подход на примере задачи про ступеньки
27) Задача на динамическое программирование. Разделение на слова.
28) Количество дождевой воды
29) Bottom-up подход: разменять деньги
#interview #собеседование #алгоритмы #подборка
Смигрировал статьи с medium на dev.to + обновил подборку.
Как решать алгоритмические задачи на подготовке, чтобы это было эффективно
Как не забыть решения задач и алгоритмы
Two Pointers:
1) Проверка на палиндром.
2) Усложненная версия проверки на палиндром.
3) Merge Two Sorted Arrays
4) Самая длинная палиндромная подстрока
5) Удалить дубликаты в отсортированном массиве
6) Видео: Merge Intervals
HashTable:
7) Two Sum
8) Видео: Сгруппировать анаграммы
Stack:
9) Проверить скобочное выражение.
Sorting:
10) Видео: Top k elements
LinkedList:
11) Удалить n-й элемент с конца в односвязном списке
12) Deep Copy списка со ссылкой на случайный элемент.
BinarySearch:
Описание алгоритма BinarySearch.
13) Пропущенный элемент в отсортированном массиве.
14) Пиковый элемент.
15) Число итераций в бинарном поиске.
16) Первая плохая версия
DFS:
Описание алгоритма DFS.
17) Flood Fill.
18) Видео: Число Островов
BFS:
Описание алгоритма BFS.
19) Проверить полноту дерева.
20) Обход дерева по уровням.
Binary Tree:
Алгоритмы обхода двоичного дерева
21) Invert Binary Tree
22) BranchSums
23) Максимальная высота дерева
24) Максимальная сумма пути в бинарном дереве
25) Сумма элементов бинарного дерева поиска в диапазоне значение
Dynamic Programming:
Основные этапы решения задач на динамическое программирование Top-Down методом
26) Top Down подход на примере задачи про ступеньки
27) Задача на динамическое программирование. Разделение на слова.
28) Количество дождевой воды
29) Bottom-up подход: разменять деньги
DEV Community
faangmaster — DEV Community Profile
Мой телеграм: https://t.me/faangmaster
Мой youtube: https://www.youtube.com/@faangmaster
Мой youtube: https://www.youtube.com/@faangmaster
👍17❤5👎1🔥1
Подборка статей, которые я уже написал и опубликовал в этом канале по system design
#systemdesign
Обновление подборки + статьи с medium смигрировал на dev.to
1) Load Balancers 1
2) Load Balancers 2
3) Load Balancers 3
4) Consistent Hashing
5) Data Partitioning/Sharding
6) Design Web Crawler
7) Дизайн Uber/Яндекс Такси
8) Дизайн новостной ленты соцсети типа Twitter или Facebook
9) Availability
10) Consistency
11) Дизайн мессенджера Telegram
12) Обработка ошибок при вызове другой компоненты
#systemdesign
Обновление подборки + статьи с medium смигрировал на dev.to
1) Load Balancers 1
2) Load Balancers 2
3) Load Balancers 3
4) Consistent Hashing
5) Data Partitioning/Sharding
6) Design Web Crawler
7) Дизайн Uber/Яндекс Такси
8) Дизайн новостной ленты соцсети типа Twitter или Facebook
9) Availability
10) Consistency
11) Дизайн мессенджера Telegram
12) Обработка ошибок при вызове другой компоненты
DEV Community
faangmaster — DEV Community Profile
Мой телеграм: https://t.me/faangmaster
Мой youtube: https://www.youtube.com/@faangmaster
Мой youtube: https://www.youtube.com/@faangmaster
👍16🔥5❤3👎1😱1
Алгоритм топологической сортировки
Кратко, описал алгоритм топологической сортировки для ориентированного графа с реализацией на Java:https://dev.to/faangmaster/topologhichieskaia-sortirovka-4eee
Это третий алгоритм, который нужно знать на графах (два другие это DFS и BFS). Он встречается намного реже на собеседовании, но все же бывает. Но и на практике он также встречается, мне приходилось его реализовывать на работе для выполнения графа задач в rule engine.
Кратко, описал алгоритм топологической сортировки для ориентированного графа с реализацией на Java:https://dev.to/faangmaster/topologhichieskaia-sortirovka-4eee
Это третий алгоритм, который нужно знать на графах (два другие это DFS и BFS). Он встречается намного реже на собеседовании, но все же бывает. Но и на практике он также встречается, мне приходилось его реализовывать на работе для выполнения графа задач в rule engine.
DEV Community
Топологическая сортировка
Топологическая сортировка это третий алгоритм на графах, который нужно знать для успешного...
👍16❤2
Еще один подозрительный случай на собеседовании
Другой подобный случай я описывал тут: https://t.me/faangmaster/214
Я вчера собеседовал кандидата, уже на full loop (он прошел phone screen). Дал две задачи. Одна на two pointers, другая на dfs и бинарное дерево. Кандидат зачем-то писал очень подробные комментарии перед тем как написать код. Как будто он писал промпты. Как только я сказал ему не писать комментарии, чтобы не тратить время, я и так пойму, он не смог больше писать вразумительный код. Более того, он смог решить почти правильно задачу на dfs, но не смог продебажить код от слова вообще. Он не мог продвинуться ни на шаг в том как работает код на простом примере. Он конечно будет зареджекчен, но по осям verification, problem solving. Доказательст, что он читерил у меня нет. Но это уже второй случай за месяц из 8 собеседований, которые я провел за этот месяц.
Другой подобный случай я описывал тут: https://t.me/faangmaster/214
Я вчера собеседовал кандидата, уже на full loop (он прошел phone screen). Дал две задачи. Одна на two pointers, другая на dfs и бинарное дерево. Кандидат зачем-то писал очень подробные комментарии перед тем как написать код. Как будто он писал промпты. Как только я сказал ему не писать комментарии, чтобы не тратить время, я и так пойму, он не смог больше писать вразумительный код. Более того, он смог решить почти правильно задачу на dfs, но не смог продебажить код от слова вообще. Он не мог продвинуться ни на шаг в том как работает код на простом примере. Он конечно будет зареджекчен, но по осям verification, problem solving. Доказательст, что он читерил у меня нет. Но это уже второй случай за месяц из 8 собеседований, которые я провел за этот месяц.
😁19🤔6🔥4❤1
Составил подборку из 100 задач на leetcode для сбалансированной подготовке к алгоритмическому собеседованию
Ранее я уже составлял подборку из easy задач на leetcode на основные темы для тех, кто только начинает подготовку к алгоритмическому собеседованию: https://t.me/faangmaster/171
Сейчас я подготовил подборку из 100 задач, которые включают как easy так и medium задачи на все ключевые темы необходимые для алгоритмического собеседования: https://dev.to/faangmaster/podborka-zadach-na-leetcode-dlia-podghotovki-k-alghoritmichieskomu-sobiesiedovaniiu-4n51
Можете использовать эту подборку как план своей начальной подготовки к алгоритмическому собеседованию или просто для прокачки своих навыков решения алгоритмических задач. Часть задач из этой подборки я уже разбирал на этом канале.
Подборку сгруппировал по темам. Dynamic Programming можете оставить напоследок, т.к. это самая сложная тема.
Ранее я уже составлял подборку из easy задач на leetcode на основные темы для тех, кто только начинает подготовку к алгоритмическому собеседованию: https://t.me/faangmaster/171
Сейчас я подготовил подборку из 100 задач, которые включают как easy так и medium задачи на все ключевые темы необходимые для алгоритмического собеседования: https://dev.to/faangmaster/podborka-zadach-na-leetcode-dlia-podghotovki-k-alghoritmichieskomu-sobiesiedovaniiu-4n51
Можете использовать эту подборку как план своей начальной подготовки к алгоритмическому собеседованию или просто для прокачки своих навыков решения алгоритмических задач. Часть задач из этой подборки я уже разбирал на этом канале.
Подборку сгруппировал по темам. Dynamic Programming можете оставить напоследок, т.к. это самая сложная тема.
Telegram
FAANG Master
Подборка из easy задач на leetcode для начинающих подготовку к алгоритмическому собеседованию
Это подборка для тех, что уже имеет представление о структурах данных и основных алгоритмах, но только начинает практиковаться в решении задач. Часть из этих задач…
Это подборка для тех, что уже имеет представление о структурах данных и основных алгоритмах, но только начинает практиковаться в решении задач. Часть из этих задач…
🔥43👍13❤2🆒2
Шпаргалка по основным алгоритмам для алгоритмического собеседования
Написал шпаргалку с основными алгоритмами, которые необходимо знать для прохождения алгоритмического собеседование. Эти алгоритмы рекомендую знать на память и воспроизводить их менее чем за 5-10 минут без подсказок на листе бумаге или в текстовом редакторе. Эти же алгоритмы можете найти в других книгах или интернете и реализовывать так как вам удобно. Я привел свои реализации на Java.
Шпаргалка по основным алгоритмам для алгоритмического собеседования
Написал шпаргалку с основными алгоритмами, которые необходимо знать для прохождения алгоритмического собеседование. Эти алгоритмы рекомендую знать на память и воспроизводить их менее чем за 5-10 минут без подсказок на листе бумаге или в текстовом редакторе. Эти же алгоритмы можете найти в других книгах или интернете и реализовывать так как вам удобно. Я привел свои реализации на Java.
Шпаргалка по основным алгоритмам для алгоритмического собеседования
DEV Community
Шпаргалка по основным алгоритмам для алгоритмического собеседования
Данная шпаргалка включает все основные алгоритмы, необходимые для успешного прохождения собеседования...
👍30🔥19
Шпаргалка по Java для алгоритмического собеседования
На алгоритмическом собеседовании код нужно писать на реальном языке программирования, близким к тому, чтобы быть компилируемым. При этом нельзя пользоваться гуглом и подсказками. Поэтому некоторые стандартные конструкции языка программирования, стандартные структуры данных и библиотечные функции нужно знать наизусть.
Написал, основные конструкции, которые необходимо знать тут: https://dev.to/faangmaster/shparghalka-po-java-dlia-alghoritmichieskogho-sobiesiedovaniia-1bn6
Возможно, еще немного расширю позже. Пишите, что упустил или если есть ошибки.
На алгоритмическом собеседовании код нужно писать на реальном языке программирования, близким к тому, чтобы быть компилируемым. При этом нельзя пользоваться гуглом и подсказками. Поэтому некоторые стандартные конструкции языка программирования, стандартные структуры данных и библиотечные функции нужно знать наизусть.
Написал, основные конструкции, которые необходимо знать тут: https://dev.to/faangmaster/shparghalka-po-java-dlia-alghoritmichieskogho-sobiesiedovaniia-1bn6
Возможно, еще немного расширю позже. Пишите, что упустил или если есть ошибки.
DEV Community
Шпаргалка по Java для алгоритмического собеседования
На алгоритмическом собеседовании код нужно писать на реальном языке программирования, близким к тому,...
🔥21👍9❤3👏1
Подборка фильмов, сериалов и документалок о программистах, BigTech, стартапах и их основателях
Поздравляю всех с наступающим новым годом! 🎄🎄🎄🎄🎄
В преддверии праздников решил составить подборку хороших сериалов, фильмов и документалок о программистах, стартапах, BigTech компаниях и их основателях. Все эти фильмы и сериалы я смотрел сам и рекомендую к просмотру всем, кто интересуется данной тематикой. Пишите в комментариях, какие есть еще хорошие проекты, которые вы бы рекомендовали.
1) Silicon Valley. Крутой комедийный сериал про стартаперов в Кремниевой долине. Кинопоиск 8.5, Imdb 8.5
2) Холивар. История рунета. Документалка от Андрея Лошака про историю рунета. Смотрится на одном дыхании. Есть на youtube: Холивар. Кинопоиск 8.2, Imdb 7.8.
3) Русские хакеры: Начало. Еще один шедевр документалистики от Андрея Лошака. Кинопоиск 8.4, Imdb 7.3.
4) Rise of the Billionaires. Отличная документалка про Безоса, Цукерберга, Маска, Брина, Пейджа и других. Про становление BigTech компаний. Смотрел ее в самолете, когда летел из Лондона в Сан-Франциско, чтобы поработать из штабквартиры фейсбука в Менло Парк. Зашло отлично. Imdb 7.8.
5) Социальная сеть. Хорошее кино про создание фейсбука от Девида Финчера. Кинопоиск 7.7, Imdb 7.8.
6) Пираты Силиконовой Долины. История противостояния Джобса и Била Гейтса. Кинопоиск 7.5, Imdb 7.2.
7) Социальная дилемма. Отличная документалка о влиянии социальных сетей на жизнь людей. Очень много интервью с сотрудниками Google, Facebook, Twitter, YouTube про их работу, разработки и почему они уволились. Кинопоиск 7.3, Imdb 7.6.
8) Игра в имитацию. Фильм про Алана Тьюринга, одного из основоположников компьютерной эры. В его честь есть премия в области Computer Science, аналог нобелевской премии для тех, кто занимается алгоритмами, структурами данных и другими разделами Computer Science. Кинопоиск 7.6, Imdb 8.0.
9) Стив Джобс. Фильм от Дэнни Бойла с Майклом Фасбендером в главных ролях. Кинопоиск 6.7, Imdb 7.2.
10) Джобс: Империя соблазна. Фильм с Эштоном Кутчером в главных ролях. Кинопоиск 6.5, Imdb 6.0.
Бонус, фильмы, рекомендованные подписчиками:
11) Кадры. Кинопоиск 7.0, Imdb 6.3
12) Кто убил BlackBerry. Кинопоиск 7.4, Imdb 7.4
13) Код на миллиард долларов. Кинопоиск 7.6, Imdb 8.0
Поздравляю всех с наступающим новым годом! 🎄🎄🎄🎄🎄
В преддверии праздников решил составить подборку хороших сериалов, фильмов и документалок о программистах, стартапах, BigTech компаниях и их основателях. Все эти фильмы и сериалы я смотрел сам и рекомендую к просмотру всем, кто интересуется данной тематикой. Пишите в комментариях, какие есть еще хорошие проекты, которые вы бы рекомендовали.
1) Silicon Valley. Крутой комедийный сериал про стартаперов в Кремниевой долине. Кинопоиск 8.5, Imdb 8.5
2) Холивар. История рунета. Документалка от Андрея Лошака про историю рунета. Смотрится на одном дыхании. Есть на youtube: Холивар. Кинопоиск 8.2, Imdb 7.8.
3) Русские хакеры: Начало. Еще один шедевр документалистики от Андрея Лошака. Кинопоиск 8.4, Imdb 7.3.
4) Rise of the Billionaires. Отличная документалка про Безоса, Цукерберга, Маска, Брина, Пейджа и других. Про становление BigTech компаний. Смотрел ее в самолете, когда летел из Лондона в Сан-Франциско, чтобы поработать из штабквартиры фейсбука в Менло Парк. Зашло отлично. Imdb 7.8.
5) Социальная сеть. Хорошее кино про создание фейсбука от Девида Финчера. Кинопоиск 7.7, Imdb 7.8.
6) Пираты Силиконовой Долины. История противостояния Джобса и Била Гейтса. Кинопоиск 7.5, Imdb 7.2.
7) Социальная дилемма. Отличная документалка о влиянии социальных сетей на жизнь людей. Очень много интервью с сотрудниками Google, Facebook, Twitter, YouTube про их работу, разработки и почему они уволились. Кинопоиск 7.3, Imdb 7.6.
8) Игра в имитацию. Фильм про Алана Тьюринга, одного из основоположников компьютерной эры. В его честь есть премия в области Computer Science, аналог нобелевской премии для тех, кто занимается алгоритмами, структурами данных и другими разделами Computer Science. Кинопоиск 7.6, Imdb 8.0.
9) Стив Джобс. Фильм от Дэнни Бойла с Майклом Фасбендером в главных ролях. Кинопоиск 6.7, Imdb 7.2.
10) Джобс: Империя соблазна. Фильм с Эштоном Кутчером в главных ролях. Кинопоиск 6.5, Imdb 6.0.
Бонус, фильмы, рекомендованные подписчиками:
11) Кадры. Кинопоиск 7.0, Imdb 6.3
12) Кто убил BlackBerry. Кинопоиск 7.4, Imdb 7.4
13) Код на миллиард долларов. Кинопоиск 7.6, Imdb 8.0
Кинопоиск
«Силиконовая долина» (Silicon Valley, 2014-2019)
📺 Смотрите онлайн сериал «Силиконовая долина» (2014-2019) на Кинопоиске все серии, 1-6 сезоны. Группа гиков живет в инкубаторе и двигает мир интернета вперед. Комедийный сериал о внутренней кухне стартапов
🔥24👍8
Как выбрать язык программирования для алгоритмического собеседования?
На кодинг интервью в FAANG и другие компании, которые проводят кодинг собеседовая похожим образом, вы можете выбрать сами, на каком языке программирования писать код. Но это должен быть настоящий и востребованный язык программирования. Писать на псевдокоде нельзя. Также не стоит выбирать мертвые, редкие, специализированные, учебные или эзотерические языки программирования. Не стоит писать на брейнфаке, паскале, бейсике, аде, ассемблере или коболе. Наиболее частые варианты это Python, Java, JavaScript, C/C++, C#, Kotlin, Rust, Go, Objective C, Swift. Если вы собеседуетесь на мобильного разработчика, то стоит выбрать Java, Kotlin, Objective C, Swift. Если на frontend или full-stack, то подойдет и JavaScript. Если на back-end/infra, то Java, C#, C/C++, Rust, Kotlin, Python. Если на ML, то python.
Главное выбрать язык программирования, который вы знаете лучше всего и на нем же практиковались решать алгоритмические задачи.
Очень часто кандидаты выбирают python, несмотря на то, что это не язык, который они знают лучше всего. Они думают, что на нем лучше/легче решать такие задачи. Имхо это заблуждение и большая ошибка. Я очень часто наблюдаю на собеседованиях, как люди, которые пишут на python не знают элементарного синтаксиса, стандартных функций и того как они работают. Это приводит к смешным конструкциям в коде (ака "индуский код"), а также к неспособности правильно оценить временную сложность и сложность по памяти, т.к. кандидаты не знают как в реальности работают те или иные стандартные функции. Также, те кто пишет на python не знают как правильно сравнивать обьекты в python и это приводит к неправильным решениям или дополнительным предположениям, которые нужно накладывать на входные данные. По числу строк решения на python, не будут сильно короче, иногда они получаются даже длиннее, если человек начинает изобретать велосипеды по незнанию. Обьявления переменных будет короче и это единственный реальный выиграш в длине.
Поэтому я рекомендую использовать язык программирования, который вы знаете лучше всего и на нем же практикуйтесь решать алгоритмические задачи.
На кодинг интервью в FAANG и другие компании, которые проводят кодинг собеседовая похожим образом, вы можете выбрать сами, на каком языке программирования писать код. Но это должен быть настоящий и востребованный язык программирования. Писать на псевдокоде нельзя. Также не стоит выбирать мертвые, редкие, специализированные, учебные или эзотерические языки программирования. Не стоит писать на брейнфаке, паскале, бейсике, аде, ассемблере или коболе. Наиболее частые варианты это Python, Java, JavaScript, C/C++, C#, Kotlin, Rust, Go, Objective C, Swift. Если вы собеседуетесь на мобильного разработчика, то стоит выбрать Java, Kotlin, Objective C, Swift. Если на frontend или full-stack, то подойдет и JavaScript. Если на back-end/infra, то Java, C#, C/C++, Rust, Kotlin, Python. Если на ML, то python.
Главное выбрать язык программирования, который вы знаете лучше всего и на нем же практиковались решать алгоритмические задачи.
Очень часто кандидаты выбирают python, несмотря на то, что это не язык, который они знают лучше всего. Они думают, что на нем лучше/легче решать такие задачи. Имхо это заблуждение и большая ошибка. Я очень часто наблюдаю на собеседованиях, как люди, которые пишут на python не знают элементарного синтаксиса, стандартных функций и того как они работают. Это приводит к смешным конструкциям в коде (ака "индуский код"), а также к неспособности правильно оценить временную сложность и сложность по памяти, т.к. кандидаты не знают как в реальности работают те или иные стандартные функции. Также, те кто пишет на python не знают как правильно сравнивать обьекты в python и это приводит к неправильным решениям или дополнительным предположениям, которые нужно накладывать на входные данные. По числу строк решения на python, не будут сильно короче, иногда они получаются даже длиннее, если человек начинает изобретать велосипеды по незнанию. Обьявления переменных будет короче и это единственный реальный выиграш в длине.
Поэтому я рекомендую использовать язык программирования, который вы знаете лучше всего и на нем же практикуйтесь решать алгоритмические задачи.
👍29
Наступит ли счастье, если вы пройдете собеседование в FAANG?
#мысли
Часть 1. Плюсы.
Для многих, как и для меня когда-то, попадание в такую компанию казалось чем-то вроде концовки фильма, когда главный герой преодолев все трудности и испытания уходит в закат. Там его ждет все только хорошее и не о чем больше волноваться не надо.
Работа в этих компаниях имеет много преимуществ, но в конечном счете это просто такая же работа программистом, но со своими особенностями.
Начну с приятных моментов, которые и заставляют многих программистов туда стремиться:
1) Престиж компании. Вам будет приятно говорить друзьям, родственникам, бывшим коллегам, что вы там работаете. Или когда кто-то в компании случайно узнает, где вы работаете это будет вызывать интерес. Но это чувство достаточно быстро проходит. Это как после того как вы купили себе новый крутой телефон или машину. Вначале это приносит много положительных эмоций, но очень быстро это просто становится телефоном и все. Или как люди, которые недавно стали богатыми или просто получили какие-то деньги, сразу покупают броские брендовые вещи типа гучи или баленсиага с лейблом больше чем сама одежда. Но, что останется с вами навсегда, так это полезная строчка в резюме.
2) Большая зп. Зарплаты в FAANG самые или одни из самых больших в индустрии. Где бы не находился офис компании, они всегда предлагают компенсацию сильно выше рынка. Это вполне может быть в 2 или 3 раза выше, чем медианная зп по рынку на данной позиции.
3) RSU (стоки, акции). Существенная часть компенсации в таких компаниях это акции самой компании. Вы можете их сразу продавать, как только вы их получаете. По сути, это будет эквивалентно, просто, получению наличных. Или же держать их в ожидании роста. А акции FAANG компаний имеют тенденцию к быстрому росту. Например, когда я работал в Amazon, то акции, которые мне выплатили, выросли в 4 раза за время работы там.
4) Возможности карьерного роста будучи программистом, без конвертации в менеджера. В большинстве компаний, как только вы достигли уровня Senior/Lead, для дальнейшего роста нужно конвертироваться в менеджера. Не всем нравится заниматься менеджментом + далеко не все могут стать менеджерами, тем более хорошими. В FAANG есть куча уровней для чисто инженеров. Вы можете расти будучи чисто инженером, без прямых подчиненных. Число таких уровней варьируется от 6 до 8: от junior до distinguished и fellow. С зп отличающимися в 15-20 раз между самым низким и самым высоким уровнем. От $150 000-$200 000 до $2 500 000 - $3 000 000 в год (для США).
5) Возможность поработать с умными людьми, иногда даже выдающимися инженерами. В силу того, что FAANG привлекает много талантливых инженеров, среди ваших коллег будет много очень много умных и способных программистов. Среди них есть инженеры (особенно на высоких уровнях вроде principal, senior staff), у которых есть чему поучиться как в инжиниринге, так и в выдающихся софт скилах. Многие из них давно работают в этих компаниях и поучаствовали в создании самых передовых технологий.
6) Возможность поработать над большими и сложными проектами/продуктами. Вы можете попасть в команду, которая делает очень интересный, большой и важный продукт. Что значит интересный зависит, конечно, от вас. Если вы фронтендер это может быть разработка самого популярного фреймфорка react. Если мобильный разработчик, то может быть разработка мобильной версии youtube или инсты. Если занимаетесь бекендом, то какие-то продукты AWS или youtube и т.д. Но тут надо учитывать, что даже эти компоненты такие большие, что над ними работает гигантское число команд и вы будете работать над небольшой частью. Или над вспомогательными продуктами, которые никому не видны, но используются другими командами.
7) Куча других мелких бенефитов. Сюда относится бесплатная еда в офисе (у нас можно есть 3 раза в день и водить свою семью или друзей, а также снеки), компенсация транспорта, интернета и тому подобное.
Чуть позже напишу про минусы и реалии работы.
#мысли
Часть 1. Плюсы.
Для многих, как и для меня когда-то, попадание в такую компанию казалось чем-то вроде концовки фильма, когда главный герой преодолев все трудности и испытания уходит в закат. Там его ждет все только хорошее и не о чем больше волноваться не надо.
Работа в этих компаниях имеет много преимуществ, но в конечном счете это просто такая же работа программистом, но со своими особенностями.
Начну с приятных моментов, которые и заставляют многих программистов туда стремиться:
1) Престиж компании. Вам будет приятно говорить друзьям, родственникам, бывшим коллегам, что вы там работаете. Или когда кто-то в компании случайно узнает, где вы работаете это будет вызывать интерес. Но это чувство достаточно быстро проходит. Это как после того как вы купили себе новый крутой телефон или машину. Вначале это приносит много положительных эмоций, но очень быстро это просто становится телефоном и все. Или как люди, которые недавно стали богатыми или просто получили какие-то деньги, сразу покупают броские брендовые вещи типа гучи или баленсиага с лейблом больше чем сама одежда. Но, что останется с вами навсегда, так это полезная строчка в резюме.
2) Большая зп. Зарплаты в FAANG самые или одни из самых больших в индустрии. Где бы не находился офис компании, они всегда предлагают компенсацию сильно выше рынка. Это вполне может быть в 2 или 3 раза выше, чем медианная зп по рынку на данной позиции.
3) RSU (стоки, акции). Существенная часть компенсации в таких компаниях это акции самой компании. Вы можете их сразу продавать, как только вы их получаете. По сути, это будет эквивалентно, просто, получению наличных. Или же держать их в ожидании роста. А акции FAANG компаний имеют тенденцию к быстрому росту. Например, когда я работал в Amazon, то акции, которые мне выплатили, выросли в 4 раза за время работы там.
4) Возможности карьерного роста будучи программистом, без конвертации в менеджера. В большинстве компаний, как только вы достигли уровня Senior/Lead, для дальнейшего роста нужно конвертироваться в менеджера. Не всем нравится заниматься менеджментом + далеко не все могут стать менеджерами, тем более хорошими. В FAANG есть куча уровней для чисто инженеров. Вы можете расти будучи чисто инженером, без прямых подчиненных. Число таких уровней варьируется от 6 до 8: от junior до distinguished и fellow. С зп отличающимися в 15-20 раз между самым низким и самым высоким уровнем. От $150 000-$200 000 до $2 500 000 - $3 000 000 в год (для США).
5) Возможность поработать с умными людьми, иногда даже выдающимися инженерами. В силу того, что FAANG привлекает много талантливых инженеров, среди ваших коллег будет много очень много умных и способных программистов. Среди них есть инженеры (особенно на высоких уровнях вроде principal, senior staff), у которых есть чему поучиться как в инжиниринге, так и в выдающихся софт скилах. Многие из них давно работают в этих компаниях и поучаствовали в создании самых передовых технологий.
6) Возможность поработать над большими и сложными проектами/продуктами. Вы можете попасть в команду, которая делает очень интересный, большой и важный продукт. Что значит интересный зависит, конечно, от вас. Если вы фронтендер это может быть разработка самого популярного фреймфорка react. Если мобильный разработчик, то может быть разработка мобильной версии youtube или инсты. Если занимаетесь бекендом, то какие-то продукты AWS или youtube и т.д. Но тут надо учитывать, что даже эти компоненты такие большие, что над ними работает гигантское число команд и вы будете работать над небольшой частью. Или над вспомогательными продуктами, которые никому не видны, но используются другими командами.
7) Куча других мелких бенефитов. Сюда относится бесплатная еда в офисе (у нас можно есть 3 раза в день и водить свою семью или друзей, а также снеки), компенсация транспорта, интернета и тому подобное.
Чуть позже напишу про минусы и реалии работы.
👍28❤10🔥9🆒2
Задача на динамическое программирование: Longest Increase Subsequence
Записал разбор задачи на динамическое программирование: Longest Increasing Subsequence.
Задача. Дан массив целых чисел. Нужно найти длину самой длинной строго возрастающей подпоследовательности.
Ссылка на видео: https://www.youtube.com/watch?v=gHXsAouqHxg
Ссылка на leetcode: https://leetcode.com/problems/longest-increasing-subsequence/
Записал разбор задачи на динамическое программирование: Longest Increasing Subsequence.
Задача. Дан массив целых чисел. Нужно найти длину самой длинной строго возрастающей подпоследовательности.
Ссылка на видео: https://www.youtube.com/watch?v=gHXsAouqHxg
Ссылка на leetcode: https://leetcode.com/problems/longest-increasing-subsequence/
👍14❤2
Наступит ли счастье, если вы пройдете собеседование в FAANG?
#мысли
Вторая часть. Первая тут: https://t.me/faangmaster/254
Часть 2. Минусы.
Большинство минусов напрямую вытекают из плюсов.
1) Высокие ожидания. Работа в FAANG это далеко не пенсия или курорт-санаторий. Все плюшки и высокие зп платят за то, что вы будете перфомить как мало кто может. FAANG компании успешны, в основном, благодаря тому, что они привлекают лучших инженеров и ожидают, что они будут работать как лучшие инженеры в индустрии. Это добавляет достаточно много стресса в вашу жизнь, особенно, если вы страдаете от синдрома самозванца или очень чувствительны к чужому мнению или у вас синдром отличника.
2) Калибровки. Чувство того, что вас постоянно оценивают и страх underperforming'а. Этот минус связан с предыдущим. Все эти высокие ожидания они не на словах. Они формализованы в виде процеcса калибровки. Раз в год или полгода вам надо пройти через оценку вашего перфоманса, собрать фидбеки, описать свои достижения. Они будут сравниваться с формальными ожиданиями и с другими инженерами. По результатам вам будет выставлена оценка, как в школе. В зависимости от этой оценки вам могут повысить зп, увеличить бонус, дать новых акций. Но также вас могут отправить на pip (performance improvement plan) и даже уволить. Несколько процентов в год увольняют по перфомансу.
3) Высокая конкурентность. Помимо высоких ожиданий, ваши достижения будут сравниваться с другими инженерами того же уровня. А в силу того, что большинство инженеров очень высокого класса вам надо показать себя не хуже и даже лучше других. Это приводит к кому, что ваши коллеги действуют так, чтобы выглядеть лучше вас на калибровке.
4) Промоушены выше Senior уровня затруднительны. Вырасти из junior до senior относительно просто. Более того, от вас это ждут за конкретный, ограниченный промежуток времени. Типа 5 лет. Если вы не запромоутитесь, то вас уволят. Senior уровень считается терминальным и от вас необязательно ждут, что вы будете расти дальше. Но если вы хотите стать staff, principal, то там гигантская конкуренция и ожидания. Вам нужно к этому идти целенаправленно, работать очень умным способом, специально под промоушен. Находить специальные проекты, работать лучше подавляющего числа инженеров, показывать результаты и поведение под промоушен.
5) Золотая клетка. Из-за того, что у вас большая зп, вам сложно решить уволиться. Т.к. это будет скорее всего с понижением зп. Вы конечно можете пойти на 1-2 уровня выше в компанию попроще, но это сложнее и далеко не факт, что даже в таком виде вы получите больший офер. Поэтому многие остаются из-за зп, даже если им не нравится то, над чем они работают.
6) Высокие визовые и денежные риски в первый год-два работы. Если вы прошли собеседование в FAANG и вам надо переехать в другую страну, то вам надо получить визу и потратиться на переезд. Все это оплатит сама компанию. Но виза будет привязана к работодателю. И если вас уволят, то у вас будет очень короткий срок, чтобы найти новую работу в этой стране. Иначе вам надо будет выехать из страны. А сейчас найти работу программистом очень сложно и занимает много времени. Более того, деньги, потраченные за переезд и бонус за подписание контракта вам надо вернуть компании, если вы ее покинете раньше чем за 1-2 года. А так как первые 6 месяцев вы на испытательном сроке, то это добавляет гигантское количество стресса.
7) Куча внутренних тулов. Почти все тулы и технологии, которые вы будете использовать на работе - внутренние. Таких вы больше не встретите нигде. Иногда они становятся open-source и становятся общедоступными, но далеко не всегда. Вам придется потратить куча времени на их освоение, которое потом слабо транслируется на другие компании и технологии. Только принципы и подходы. Это может быть начиная системами контроля версий и заканчивая языками программирования. Например, Go и Hack это изначально внутренние языки в Google и Facebook, которые сделали общедоступными в какой-то момент. Это особенно чувствительно для начинающих программистов. Т.к.
#мысли
Вторая часть. Первая тут: https://t.me/faangmaster/254
Часть 2. Минусы.
Большинство минусов напрямую вытекают из плюсов.
1) Высокие ожидания. Работа в FAANG это далеко не пенсия или курорт-санаторий. Все плюшки и высокие зп платят за то, что вы будете перфомить как мало кто может. FAANG компании успешны, в основном, благодаря тому, что они привлекают лучших инженеров и ожидают, что они будут работать как лучшие инженеры в индустрии. Это добавляет достаточно много стресса в вашу жизнь, особенно, если вы страдаете от синдрома самозванца или очень чувствительны к чужому мнению или у вас синдром отличника.
2) Калибровки. Чувство того, что вас постоянно оценивают и страх underperforming'а. Этот минус связан с предыдущим. Все эти высокие ожидания они не на словах. Они формализованы в виде процеcса калибровки. Раз в год или полгода вам надо пройти через оценку вашего перфоманса, собрать фидбеки, описать свои достижения. Они будут сравниваться с формальными ожиданиями и с другими инженерами. По результатам вам будет выставлена оценка, как в школе. В зависимости от этой оценки вам могут повысить зп, увеличить бонус, дать новых акций. Но также вас могут отправить на pip (performance improvement plan) и даже уволить. Несколько процентов в год увольняют по перфомансу.
3) Высокая конкурентность. Помимо высоких ожиданий, ваши достижения будут сравниваться с другими инженерами того же уровня. А в силу того, что большинство инженеров очень высокого класса вам надо показать себя не хуже и даже лучше других. Это приводит к кому, что ваши коллеги действуют так, чтобы выглядеть лучше вас на калибровке.
4) Промоушены выше Senior уровня затруднительны. Вырасти из junior до senior относительно просто. Более того, от вас это ждут за конкретный, ограниченный промежуток времени. Типа 5 лет. Если вы не запромоутитесь, то вас уволят. Senior уровень считается терминальным и от вас необязательно ждут, что вы будете расти дальше. Но если вы хотите стать staff, principal, то там гигантская конкуренция и ожидания. Вам нужно к этому идти целенаправленно, работать очень умным способом, специально под промоушен. Находить специальные проекты, работать лучше подавляющего числа инженеров, показывать результаты и поведение под промоушен.
5) Золотая клетка. Из-за того, что у вас большая зп, вам сложно решить уволиться. Т.к. это будет скорее всего с понижением зп. Вы конечно можете пойти на 1-2 уровня выше в компанию попроще, но это сложнее и далеко не факт, что даже в таком виде вы получите больший офер. Поэтому многие остаются из-за зп, даже если им не нравится то, над чем они работают.
6) Высокие визовые и денежные риски в первый год-два работы. Если вы прошли собеседование в FAANG и вам надо переехать в другую страну, то вам надо получить визу и потратиться на переезд. Все это оплатит сама компанию. Но виза будет привязана к работодателю. И если вас уволят, то у вас будет очень короткий срок, чтобы найти новую работу в этой стране. Иначе вам надо будет выехать из страны. А сейчас найти работу программистом очень сложно и занимает много времени. Более того, деньги, потраченные за переезд и бонус за подписание контракта вам надо вернуть компании, если вы ее покинете раньше чем за 1-2 года. А так как первые 6 месяцев вы на испытательном сроке, то это добавляет гигантское количество стресса.
7) Куча внутренних тулов. Почти все тулы и технологии, которые вы будете использовать на работе - внутренние. Таких вы больше не встретите нигде. Иногда они становятся open-source и становятся общедоступными, но далеко не всегда. Вам придется потратить куча времени на их освоение, которое потом слабо транслируется на другие компании и технологии. Только принципы и подходы. Это может быть начиная системами контроля версий и заканчивая языками программирования. Например, Go и Hack это изначально внутренние языки в Google и Facebook, которые сделали общедоступными в какой-то момент. Это особенно чувствительно для начинающих программистов. Т.к.
Telegram
FAANG Master
Наступит ли счастье, если вы пройдете собеседование в FAANG?
#мысли
Часть 1. Плюсы.
Для многих, как и для меня когда-то, попадание в такую компанию казалось чем-то вроде концовки фильма, когда главный герой преодолев все трудности и испытания уходит в закат.…
#мысли
Часть 1. Плюсы.
Для многих, как и для меня когда-то, попадание в такую компанию казалось чем-то вроде концовки фильма, когда главный герой преодолев все трудности и испытания уходит в закат.…
👍21🔥4❤1🤔1😢1
они не знают других тулов и когда они приходят после FAANG в другие компании, они не знают ниодного типичного тула.
В целом минусы сводятся к тому, что высокие ожидания и конкуренция добавляют много стресса. А в совокупности с золотой клеткой и зависимости по визе вам очень сложно уйти. Адаптироваться к таким условиям не просто, но возможно. Пишите в комментариях, что вы об этом думаете.
P.S. Придумал такую аналогию для тех кто интерисуется футболом. Это похоже на то как игрок переходит из местного клуба в Барселону или Реал. У вас будут выше доходы, но и ожидания и конкуренция будет сильно выше. Если вы раньше в своем клубе были на 2 головы выше ваших одноклубников, то в топ клубе будет на так просто проявить себя и выиграть конкуренцию за место в составе. Или с переходом из обычной школы в профильный топ лицей или гимназию. Или в топ вуз.
В целом минусы сводятся к тому, что высокие ожидания и конкуренция добавляют много стресса. А в совокупности с золотой клеткой и зависимости по визе вам очень сложно уйти. Адаптироваться к таким условиям не просто, но возможно. Пишите в комментариях, что вы об этом думаете.
P.S. Придумал такую аналогию для тех кто интерисуется футболом. Это похоже на то как игрок переходит из местного клуба в Барселону или Реал. У вас будут выше доходы, но и ожидания и конкуренция будет сильно выше. Если вы раньше в своем клубе были на 2 головы выше ваших одноклубников, то в топ клубе будет на так просто проявить себя и выиграть конкуренцию за место в составе. Или с переходом из обычной школы в профильный топ лицей или гимназию. Или в топ вуз.
🔥16👍6😭1
Всех с пятницей. Сделал ролик с Тиньковым. https://youtu.be/uPhEJjfDXHQ?si=nCLULlvUJLihM_5t
😁20👍2
Сделал короткий видос с рейтингом алгоритмов и структур данных по частоте встречаемости на собеседовании. Условно, Динамическое программирование очень редко (кроме google), поэтому можно и без него в faang попасть. https://youtu.be/6pE19OIrvSQ
Более полный список в моем посте https://t.me/faangmaster/25
Более полный список в моем посте https://t.me/faangmaster/25
👍19🔥2