Карьера программиста, Г. Лакман Макдауэлл
Feb 2, 2015 · 2 minute read · CommentsО чем эта книга, понятно из названия. Зачем я ее читал, вопрос интереснее. Как ни странно - в учебных целях. Сейчас поясню: главное практика и еще раз практика, а там целых 150 различных заданий. Казалось бы, бери и делай. Не сказал бы, что мой план удался. Большая часть задач очень узкая и мало применимая где-то, помимо собеседований. Все же парочку полезных вещей я вынес. Даже реализовал алгоритмы сортировки) и обхода графа).
Саму книгу можно разбить на две части – первая, про то как готовиться к собеседованию и общим принципам. Вторая, где-то то ¾ объема, это 150 задач, и разбор их решения. Как видите весьма специфично.
Заметки по ходу чтения:
-
Спокойствие, интервьюеры тоже люди
-
Любую техническую задачу на собеседовании можно решить за 5 шагов:
- Задать интервьюеру вопросы, чтобы снять неоднозначность
- Разработайте алгоритм
- Запишите псевдокод, но сообщите что собираетесь писать на конкретном языке
- Спокойно написать код
- Проверить написанную программу и исправить ошибки
-
5 подходов к алгоритмизации:
- Приводим пример
- Сопоставление образцов
- Упростить и обобщить
- Базовый случай и сборка решения
- Мозговой штурм структур данных (перебор)
-
Виды сортировок:
- Пузырьковая сортировка - берем 2 значения массива, если первое значение больше второго, они меняются местами. затем переходим к следующей паре и т.д.
- Сортировка выбором - ищем наименьший элемент, меняем местами с первым, затем ищем второй наименьший элемент, и снова перемещаем в начало.
- Сортировка слиянием - делим массив пополам, сортируем и сливаем.
- Быстрая сортировка - выбираем случайный (опорный) элемент. Другие элементы располагаем по принципу меньший-равный-больший. Обычно перестановкой.
- Поразрядная сортировка - группируем целые (в основном) числа по разрядам.
-
Базы данных
- бывает явное (explicit - join) и неявное (impicit - where) обьединения
- Нормализация позволяет минимизировать избыточность. Денормализация - оптимизировать время чтения.
P.S.: По алгоритмам сортировки есть замечательные видео. И одна не менее замечательная статья.
Cracking the Coding Interview by G. Laakmann McDowell
The title of the book clearly explains the topic. I started reading this book for learning, because the most important part of learning is practice. The book consists of 150 questions and solutions. I thought this would be the best way to practice. Nevertheless, questions were specific and not commonly used. However, I learned and implemented basic sorting algorithm and graph search.
The Book has two parts – the first part has common questions about an interview. It gives advice about interview plan and preparations. The biggest part, ¾ volume, has interview questions and explanations. It is a very specific book.