Три дня чтения в подарок
Зарегистрируйтесь и читайте бесплатно

Карьера программиста. Как устроиться на работу в Google, Microsoft или другую ведущую IT-компанию

Карьера программиста. Как устроиться на работу в Google, Microsoft или другую ведущую IT-компанию
Книга в данный момент недоступна
Оценка читателей
2.86

Пятое издание этого мирового бестселлера поможет вам наилучшим образом подготовиться к собеседованию при приеме на работу программистом или руководителем в крупную IT-организацию или перспективный стартап. Основную часть книги составляют ответы на технические вопросы и задания, которые обычно получают соискатели на собеседовании в таких компаниях, как Google, Microsoft, Apple, Amazon и других. Рассмотрены типичные ошибки, которые допускают кандидаты, а также эффективные методики поготовки к собеседованию. Используя материал этой книги, вы с легкостью подготовитесь к устройству на работу в Google, Microsoft или любую другую ведущую IT-компанию.

Лучшая рецензия
Smart5172
Smart5172
Оценка:

Когда читаешь книги из раздела "... ну почему я не сделала это раньше" остаются смешанные чувства.
Впечатление - книга хороша. Практичные советы, воды мало. Мозг проясняется, работать хочется.
Посему, - книга удостоилась составления майнд-карты.
Всем рекомендую читать частично раздел 1, 4, 7, разделы 2-3 (есть немного для ПМ), 6, 8 можно оставить программистам, универсальный (для всех) особо ценный раздел 5- подготовка к поведенческим вопросам - хорошая таблица
Впечатляет продуманная карта подготовки из первого раздела: http://www.xmind.net/m/Bzv8/

