FAANG Interview. Бортові нотатки спільноти
By participating in the community, you agree to the next statements:
- I agree that russia is a terrorist state and did genocide against Ukraine
- I agree that russia must pay reparations to Ukraine on a full scale
- I agree that the Crimean peninsula is the territory of Ukraine
- I agree that putin is a criminal and must appear in the International Court of Justice
Вступ
Цей репозиторій створено для “FAANG Interview” спільноти з метою впорядкувати корисні ресурси, що згадуються в чаті. Кожне посилання в документі має супроводжуватися описом. Не соромтеся надсилати pull requests і робити репозиторій кращим з кожним днем.
Абревіатури
- FAANG - Facebook, Apple, Amazon, Netflix, Google. Usually also means Microsoft, GitHub, Linkedin, Instagram, Snapchat, Palantir, Bloomberg, IBM.
- LP - Leadership Principles (by Amazon)
- CtCI - Cracking the Coding Interview (book)
- SRE - Site Reliability Engineer
- SWE/SE - Software Engineer
- SDE - Software Development Engineer (Amazon)
- SysDE - System Development Engineer (Amazon)
- OA - Online Assessment
- HC - Hiring Committee
- HM - Hiring Manager
- BR - Bar Raiser (Amazon)
- LC - LeetCode
- CP - Competitive programming
- GCJ - Google Code Jam
- CF - Codeforces
- OJ - Online Judge
- TLE - Time Limit Error
- WA - Wrong Answer
- LN - Linkedin (must have professional social network)
- CS - Computer science
- DS - Data science
- TC - Total compensation
- CLRS - Introduction of Algorithms (book)
Mock-інтерв’ю спільноти
Ми проводимо технічні мок-інтерв’ю в парах щотижня, більше деталей про те, як це проходить, у цьому документі. Гайд як проводити мок-інтерв’ю.
Різні корисні посилання
- Сайти, де можна вирішувати завдання:
- Як потрапити в Google: інструкція з підготовки - стаття Сергія Семи про підготовку до інтерв’ю у фаанг.
- Cracking the coding interview book - книга, що стала класикою при підготовці
- https://t.me/empireinthemaking (рос.) - телеграм-канал Лариси
- Мок-інтерв’ю
- https://www.pramp.com/ - парні мок інтерв’ю
- http://www.gainlo.co/ платний. Дає змогу співбесідуватися з реальними співробітниками з FAANG. Сайт гарантує це. Ціна вказується своя на кожного інтерв’юера, від 100 до 200 доларів за мок. Обіцяють детальний фідбек після мока. Another opinion about the service.
- https://interviewing.io/ - Practice interviewing with engineers from Google, Facebook, and more… anonymously. Price varies $100-200.
-
Гайди з підготовки до інтерв’ю:
- Interview preparation Guide - добірка посилань на корисні репозиторії, відео, курси та книги.
- Coding Interviews: Questions, Analysis & Solutions (Expert’s Voice in Programming)
- Uber Software Developer Interview Prep - підготовка до інтерв’ю в Uber
- The Interview Study Guide For Software Engineers - DEV Community
- Comprehensive Data Structure and Algorithm Study Guide
- LinkedIn група учасників чату для обміну контактами
- Сервіс для перевірки свого резюме (гуглити боти ATS)
Курси, книги, статті з алгоритмів і структур даних
- Курси
- Курси з алгоритмів від Роберта Седжвіка Частина 1
- Курси з алгоритмів від Роберта Седжвіка Частина 2
- https://cses.fi/book/book.pdf - Ось хороша книжка для підготовки для інтерв’ю. Там і DP є. Вона здебільшого для тих, хто готується до олімпіад, тобто рівень вищий, але покриває і теми, які трапляються в інтерв’ю
- Coderust: Hacking the Coding Interview - Платний курс (у текстовому вигляді) з алгоритмів і структур даних
- Master the Coding Interview: Data Structures + Algorithms - курс на udemy
- JavaScript (JS) Algorithms and Data Structures Masterclass - Курс ознайомлює з основними принципами розв’язання задачок, основними алгоритмами та структурами даних
- Coding Interview Bootcamp Algorithms, Data Structures Course На практиці дає можливість розв’язати найпопулярніші задачки, потім іде розв’язання з його розбором з кількома підходами. Показує як на практиці застосовувати ті чи йнші підходи й оцінювати їх складності (big O) та обирати найкраще рішення.
- Algorithmic Toolbox - Курс для тих, хто на початку шляху. Допоможе зрозуміти big-O, елементарні алгоритми та підходи до них.
- Computer Sc - Data Structures and Algorithms - відео курс
- Algorithms, Computer science, Computing - курс з алгоритмів на Khan Academy
- Grokking the Coding Interview: Patterns for Coding Questions платний курс “Patterns for Coding Questions”
- Data Structures and Algorithms - coursera course
- Introduction to Algorithms - course from MIT
- Lectures in Advanced Data Structures (6.851) - MIT lectures by prof. Erik Demaine
- Intro to Algorithms and Data Structures - від Google на Python (безплатно, наприкінці є розбір усіх етапів онсайт-інтерв’ю)
- Книги
- Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne - більш розширений варіант курсів вище. слайди до книги
- Computer Science Distilled: Learn the Art of Solving Computational Problems
- Grokking Algorithms. An illustrated guide for programmers and other curious people
- Грокаємо алгоритми: Ілюстрований посібник для програмістів і допитливих
- Algorithms by Jeff Erickson
- Problem Solving with Algorithms and Data Structures using Python - ще одна книга з алгоритмів на Python
- Introduction to Algorithms, 3rd Edition (The MIT Press)
- Томас Г.Кормен, Чарлз Е.Лейзерсон, Роналд Л.Рівест, Кліфорд Стайн. Вступ до алгоритмів
- Mathematics for Computer Science - book by Eric Lehman
- Data Structures and Algorithms in Java
- Різні корисності
- Dynamic programming & Backtracking
- Dynamic Programming for Interviews чудова книга, що збирає в собі Top-Down, Bottom Up approaches. Дає методологію розбору завдання.
- Dynamic Programming for Coding Interviews: A Bottom-Up approach to problem-solving книга
- Backtracking introduction - geeksforgeeks
- Grokking Dynamic Programming Patterns for Coding Interviews - платний курс із динамічного програмування
- Dynamic Programming lecture #1 - Fibonacci, iteration vs recursion - Errichto дає якісне пояснення прийомів Dynamic Programming
- Dynamic Programming lecture #2 - Coin change, double counting video
- Dynamic Programming Patterns карта задач.
- What Is Dynamic Programming With Python Examples - об’ємна стаття на тему динамічного програмування з прикладами
- Динамічне програмування (відео лекції) (рос.) - курс із динамічного програмування, що відмінно дає глибоке розуміння цього підходу, а також можливість попрактикуватися на розв’язанні задач із їх розбором
- Відео
- Introduction to Big O Notation and Time Complexity
- Плейлисти про рішення задач на вайтборді
- Відеокурс про алгоритми від автора Cracking the coding interview
- Відео курс зі структур даних від автора Cracking the coding interview
- Sorting Algorithms (slower, grouped and ordered) - анімація 26 алгоритмів сортування
- Back To Back SWE сподобався цей канал. У хлопця хороша англійська, він добре пояснює підходи до вирішення різних завдань з описом процесу вирішення, появи йнсайтів
- WilliamFiset - серія відео про теорію графів
- Розбір 75 основних типових задач на LeetCode - дохідливе викладення англійською.
- Списки відео: базові алгоритми (рос.) и трохи складніші за базові (рос.)
Математика
- Сайти: big-O, елементарні алгоритми та підходи до них.
- Wumbo.net - Wumbo is a math reference site for students
- Курси
- Introduction to Discrete Mathematics for Computer Science - мінімальний курс “все в одному” з дискретної математики. Покриває мінімум з важливості математичного доказу, комбінаторики, теорії ймовірностей, теорії графів, теорії чисел і криптографії.
- Discrete Mathematics and Its Applications - найкраща книга з дискретної математики за багатьма критеріями.
- Discrete Mathematics with Combinatorics - ще одна доволі популярна книжка із дискретної математики.
- Applied Combinatorics - фундаментальна праця із прикладної комбінаторики. Просунутий рівень.
- Invitation to Number Theory - дуже легкий вступ до теорії чисел.дуже легкий вступ до теорії чисел.
- Number Theory and Its History - уведення в теорію чисел з гарним історичним нарисом. Підійде любителям розбавити нудні формули краплею історії за цими формулами.
- An Introduction to the Theory of Numbers - гарна книжка з теорії чисел від відомого британського математика. Використовується як навчальний посібник у китайських вишах.
- Elementary Number Theory and Its Application - фундаментальна праця з теорії чисел.
- Introduction to Linear Algebra - один із найповніших курсів із лінійної алгебри.
Олімпіади із програмування
- A Way to Practice Competitive Programming
- E-Maxx Algorithms in English;
- Yaal (Yet another algorithm library) by Egor Kulikov - якісна бібліотека на Java для олімпіад. Раджу використовувати в парі з Intellij IDEA плагіном. Аналогічний плагін для С++ в CLion.
- Timus - High quality Online Judge with a lot of solutions on GitHub;
Цікаві завдання та списки завдань
- Загальні принципи
- 14 Patterns to Ace Any Coding Interview Question (це “короткий виклад” курсу Grokking the Coding Interview: Patterns for Coding Questions, що вже вказаний вище)
-
Окремі завдання
- Підбірки завдань
- https://www.interviewbit.com/courses/programming/ - підбірка задач за темами від interviewbit
- List of Top 75 LeetCode Questions to Save Your Time
- Amazon Online Assessment Questions з них було Critical Routers, і Product Suggestions
- Amazon Final Interview Questions. SDE1
- Leetcode questions by likes/dislikes ratio
- Leetcode Patterns
- Відео
- Різне
System Design Interview
- Усе одразу
- Grokking Modern System Design Interview for Engineers & Managers в першу чергу вам порадять пройти курс (Grokking the System Design Interview - Part 3 )
- Grokking the Object-Oriented Design Interview
- System-design-primer Популярний збірник різного щодо SDI
- System Design Interview Step By Step Guide. YouTube channel
- Database Internals: A Deep Dive into How Distributed Data Systems Work - книга кажуть “бомба” типу data intensive
- Building Microservices: Designing Fine-Grained Systems: Newman, Sam: 9781491950357 - дуже хороша книга про розробку мікросервісів, легко читається, багато хороших практик
- Distributed Systems: Principles and Paradigms: Tanenbaum, Andrew S., van Steen, Maarten: 9780130888938 - хороша популярна книга з розподілених систем, не можу сказати, що читається легко, але варта уваги
- https://landing.google.com/sre/books/ не лякайтеся, що про SRE, для SWE можна дещо чого пропустити - але є дуже багато прикладів дизайнів, рішень, які було ухвалено й чому, дуже гарний опис що таке load balancing, наприклад
- Introduction to modern network load balancing and proxying - Ще про load balancer, але це вже трохи детальніше, ніж треба SWE зазвичай
- NoSQL Databases: a Survey and Decision Guidance - порівняння та опис різних NoSQL систем. Відмінність статті в більш практичному аналізі - для яких завдань, який тип сховища підійде краще.
- System Design Interview Video. Rate Limiting (local and distributed)
- Prepare for Your Google Interview: Systems Design несподівано круте нове відео з system design від Life at Google
- Object-Oriented Design - список запитань із літкоду
- Старі статті з DOU про консенсус-протоколи: раз, два
- Raft. Пояснення RAFT на пальцях із красивими діаграмами. Можете навіть показати своїй мамі.
- Grokking the Mobile System Design interview - За мотивами систем дизайн собесів у ФБ і Гугл на мобільника написав статейку.
- A Simple Framework For Mobile System Design Interviews - структурований підхід до проходження систем дизайн інтерв’ю для iOS/Android розробників.
- Відео
- Software Design Patterns and Principles (quick overview)
- Success in Tech - канал про підготовку до інтерв’ю, є відео про дизайн
- System Design Interview канал із дизайн-інтерв’ю краще/популярніше і зрозуміліше за лекції з Raft/Paxos я не бачив, а глибше, напевно, тільки статті читати: Raft lecture, Paxos lecture
- System design interview questions - плейлист про дизайн інтерв’ю з каналу Tushar Roy - Coding Made Simple
- https://www.codekarle.com/
- Papers
- Cassandra. Можна погуглити різні описи систем. Пошуковий запит типу “BigTable paper” або “MapReduce paper”.
- Воркшопи
- Workshop от Google по non-abstract large systems design на прикладі Publish-Subscribe system
Behavioral interview
- Відео
- відео, яке рекомендують всюди: Episode 07: Intro to Behavioural Interviews
- Тематичний канал Дена Кройтора, багато інфи та прикладів щодо Amazon LP, FB, Netflix
- Почитати
- Behavioral Interview. Топіки на цю тему на blind
- Cracking the Coding Interview pages 32-38
- The Situation-Behavior-Impact-Feedback Tool - From MindTools.com
- https://leetcode.com/explore/interview/card/leapai/
- Блог bar-raiser з Amazon про їхній LP: Interviewing at Amazon — Leadership Principles - Dave Anderson
- Amazon Behavioral questions. Leadership Principles. LP Тут ще один товариш із цього чату взяв участь в івенті, і в нас в обох було однаково: усі запитання на LP & Behavior були слово в слово із цього списку
- Якщо це Netflix або Amazon, там потрібно читати їхні пейпери щодо core values і бути готовими до запитань, які показують, як ти їм відповідаєш.
- Що запитують на behavioral і system design інтерв’ю, або Як я потрапив у Facebook
Переговори щодо оферу
- How to Negotiate Your Job Offer - Prof. Deepak Malhotra (Harvard Business School) Video
- Ten Rules for Negotiating a Job Offer
- Patrick McKenzie. Salary Negotiation: Make More Money, Be More Valued
- Salary Negotiation with Haseeb Qureshi
- How Not to Bomb Your Offer Negotiation
- How I negotiated a $300,000 offer in Silicon Valley
- Cracking the Tech Career: Insider Advice on Landing a Job at Google, Microsoft, Apple, or any Top Tech Company
Після прийняття оферу (до йншої країни)
- Щоб уникнути конфліктів - не кажіть своєму роботодавцю, що у вас офер. Скажіть, коли буде віза. Різниця між оффером і візою може сягати 12 місяців.
- Одразу поговоріть із рекрутером про те, щоб його хтось замінив, якщо він раптово піде у відпустку на 2-3 тижні - у Європі це люблять. Теж саме з Project manager.
- Буде Background check. Одразу підготуйте список усіх роботодавців і доказ того, що ви там працювали.
- Одразу підготуйте документи в електронному вигляді. Скан паспорта, закордонного паспорта, податковий код, довідка про несудимість, диплом.
- Це все для того, щоб заощадити вам від 2 до 4 місяців. Рекрутери зовсім не поспішають. І можуть тягнути з вас документи по одному на тиждень. Тому приготуйте все одразу.
Складання резюме
- Відео
- Шаблони
- Від Лариси (рос.)
Перевірка резюме
По вівторках і суботах у /r/cscareequestions створюються “Resume Advice” треди, де можна отримати фідбек. Телеграм-канал для обговорення резюме: resume_review (рос.)
SRE
- Різне
- Linux Technical Interview Questions and Answers (Linux) - платний курс
- My Job Interview at Google Google SRE interview on SRE
- What happens when we hit URL in Browser?
- SYSADMIN. The Systems Engineering Side of Site Reliability Engineering
- SYSADMIN. Hiring Site Reliability Engineers
- https://github.com/mxssl/sre-interview-prep-guide
- Почитати
- Site Reliability Engineering
- Linux System Programming: Talking Directly To The Kernel And C Library
- Systems Performance: Enterprise and the Cloud, сайт автора http://www.brendangregg.com
- BPF Performance Tools (Addison-Wesley Professional Computing Series) знову http://www.brendangregg.com
- Operating Systems: Three Easy Pieces
- The Linux Programming Interface: A Linux and UNIX System Programming Handbook
- Grokking the Mobile System Design interview - За мотивами систем дизайн собесів у ФБ і Гугл на мобільника написав статейку.
- Yet another mobile architectures comparison
- Mobile architecture optimization topics.
- The System Design Interview For Mobile Developers.
- Що запитують на behavioral і system design інтерв’ю, або Як я потрапив у Facebook.
- Pagination.
- A Simple Framework For Mobile System Design Interviews - структурований підхід до проходження систем дизайн інтерв’ю для iOS/Android розробників.
Frontend
- Різне
- https://blog.pramp.com/how-to-succeed-in-a-frontend-interview-d748cb073823?gi=1d9930d41bfb - Опис загального обсягу бажаних знань на позицію Frontend-інженера з посиланнями, де почитати. Посилання зі статті на дод. ресурси:
- Frontend Job Interview Questions — The largest Github repository of frontend interview questions
- Cracking the Frontend Interview — A guide by Jonathan White, a Twitter engineer, on how to prepare for frontend interviews
- Frontend Developer Handbook 2018 — A guide on Frontend Development and interview preparation created by Frontend Masters
- Cracking the Frontend Coding Interview — An article by Alex Pattison, an engineer at Yola, on questions and answers for frontend interviews
- https://www.pramp.com/ - Тут є можливість практикуватися в інтерв’ю за тематикою Frontend
- http://gainlo.co - Платний ресурс для Mock-інтерв’ю, зокрема з Frontend System Design. Дають розгорнутий фідбек.
- Large Front-End Preparation for FAANG Notion guide
- System Design for Front End Engineers
- Leetcode-like портал, сфокусований на фронтенді
Інтернатура
- Summer 2020 Internships
- Статті про стажування у фаанг
- Стажування в міжнародних компаніях: як не завалити інтерв’ю та отримати заповітний оффер (рос.)
- Як потрапити на 5 стажувань у ФААНГ (рос.)
Релокація
- Релокація в Сінгапур: історія українського архітектора. Хороша стаття про життя в Сінгапурі, фінанси тощо.
- https://relhut.com/visa-sponsors - список спонсорів Tier 2 візи, не тільки FAANG
- https://relhut.com/salary-calculator - калькурятор базової зарплати в ЮК для технічних позицій
- Як потрапити в Кремнієву Долину (рос.)
- https://t.me/canada_it (рос.) - чатик айтівців по Канаді + корисні чати по Канаді https://canadakaknado.info/#chats (рос.)
Різне
- Історії з життя:
- Солянка
- Відео на Khan Academy з комбінаторики (і потім другий блок, там же) - вчить виводити комбінаторні формули (permutations, combinations) на ходу, прикиданням, а не запам’ятовувати їх.
- Amazon 1st round Interview questions (manager level)
- Levels.fyi: Compare salaries and career levels across companies
- Комбінаторика: основні правила та формули (рос.).
- Книги
- Introduction to Information Retrieval Сайти для вивчення програмування
- Interview Practice - середні між LeetCode і CodeWars
- https://www.codewars.com - для вивчення мов, велика кількість завдань і технічних приймань
- Firecode.io, Coding Interview Answers and Trainer
- Список ресурсів, на яких можна знайти рефералів (з якоїсь статті):
- Списки компаній за регіонами
Англійська мова
- Сайти для спілкування з рандомними людьми голос/текст/відео
- speaking24.com - якщо хочеться поспілкуватися, можна вписати свій скайп або зателефонувати тим, хто онлайн
- talkwithstranger.com - безплатний чат англійською, багато кімнат, розбитих на різні теми
- tohla.com - безплатний чат (текст/голос/відео)
- omegle.com - безплатний чат (текст/відео)
- free4talk.com - безплатні відеочати різними мовами, hangouts/і на самому сайті, групи по 2-10 осіб
- strangermeetup.com - Stranger Meetup
- verbling.com - тут колись були безплатні відеодзвінки в hangouts
- italki.com - платні викладачі (від $3 на годину) ком’юніті безплатно перевіряє тексти, есе, можна заводити друзів
- Різні соцмережі для мовного обміну
- paltalk.com
- lang-8
- searchy.net
- interpals.net
- epals.com
- easylanguageexchange.com - Easy Language Exchange
- conversationexchange.com - Обмін розмовами
- englishbaby.com
- Безплатні тести часи/граматика/ітд
- englisch-hilfen.de
- ego4u.com
- esl-lounge.com
- manythings.org
- examenglish.com - тест на читання TOEFL
- lengish.com (рос.)
- Сайти для вивчення мови в ігровій формі
- Аудіо книги
- loyalbooks.com - Audiobooks eBooks
- Відео, тести
- voanews.com - Voice of America Learning English
- bbc.co.uk - BBC Learning English
- perfect-english-grammar.com
- ted.com - TED Talks
- Перекладачі, корисні штуки
- englishconversationquestions.com - рандомні запитання для спілкування з людьми
- forvo.com - база вимов
- cambridge.org - Cambridge Dictionary
- multitran.com - перекладач multitran
- grammarly - перевірка граматики
- https://context.reverso.net/translation/ - переклад за контекстом, у багатьох випадках набагато корисніший за гугл перекладача
- https://fluent.express - перевірка тексту реальними людьми (професійними редакторами), платне, але, приміром, для перевірки резюме може стати в пригоді
- https://playphrase.me/ - пишеш фразу, сервіс показує уривки фільмів із вимовою цієї фрази.