Чеклист для разработчиков по подготовке к техническому собеседованию

Чеклист для разработчиков по подготовке к техническому собеседованию

Любое собеседование требует подготовки и "рефреша" знаний. В данной статье описываем основные топики которые нужно повторить не зависимо от вашего стека технологий. Этот чеклист больше пригодиться при собеседовании в крупную компанию типа Google, Amazon. Но эти знания не будут вам лишними и для "обычных" компаний.

Прежде чем приступить, рекомендуем ознакомиться с другими статьями на эту тему:

Приступим к тому как подготовиться к техническому собеседованию и какие темы стоит повторить:

Разминка с классическими задачками:

разминка

  1. Fizz Buzz
  2. 560. Subarray Sum Equals K
  3. Arrays: Left Rotation
  4. Strings: Making Anagrams
  5. Nth Fibonacci

Алгоритмы и структуры данных

алгоритм

Прежде чем перейти к видео о структурах данных и алгоритмах, рассмотрите возможность решения этих задачек ниже. Их решение поможет вам узнать, на чем сосредоточиться при просмотре видео по алгоритмах.

  1. Sum of Even Numbers After Queries
  2. Robot Return to Origin
  3. N-Repeated Element in Size 2N Array
  4. Balanced Binary Tree
  5. Longest Substring Without Repeating Characters
  6. Remove Nth Node From End of List
  7. Merge k Sorted Lists
  8. Next Permutation

Структуры данных

data structures

  1. 📹 Data Structures & Algorithms #1 --- What Are Data Structures? 
  2. 📹 Multi-dim  
  3. 📹 Dynamic Arrays
  4. 📹 Resizing arrays 
  5. 📹 Data Structures: Linked Lists
  6. 📹 Core Linked Lists Vs Arrays 
  7. 📹 Pointers to Pointers
  8. 📹 Data Structures: Trees
  9. 📹 Data Structures: Heaps
  10. 📹 Data Structures: Hash Tables
  11. 📹 Phone Book Problem
  12. 📹 Data Structures: Stacks and Queues
  13. 📹 Using Stacks Last-In First-Out 
  14. 📹 Data Structures: Crash Course Computer Science #14
  15. 📹 Data Structures: Tries

Алгоритмы

Сейчас, если вы не собеседуетесь в Google, Amazon, etc, то скорее всего вас не будут спрашивать про алгоритмы. Как по мне, знать их на память не обязательно, но иметь общее представление про каждый из них стоит.

algoritms

  1. 📹 Алгоритмы: Graph Search, DFS and BFS
  2. 📹 BFS(breadth-first search) and DFS(depth-first search) 
  3. 📹 Алгоритмы: Binary Search
  4. 📹 Binary Search Tree Review
  5. 📹 Python Алгоритмы для собесов
  6. 📹 Алгоритмы: Recursion
  7. 📹 Алгоритмы: сортировка пузырьком
  8. 📹 Алгоритмы: Merge Sort
  9. 📹 Алгоритмы: Quicksort

«O» большое и «o» малое

o my god

Если описать простыми словами: О большое описывает сложность вашего кода с использованием алгебраических терминов. Т.е таким образом можно определить скорость работы алгоритма.