Лучшая цитата
Вообще-то говоря, я не рекомендую указывать в резюме умение работать с продуктами вроде Microsoft Office, – это должен знать каждый.
Оглавление
  • Предисловие
  • Введение
  • Что-то не так
  • Мой подход
  • Моя страсть
  • От издательства
  • Часть I. Процесс собеседования
  • Небольшое вступление
  • Как выбираются вопросы
  • График и карта подготовки
  • Процедура оценки
  • Неправильные ответы
  • Дресс-код
  • 10наиболее частых ошибок
  • 1. Использование компьютера
  • 2. Игнорирование поведенческих вопросов
  • 3. Отказ от псевдоинтервью
  • 4.Попытка зазубрить ответ
  • 5.Решение задачи «в уме»
  • 6.Спешка
  • 7. Грязный код
  • 8. Отказ от проверки
  • 9. Небрежное отношение к исправлению ошибок
  • 10.Отказ от решения
  • Часто задаваемые вопросы
  • Нужно ли мне говорить интервьюеру, что я уже знаком с вопросом?
  • Какой язык программирования следует использовать?
  • После собеседования мне ничего не сказали. Мне отказали?
  • Могу ли я попытаться еще раз, если мне отказали?
  • Часть II. За кулисами
  • Microsoft
  • Amazon
  • Google
  • Apple
  • Facebook
  • Yahoo!
  • Часть III. Нестандартные случаи
  • Кандидат-профессионал
  • Тестеры и SDET
  • Менеджеры программ и менеджеры продукта
  • Стартап
  • Процесс подачи заявления
  • Виза и разрешение на работу
  • Резюме
  • Процесс собеседования
  • Часть IV. Перед собеседованием
  • Получаем «правильный» опыт
  • Налаживаем связи
  • Правильный круг знакомств
  • Как построить сильный круг знакомств
  • Идеальное резюме
  • Правильный размер
  • Трудовой стаж
  • Указывайте только значимые позиции
  • Проекты
  • Языки программирования и программные продукты
  • Часть V. Подготовка к поведенческим вопросам
  • Поведенческие вопросы
  • Как подготовиться
  • Ваши слабые места
  • Что заставляет вас работать
  • Какие вопросы нужно задавать интервьюеру
  • Ответы на поведенческие вопросы
  • Отвечайте четко, но без высокомерия
  • Часть VI. Технические вопросы
  • Подготовка
  • Как организовать подготовку
  • Что нужно знать
  • Таблица степеней двойки
  • Нужно ли знать все о программировании на C++, Java или других языках
  • Ответы на технические вопросы
  • Пять шагов к решению
  • Шаг 1. Задайте вопросы
  • Шаг 2. Разработайте алгоритм
  • Шаг 3. Псевдокод
  • Шаг 4. Код
  • Шаг 5. Проверка
  • Пять подходов к алгоритмизации
  • Подход 1. Приводим пример
  • Подход 2. Сопоставление с образцом
  • Подход 3. Упростить и обобщить
  • Подход 4. Базовый случай и сборка решения
  • Подход 5. Мозговой штурм структур данных
  • Как выглядит хороший код
  • Структуры данных
  • Обоснованное многократное использование кода
  • Модульность
  • Гибкость и надежность
  • Проверка
  • Часть VII. Жизнь после собеседования
  • Реакция на предложение и на отказ
  • Сроки принятия решения
  • Вы отказываетесь от работы
  • Вам отказали
  • Вам сделали предложение
  • Финансовый пакет
  • Карьерный рост
  • Стабильность компании
  • Удовольствие от работы
  • Переговоры
  • На работе
  • Создайте график своего карьерного роста
  • Устанавливайте прочные отношения
  • Спросите себя, что вам нужно
  • Часть VIII. Вопросы собеседования
  • Структуры данных. Вопросы и советы
  • 1.Массивы и строки
  • Хэш-таблицы
  • ArrayList (динамический массив)
  • StringBuffer (буфер строк)
  • Вопросы интервью
  • 2.Связные списки
  • Создание связного списка
  • Удаление узла из односвязного списка
  • Метод бегунка
  • Рекурсия и связные списки
  • Вопросы собеседования
  • 3.Стек и очередь
  • Реализация стека
  • Реализация очереди
  • Вопросы собеседования
  • 4.Деревья и графы
  • Потенциальные ловушки
  • Бинарное дерево vs бинарное дерево поиска
  • Сбалансировано vs несбалансировано
  • Полнота дерева
  • Обход бинарного дерева
  • Балансировка: красно-черные и АВЛ-деревья
  • Префиксное дерево
  • Обход графа
  • Поиск в глубину
  • Поиск в ширину
  • Вопросы собеседования
  • Концепции и алгоритмы. Вопросы и советы
  • 5.Поразрядная обработка
  • Расчеты на бумаге
  • Биты: трюки и факты
  • Основные задачи: получение, установка, очистка и обновление бита
  • Извлечение бита
  • Установка бита
  • Очистка бита
  • Обновление бита
  • Вопросы собеседования
  • 6.Головоломки
  • Начните говорить
  • Правила и шаблоны
  • Балансировка худшего случая
  • Алгоритмический подход
  • Вопросы собеседования
  • 7.Математика и теория вероятностей
  • Простые числа
  • Делимость
  • Является ли число простым
  • Список простых чисел: решето Эратосфена
  • Теория вероятностей
  • Вероятность события {A and B}
  • Вероятность события {A or B}
  • Независимость событий
  • Взаимоисключающие события
  • Обратите внимание!
  • Вопросы собеседования
  • 8.Объектно-ориентированное проектирование
  • Как подготовиться к заданиям по ООП
  • Разработка шаблонов
  • Singleton
  • Factory Method
  • Вопросы собеседования
  • 9.Рекурсия и динамическое программирование
  • С чего начать
  • Динамическое программирование
  • Простой пример динамического программирования: числа Фибоначчи
  • Рекурсивные и итерационные решения
  • Вопросы собеседования
  • 10.Сортировка и поиск
  • Общие алгоритмы сортировки
  • Алгоритмы поиска
  • Вопросы собеседования
  • 11.Масштабируемость и ограничения памяти
  • Пошаговый подход
  • Что нужно знать: информация, стратегия и проблема
  • Типичная система
  • Разделение данных
  • Пример: найдите все документы, содержащие список слов
  • Вопросы собеседования
  • 12.Тестирование
  • Чего ожидает интервьюер
  • Тестирование реального объекта
  • Тестирование программного обеспечения
  • Тестирование функций
  • Поиск и устранение неисправностей
  • Вопросы собеседования
  • Базовые знания. Вопросы и советы
  • 13.C и C++
  • Классы и наследование
  • Конструкторы и деструкторы
  • Виртуальные функции
  • Виртуальный деструктор
  • Значения по умолчанию
  • Перезагрузка операторов
  • Указатели и ссылки
  • Ссылки
  • Арифметика указателей
  • Шаблоны
  • Вопросы собеседования
  • 14.Java
  • Подход к изучению
  • Ключевое слово final
  • Ключевое слово finally
  • Метод finalize
  • Перегрузка vs переопределение
  • Java Collection Framework
  • Вопросы собеседования
  • 15.Базы данных
  • SQL-синтаксис и его варианты
  • Денормализованные и нормализованные базы данных
  • SQL-операторы
  • Запрос 1: регистрация студента
  • Запрос 2: размер аудитории
  • Проектирование небольшой базы данных
  • Проектирование больших баз данных
  • Вопросы собеседования
  • 16.Потоки и блокировки
  • Потоки в Java
  • Расширение класса Thread
  • Расширение класса Thread vs реализация Runnable-интерфейса
  • Синхронизация и блокировки
  • Методы синхронизации
  • Синхронизованные блоки кода
  • Блокировки
  • Взаимные блокировки и их предотвращение
  • Вопросы собеседования
  • Дополнительные задачи
  • 17.Задачи умеренной сложности
  • 18.Задачи повышенной сложности
  • Часть IX. Решения
  • Структуры данных: решения
  • 1.Массивы и строки
  • Структуры данных: решения
  • 2.Связные списки
  • Структуры данных: решения
  • 3.Стеки и очереди
  • Структуры данных: решения
  • 4.Деревья и графы
  • Концепции и алгоритмы: решения
  • 5.Поразрядная обработка
  • Концепции и алгоритмы: решения
  • 6.Головоломки
  • Концепции и алгоритмы: решения
  • 7.Математика и теория вероятностей
  • Концепции и алгоритмы: решения
  • 8.Объектно-ориентированное проектирование
  • Концепции и алгоритмы: решения
  • 9.Рекурсия и динамическое программирование
  • Концепции и алгоритмы: решения
  • 10.Сортировка и поиск
  • Концепции и алгоритмы: решения
  • 11.Масштабируемость и ограничения памяти
  • Концепции и алгоритмы: решения
  • 12.Тестирование
  • Базовые знания: решения
  • 13.C и C++
  • Базовые знания: решения
  • 14.Java
  • Базовые знания: решения
  • 15.Базы данных
  • Базовые знания: решения
  • 16.Потоки и блокировки
  • Дополнительные задачи: решения
  • 17.Задачи умеренной сложности
  • Дополнительные задачи: решения
  • 18.Задачи повышенной сложности
  • Благодарности
  • Об авторе
  • Примечания