Карьера программиста. Как устроиться на работу в Google, Microsoft или другую ведущую IT-компанию
Г. Лакман Макдауэлл
Пятое издание этого мирового бестселлера поможет вам наилучшим образом подготовиться к собеседованию при приеме на работу программистом или руководителем в крупную IT-организацию или перспективный стартап. Основную часть книги составляют ответы на технические вопросы и задания, которые обычно получают соискатели на собеседовании в таких компаниях, как Google, Microsoft, Apple, Amazon и других. Рассмотрены типичные ошибки, которые допускают кандидаты, а также эффективные методики подготовки к собеседованию. Используя материал этой книги, вы с легкостью подготовитесь к устройству на работу в Google, Microsoft или любую другую ведущую IT-компанию.
Издательство: Питер, 2012 г.
ISBN 978-5-459-01120-3
Количество страниц: 416.
Содержание книги «Карьера программиста. Как устроиться на работу в Google, Microsoft или другую ведущую IT-компанию»:
- 13 Предисловие
- 14 Введение
- 14 Что-то не так
- 15 Мой подход
- 15 Моя страсть
- 15 От издательства
- 16 Часть I. Процесс собеседования
- 16 Небольшое вступление
- 16 Как выбираются вопросы
- 17 График и карта подготовки
- 20 Процедура оценки
- 20 Неправильные ответы
- 21 Дресс-код
- 21 10 наиболее частых ошибок
- 21 1. Использование компьютера
- 22 2. Игнорирование поведенческих вопросов
- 22 3. Отказ от псевдо-интервью
- 22 4. Попытка зазубрить ответ
- 22 5. Решение задачи «в уме»
- 22 6. Спешка
- 23 7. Грязный код
- 23 8. Отказ от проверки
- 23 9. Небрежное отношение к исправлению ошибок
- 23 10. Отказ от решения
- 23 Часто задаваемые вопросы
- 23 Нужно ли мне говорить интервьюеру, что я уже знаком с вопросом?
- 24 Какой язык программирования следует использовать?
- 24 После собеседования мне ничего не сказали. Мне отказали?
- 24 Могу ли я попытаться еще раз, если мне отказали?
- 25 Часть II. За кулисами
- 25 Microsoft
- 26 Amazon
- 27 Google
- 28 Apple
- 29 Facebook
- 30 Yahoo!
- 31 Часть III. Нестандартные случаи
- 31 Кандидат-профессионал
- 31 Тестеры и SDET
- 32 Совет
- 32 Менеджеры программ и менеджеры продукта
- 33 Ведущие разработчики и менеджеры
- 34 Стартап
- 34 Процесс подачи заявления
- 34 Виза и разрешение на работу
- 35 Резюме
- 35 Процесс собеседования
- 36 Часть IV. Перед собеседованием
- 36 Получаем «правильный» опыт
- 37 Налаживаем связи
- 37 Правильный круг знакомств
- 37 Как построить сильный круг знакомств
- 38 Идеальное резюме
- 38 Правильный размер
- 38 Трудовой стаж
- 39 Проекты
- 39 Языки программирования и программные продукты
- 40 Часть V. Подготовка к поведенческим вопросам
- 40 Поведенческие вопросы
- 40 Как подготовиться
- 41 Ваши слабые места
- 41 Что заставляет вас работать
- 41 Какие вопросы нужно задавать интервьюеру
- 42 Ответы на поведенческие вопросы
- 42 Отвечайте четко, но без высокомерия
- 42 Сократите подробности до минимума
- 42 Структурируйте ответ
- 40 Поведенческие вопросы
- 44 Часть VI. Технические вопросы
- 44 Подготовка
- 44 Как организовать подготовку
- 44 Что нужно знать
- 45 Таблица степеней двойки
- 45 Нужно ли знать все о программировании на C++, Java или других языках
- 46 Ответы на технические вопросы
- 46 Пять шагов к решению
- 48 Пять подходов к алгоритмизации
- 48 Подход 1. Приводим пример
- 49 Подход 2. Сопоставление с образцом
- 49 Подход 3. Упростить и обобщить
- 50 Подход 4. Базовый случай и сборка решения
- 50 Подход 5. Мозговой штурм структур данных
- 51 Как выглядит хороший код
- 51 Структуры данных
- 52 Обоснованное многократное использование кода
- 53 Модульность
- 55 Гибкость и надежность
- 55 Проверка
- 44 Подготовка
- 56 Часть VII. Жизнь после собеседования
- 56 Реакция на предложение и на отказ
- 56 Сроки принятия решения
- 56 Вы отказываетесь от работы
- 56 Вам отказали
- 56 Вам сделали предложение
- 57 Финансовый пакет
- 57 Карьерный рост
- 58 Стабильность компании
- 58 Удовольствие от работы
- 58 Переговоры
- 59 На работе
- 59 Создайте график своего карьерного роста
- 60 Устанавливайте прочные отношения
- 60 Спросите себя, что вам нужно
- 56 Реакция на предложение и на отказ
- 61 Часть VIII. Вопросы собеседования
- 61 1. Массивы и строки
- 61 Хэш-таблицы
- 62 ArrayList (динамический массив)
- 62 StringBuffer (буфер строк)
- 63 Вопросы интервью
- 64 2. Связные списки
- 64 Создание связного списка
- 64 Удаление узла из односвязного списка
- 65 Метод бегунка
- 65 Рекурсия и связные списки
- 65 Вопросы собеседования
- 67 3. Стек и очередь
- 67 Реализация стека
- 67 Реализация очереди
- 68 Вопросы собеседования
- 70 4. Деревья и графы
- 70 Потенциальные ловушки
- 70 Бинарное дерево vs бинарное дерево поиска
- 70 Сбалансировано vs несбалансировано
- 70 Полнота дерева
- 70 Обход бинарного дерева
- 70 Балансировка: красно-черные и АВЛ-деревья
- 71 Префиксное дерево
- 71 Обход графа
- 71 Поиск в глубину
- 72 Поиск в ширину
- 72 Вопросы собеседования
- 70 Потенциальные ловушки
- 74 5. Поразрядная обработка
- 74 Расчеты на бумаге
- 75 Биты: трюки и факты
- 75 Основные задачи: получение, установка, очистка и обновление бита
- 75 Извлечение бита
- 75 Установка бита
- 75 Очистка бита
- 76 Обновление бита
- 76 Вопросы собеседования
- 78 6. Головоломки
- 78 Начните говорить
- 78 Правила и шаблоны
- 79 Балансировка худшего случая
- 79 Алгоритмический подход
- 80 Вопросы собеседования
- 81 7. Математика и теория вероятностей
- 81 Простые числа
- 81 Делимость
- 81 Является ли число простым
- 82 Список простых чисел: решето Эратосфена
- 83 Теория вероятностей
- 83 Вероятность события {A and B}
- 84 Вероятность события {A or B}
- 84 Независимость событий
- 84 Взаимоисключающие события
- 85 Обратите внимание!
- 85 Вопросы собеседования
- 81 Простые числа
- 86 8. Объектно-ориентированное проектирование
- 86 Как подготовиться к заданиям по ООП
- 87 Разработка шаблонов
- 87 Singleton
- 88 Factory Method
- 88 Вопросы собеседования
- 90 9. Рекурсия и динамическое программирование
- 90 С чего начать
- 90 Динамическое программирование
- 90 Простой пример динамического программирования: числа Фибоначчи
- 91 Рекурсивные и итерационные решения
- 92 Вопросы собеседования
- 94 10. Сортировка и поиск
- 94 Общие алгоритмы сортировки
- 97 Алгоритмы поиска
- 97 Вопросы собеседования
- 99 11. Масштабируемость и ограничения памяти
- 99 Пошаговый подход
- 99 Что нужно знать: информация, стратегия и проблема
- 99 Типичная система
- 100 Разделение данных
- 101 Пример: найдите все документы, содержащие список слов
- 102 Вопросы собеседования
- 104 12. Тестирование
- 104 Чего ожидает интервьюер
- 105 Тестирование реального объекта
- 106 Тестирование программного обеспечения
- 107 Тестирование функций
- 108 Поиск и устранение неисправностей
- 109 Вопросы собеседования
- 110 13. C и C++
- 110 Классы и наследование
- 111 Конструкторы и деструкторы
- 111 Виртуальные функции
- 112 Виртуальный деструктор
- 113 Значения по умолчанию
- 114 Перезагрузка операторов
- 114 Указатели и ссылки
- 114 Ссылки
- 114 Арифметика указателей
- 115 Шаблоны
- 116 Вопросы собеседования
- 117 14. Java
- 117 Подход к изучению
- 117 Ключевое слово final
- 117 Ключевое слово finally
- 118 Метод finalize
- 119 Перегрузка vs переопределение
- 120 Java Collection Framework
- 120 Вопросы собеседования
- 122 15. Базы данных
- 122 SQL-синтаксис и его варианты
- 122 Денормализованные и нормализованные базы данных
- 123 SQL-операторы
- 123 Запрос 1: регистрация студента
- 124 Запрос 2: размер аудитории
- 125 Проектирование небольшой базы данных
- 126 Проектирование больших баз данных
- 126 Вопросы собеседования
- 128 16. Потоки и блокировки
- 128 Потоки в Java
- 129 Расширение класса Thread
- 130 Расширение класса Thread vs реализация Runnable-интерфейса
- 130 Синхронизация и блокировки
- 130 Методы синхронизации
- 132 Синхронизованные блоки кода
- 132 Блокировки
- 133 Взаимные блокировки и их предотвращение
- 134 Вопросы собеседования
- 135 17. Задачи умеренной сложности
- 138 18. Задачи повышенной сложности
- 140 Часть IX. Решения
- 140 1. Массивы и строки
- 150 2. Связные списки
- 166 3. Стеки и очереди
- 182 4. Деревья и графы
- 200 5. Поразрядная обработка
- 214 6. Головоломки
- 219 7. Математика и теория вероятностей
- 233 8. Объектно-ориентированное проектирование
- 264 9. Рекурсия и динамическое программирование
- 285 10. Сортировка и поиск
- 301 11. Масштабируемость и ограничения памяти
- 316 12. Тестирование
- 321 13. C и C++
- 332 14. Java
- 339 15. Базы данных
- 345 16. Потоки и блокировки
- 357 17. Задачи умеренной сложности
- 385 18. Задачи повышенной сложности
- 412 Благодарности
- 413 Об авторе
Инструкция как скачать книгу Г. Лакман Макдауэлл: Карьера программиста. Как устроиться на работу в Google, Microsoft или другую ведущую IT-компанию в форматах DjVu, PDF, DOC или fb2 совершенно бесплатно.
Рейтинг книги:
1 голос
1048