Карьера Программиста, Или Интервью Cracking Coding

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

Это пятое издание одного из западных бестселлеров среди книг по программированию — Взлом собеседования по программированию: 150 вопросов и ответов на собеседовании по программированию , получивший название в русском издании «Карьера программиста.

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



Карьера программиста, или Интервью Cracking Coding

Для IT-книги эта книга имеет совершенно невероятный рейтинг на сайте Amazon (по состоянию на 6 сентября она была №388 в общем книжном рейтинге и №1 в разделе «Компьютеры и технологии»), поэтому я, как куратор этот проект, был просто счастлив, когда «Питер» получил эксклюзивные права на издание этого бестселлера в России.

Немного об авторе книги.

Гейл Лакман - Этот Милый Американская IT-девушка, которая, однако, за время подготовки российского издания успела выйти замуж и обзавестись второй фамилией Макдауэлл.

Гейл несколько лет проводила собеседования с соискателями в Google, Microsoft и Apple, а затем основала собственную компанию CareerCup, которая помогает программистам готовиться к собеседованиям в крупных IT-компаниях.

И, конечно же, Гейл известна еще и как автор книги Cracking Coding Interview, которая уже много лет переиздается на Западе и не покидает вершин книжных чартов бестселлеров.

О предприимчивости Гейл Лакман свидетельствует и тот факт, что она лично выступает издателем собственных книг, и мы даже напрямую с ней договаривались о лицензировании книги в России (в общем, нонсенс для современного издательского бизнеса).

О чем эта книга? По названию может сложиться впечатление, что оно посвящено описанию процесса собеседований и найма в крупных корпорациях: как одеваться, как вести себя, как проходят собеседования в Google или Microsoft и как на каждом из них отклоняют нежелательных кандидатов.

компания.

Не совсем.

Кстати, интересная история: наших коллег из интернет-магазина Ozon тоже смутило название книги, и они поместили ее в раздел «Кадровый учет и делопроизводство», а нам потребовались немалые усилия, чтобы вернуть издание.

в правильную ветку классификатора .

Так что Cracking Coding Interview следует поставить в один ряд с классическими книгами об алгоритмах, которые заставляют программистов думать и совершенствоваться.

Вышеуказанным темам действительно отведено немного места (а именно 50 страниц), но основная и самая ценная часть книги — это почти 400 страниц реальных вопросов и тестовых заданий, которые абитуриенты получают на собеседованиях в самых известных ИТ-компаниях мира.

.

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

Всего в книге содержится 150 задач (и правильных ответов на них!) по таким темам, как ООП, тестирование, рекурсия, деревья и графы, базы данных, потоки и теория вероятностей и т. д. С аналогичным содержанием книги можно ознакомиться по адресу эта ссылка (PDF-файл на сайте издательства).

А для начала предлагаем вам попробовать выполнить одно из тестовых заданий книги из раздела «Задачи повышенной сложности».

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

Ответ из книги будет опубликован в комментариях завтра, 7 сентября, в 18:00. Просим владельцев книг не давать подсказок.

А ниже в качестве примера приведем еще одну задачу из раздела «Рекурсия и динамическое программирование» с правильным ответом.

Упражнение.

Реализовать функцию заливки краской, которая используется во многих графических редакторах.

Дана плоскость (двумерный массив цветов), точка и цвет, которым нужно заполнить все окружающее пространство, окрашенное в другой цвет. Решение Прежде всего, давайте представим, как работает метод. Когда мы вызываем PaintFill («нажимаем» кнопку заливки в графическом редакторе), находясь, например, на зеленом пикселе, мы хотим расширить границы.

Мы движемся все дальше и дальше, вызывая PaintFill для окружающих пикселей.

Если цвет пикселя отличается от зеленого, мы останавливаемся.

Вы можете реализовать этот алгоритм рекурсивно: 1 перечисление Цвет { 2 Черный, Белый, Красный, Желтый, Зеленый 3 } 4 5 логическое значение PaintFill(Color[][] screen, int x, int y, Color ocolor, 6 Цвет ncolor) { 7, если (х < 0 || x > = экран[0].

длина || 8 лет < 0 || y > = экран.

длина) { 9 вернуть ложь; 10 } 11 if (screen[y][x] == ocolor) { 12 экран[y][x] = ncolor; 13 PaintFill(экран, x - 1, y, ocolor, ncolor); //левый 14 PaintFill(экран, x + 1, y, ocolor, ncolor); // верно 15 PaintFill(экран, x, y - 1, ocolor, ncolor); // вершина 16 PaintFill(экран, x, y + 1, ocolor, ncolor); // нижний 17 } 18 вернет истину; 19 } 20 21 логическое значение PaintFill(Color[][] screen, int x, int y, Color ncolor){ 22 return PaintFill(screen, x, y, screen[y][x], ncolor); 23 } Обратите внимание на порядок Икс И й в массиве экран[y][x] и помните, что когда вы решаете задачу, связанную с компьютерной графикой, вам нужно использовать этот порядок.

Поскольку x соответствует горизонтальному направлению, эта переменная описывает номер столбца, а не номер строки.

Значение y соответствует номеру строки.

Здесь очень легко допустить ошибку, как во время собеседования, так и во время ежедневного программирования.

Теги: #карьера программиста #книги #книги
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.