Еще немного видео и статей на эту тему:

  1. 📹 Introduction to Big O Notation and Time Complexity (Data Structures & Algorithms #7)
  2. 📹 Harvard CS50 --- Asymptotic Notation 
  3. A Gentle Introduction to Algorithm Complexity Analysis
  4. Cheat sheet
  5. [RU] Знай сложности алгоритмов
  6. [RU] О большое: что это такое, почему это важно, и почему это не важно

Динамическое программирование

dynamic programming

Динамическое программирование — метод решения задачи путём её разбиения на несколько одинаковых подзадач, рекуррентно связанных между собой. Самым первый пример который приходит на ум — Числа фибоначчи. Чтобы вычислить некоторое число в этой последовательности, нам нужно сперва вычислить третье число, сложив первые два, затем четвёртое таким же образом на основе второго и третьего, и т.д.

  1. [RU] Динамическое программирование. Классические задачи
  2. 📹 Dynamic Programming (Think Like a Programmer)
  3. 📹 Algorithms: Memoization and Dynamic Programming
  4. 📹 Dynamic Programming I: Fibonacci, Shortest Paths
  5. 📹 Dynamic Programming II: Text Justification, Blackjack
  6. Dynamic Programming 

Манипуляции со строками

  1. 📹 Coding Interview Question and Answer: Longest Consecutive Characters
  2. 📹 Sedgewick--- Substring Search

Проблемные вопросы которые могут возникать на интервью:

  1. 📹 Google Coding Interview --- Universal Value Tree Problem
  2. 📹 Google Coding Interview Question and Answer #1: First Recurring Character
  3. 📹 Find min and max element in a binary search tree 
  4. 📹 Find height of a binary tree
  5. 📹 Check if a binary tree is binary search tree or not 
  6. 📹 What Is Tail Recursion? Why Is It So Bad?

Пробелы после изучения

probel

Теперь, когда вы много чего изучили и посмотрели несколько видео, давайте еще подтянем несколько пробелов и решим задачки:

  1. Bigger Is Greater
  2. ZigZag Conversion
  3. Reverse Integer
  4. Combination Sum II
  5. Multiply Strings
  6. Larry's Array
  7. Short Palindrome
  8. Valid Number
  9. Bigger is Greater
  10. The Full Counting Sort
  11. Lily's Homework
  12. Common Child
  13. Repeated Substring Pattern
  14. Remove Element
  15. Delete Node in a BST
  16. Split Array into Consecutive Subsequences
  17. Number of Subarrays with Bounded Maximum
  18. Combination Sum IV
  19. Best Time to Buy and Sell Stock with Cooldown
  20. Longest Repeating Character Replacement
  21. Swap Nodes in Pairs
  22. Binary Tree Right Side View
  23. Flatten Nested List Iterator
  24. Binary Tree Level Order Traversal
  25. Binary Search Tree Iterator
  26. Maximum Length of Pair Chain
  27. Split Linked List in Parts

Дизайн систем

design

Вопросы проектирования системы являются важными вопросами, которые часто задают на позициях выше middle. Вы должны уметь мыслить масштабно как программист. как развернуть тот или иной сервис, какие серверы вам нужны, как бы вы управляли трафиком и т. д. Все эти идеи показывают, что вы умеете разрабатывать, дизайнить и развертывать проекты, а не просто кодить то, что вам говорят.

  1. 📹 Parking Lot System
  2. 📹 Whats App
  3. 📹 Uber design
  4. 📹 Instagram
  5. 📹 Tinder Service

Операционные системы

os

Вопросы по операционной системе встречаются немного реже сейчас на собеседованиях, наверное только тогда, когда вы разрабатываете драйверы. Но иметь общее представление таких понятий, как: потоки, планирование, память и т.д. нужно.

  1. Commonly Asked Operating Systems Interview Questions
  2. What is Translation lookaside buffer?
  3. Why does Round Robin avoid the Priority Inversion Problem?
  4. Interrupt Vs System Call---What is 'inode' in file system?
  5. Operating System Interview Questions and Answers --- Part I
  6. What is a kernel --- Gary explains
  7. Round Robin Algorithm Tutorial (CPU Scheduling)
  8. 📹 The Magic of LRU Cache (100 Days of Google Dev) 
  9. 📹 MIT 6.004 L15: The Memory Hierarchy
  10. 📹 Interrupts 
  11. 📹 Scheduling 

Шаблоны проектирования

patterns

Вопросы про паттерны очень часто встречаются на собеседованиях. Вот вам несколько материалов для подготовки:

  1. [RU] Статьи с шаблонами проектирования
  2. [RU] Статьи про архитектуру ПО
  3. [RU] GoF паттерны
  4. [RU] GRASP принципы

SQL

sql

SQL задачки

  1. Trips and Users
  2. Human Traffic of Stadium
  3. Department Top Three Salaries
  4. Exchange Seats
  5. Hackerrank The Report
  6. Nth Highest Salary
  7. Symmetric Pairs
  8. OccupationsPlacements
  9. Ollivander's Inventory
  10. Binary Tree Nodes
  11. Weather Observation Station 18
  12. ChallengesPrint Prime Numbers
  13. Big Countries
  14. Exchange Seats
  15. Interview Questions: 3 Tech Screening Exercises (For Data Analysts)

SQL видео

  1. 📹 IQ15: 6 SQL Query Interview Questions
  2. 📹 Learning about ROW_NUMBER and Analytic Functions
  3. 📹 Advanced Implementation Of Analytic Functions
  4. 📹 Advanced Implementation Of Analytic Functions Part 2
  5. 📹 Wise Owl SQL Videos

SQL вопросы

  1. [RU] Уровени изолированности транзакций
  2. [RU] Нормализация баз данных
  3. [RU] 14 вопросов об индексах в SQL Server, которые вы стеснялись задать

Источник: https://dev.to/seattledataguy/the-interview-study-guide-for-software-engineers-764

 
0 543 18.02.2020 23:57

Комментарии:

Пожалуйста авторизируйтесь, чтобы получить возможность оставлять комментарии