|
@@ -41,8 +41,8 @@
|
|
- [О Google](#О-google)
|
|
- [О Google](#О-google)
|
|
- [О видео ресурсах](#О-видео-ресурсах)
|
|
- [О видео ресурсах](#О-видео-ресурсах)
|
|
- [Процесс собеседования & Основное в подготовке к интервью](#Процесс-собеседования-Основное-в-подготовке-к-интервью)
|
|
- [Процесс собеседования & Основное в подготовке к интервью](#Процесс-собеседования-Основное-в-подготовке-к-интервью)
|
|
-- [Выберите один язык для собеседования](#pick-one-language-for-the-interview)
|
|
|
|
-- [Список книг](#book-list)
|
|
|
|
|
|
+- [Выберите один язык для собеседования](#Выберите-один-язык-для-собеседования)
|
|
|
|
+- [Список книг](#Список-книг)
|
|
- [Перед тем как ты начнешь](#before-you-get-started)
|
|
- [Перед тем как ты начнешь](#before-you-get-started)
|
|
- [Что еще не охвачено](#what-you-wont-see-covered)
|
|
- [Что еще не охвачено](#what-you-wont-see-covered)
|
|
- [Необходимые знания](#prerequisite-knowledge)
|
|
- [Необходимые знания](#prerequisite-knowledge)
|
|
@@ -253,18 +253,18 @@ Google не возьмёт тебя на работу.
|
|
Их называют MOOCs. Некоторые курсы не имеют круглогодичного доступа и вам нужно подождать несколько месяцев,
|
|
Их называют MOOCs. Некоторые курсы не имеют круглогодичного доступа и вам нужно подождать несколько месяцев,
|
|
прежде чем получите к ним доступ. Курсы на Lynda.com платные.
|
|
прежде чем получите к ним доступ. Курсы на Lynda.com платные.
|
|
|
|
|
|
- Я был бы вам благодарен за помощь в добавлении бесплатных, всегда доступных публичных ресурсов, таких как видео с YouTube
|
|
|
|
- сопровождающих онлайн курсы. Мне нравяться использовать университетские лекции.
|
|
|
|
|
|
+ Я был бы вам благодарен за помощь в добавлении бесплатных, всегда доступных публичных ресурсов, таких
|
|
|
|
+ как видео с YouTube сопровождающих онлайн курсы. Мне нравяться использовать университетские лекции.
|
|
|
|
|
|
|
|
|
|
## Процесс собеседования & Основное в подготовке к интервью
|
|
## Процесс собеседования & Основное в подготовке к интервью
|
|
|
|
|
|
- [ ] Видео:
|
|
- [ ] Видео:
|
|
- [ ] [Как работать в Google: Подготовка к собеседованию на позицию инженера (видео)](https://www.youtube.com/watch?v=ko-KkSmp-Lk)
|
|
- [ ] [Как работать в Google: Подготовка к собеседованию на позицию инженера (видео)](https://www.youtube.com/watch?v=ko-KkSmp-Lk)
|
|
- - [ ] [Как работать в Google: Пример кодированияg/Собеседование инженера (видео)](https://www.youtube.com/watch?v=XKu_SEDAykw)
|
|
|
|
|
|
+ - [ ] [Как работать в Google: Пример кодирования/Собеседование инженера (видео)](https://www.youtube.com/watch?v=XKu_SEDAykw)
|
|
- [ ] [Как работать в Google - Подготовка кандидатов (видео)](https://www.youtube.com/watch?v=oWbUtlUhwa8&feature=youtu.be)
|
|
- [ ] [Как работать в Google - Подготовка кандидатов (видео)](https://www.youtube.com/watch?v=oWbUtlUhwa8&feature=youtu.be)
|
|
- [ ] [Советы для технического собеседования от рекрутеров из Google (видео)](https://www.youtube.com/watch?v=qc1owf2-220&feature=youtu.be)
|
|
- [ ] [Советы для технического собеседования от рекрутеров из Google (видео)](https://www.youtube.com/watch?v=qc1owf2-220&feature=youtu.be)
|
|
- - [ ] [Как работать в Google: Подготовка технического резюме] (видео)](https://www.youtube.com/watch?v=8npJLXkcmu8)
|
|
|
|
|
|
+ - [ ] [Как работать в Google: Подготовка технического резюме (видео)](https://www.youtube.com/watch?v=8npJLXkcmu8)
|
|
|
|
|
|
- [ ] Статьи:
|
|
- [ ] Статьи:
|
|
- [ ] [Стать гуглером за три шага](http://www.google.com/about/careers/lifeatgoogle/hiringprocess/)
|
|
- [ ] [Стать гуглером за три шага](http://www.google.com/about/careers/lifeatgoogle/hiringprocess/)
|
|
@@ -275,7 +275,7 @@ Google не возьмёт тебя на работу.
|
|
|
|
|
|
- [ ] Подготовительные курсы:
|
|
- [ ] Подготовительные курсы:
|
|
- [ ] [Собеседование инженера-программиста (платный курс)](https://www.udemy.com/software-engineer-interview-unleashed):
|
|
- [ ] [Собеседование инженера-программиста (платный курс)](https://www.udemy.com/software-engineer-interview-unleashed):
|
|
- - Как самосттоятельно подготовиться с собеседованию на позицию инженера-программиста от бывшего сотрудника Google
|
|
|
|
|
|
+ - Как самостоятельно подготовиться r собеседованию на позицию инженера-программиста от бывшего сотрудника Google
|
|
|
|
|
|
- [ ] Дополнительно (это не рекомендация Google, а моя собственная):
|
|
- [ ] Дополнительно (это не рекомендация Google, а моя собственная):
|
|
- [ ] [ABC: Программируй всегда](https://medium.com/always-be-coding/abc-always-be-coding-d5f8051afce2#.4heg8zvm4)
|
|
- [ ] [ABC: Программируй всегда](https://medium.com/always-be-coding/abc-always-be-coding-d5f8051afce2#.4heg8zvm4)
|
|
@@ -284,170 +284,172 @@ Google не возьмёт тебя на работу.
|
|
- [ ] [Что думает Google о найме, управлении и культуре](http://www.kpcb.com/blog/lessons-learned-how-google-thinks-about-hiring-management-and-culture)
|
|
- [ ] [Что думает Google о найме, управлении и культуре](http://www.kpcb.com/blog/lessons-learned-how-google-thinks-about-hiring-management-and-culture)
|
|
- [ ] [Эффективное кодирование на доске в процессе собеседования](http://www.coderust.com/blog/2014/04/10/effective-whiteboarding-during-programming-interviews/)
|
|
- [ ] [Эффективное кодирование на доске в процессе собеседования](http://www.coderust.com/blog/2014/04/10/effective-whiteboarding-during-programming-interviews/)
|
|
- [ ] Прохождения собеседования по программированию набор 1:
|
|
- [ ] Прохождения собеседования по программированию набор 1:
|
|
- - [ ] [Gayle L McDowell - Cracking The Coding Interview (video)](https://www.youtube.com/watch?v=rEJzOhC5ZtQ)
|
|
|
|
- - [ ] [Cracking the Coding Interview with Author Gayle Laakmann McDowell (video)](https://www.youtube.com/watch?v=aClxtDcdpsQ)
|
|
|
|
|
|
+ - [ ] [Gayle L McDowell - Прохождения собеседования по программированию (video)](https://www.youtube.com/watch?v=rEJzOhC5ZtQ)
|
|
|
|
+ - [ ] [Прохождения собеседования по программированию с Gayle Laakmann McDowell (video)](https://www.youtube.com/watch?v=aClxtDcdpsQ)
|
|
- [ ] Как получить работу в большой четверке:
|
|
- [ ] Как получить работу в большой четверке:
|
|
- - [ ] ['Как получить работу в большой четверк - Amazon, Facebook, Google & Microsoft' (video)](https://www.youtube.com/watch?v=YJZCUhxNCv8)
|
|
|
|
|
|
+ - [ ] ['Как получить работу в большой четверке - Amazon, Facebook, Google & Microsoft' (video)](https://www.youtube.com/watch?v=YJZCUhxNCv8)
|
|
- [ ] [Ошибки на собеседованиях в Google](http://alexbowe.com/failing-at-google-interviews/)
|
|
- [ ] [Ошибки на собеседованиях в Google](http://alexbowe.com/failing-at-google-interviews/)
|
|
|
|
|
|
-## Pick One Language for the Interview
|
|
|
|
|
|
+## Выберите один язык для собеседования
|
|
|
|
|
|
-I wrote this short article about it: [Important: Pick One Language for the Google Interview](https://googleyasheck.com/important-pick-one-language-for-the-google-interview/)
|
|
|
|
|
|
+Я написал небольшую статью об этом: [Важно: Выберите один язык для собеседования в Google](https://googleyasheck.com/important-pick-one-language-for-the-google-interview/)
|
|
|
|
|
|
-You can use a language you are comfortable in to do the coding part of the interview, but for Google, these are solid choices:
|
|
|
|
|
|
+На этапе собеседования, когда требуется программировать, вы можете использовать наиболее комфортный для вас язык
|
|
|
|
+программирования. Для Google лучшим выбором будут следующие:
|
|
|
|
|
|
- C++
|
|
- C++
|
|
- Java
|
|
- Java
|
|
- Python
|
|
- Python
|
|
|
|
|
|
-You could also use these, but read around first. There may be caveats:
|
|
|
|
|
|
+Так же подойдут:
|
|
|
|
|
|
- JavaScript
|
|
- JavaScript
|
|
- Ruby
|
|
- Ruby
|
|
|
|
|
|
-You need to be very comfortable in the language and be knowledgeable.
|
|
|
|
|
|
+Для вас должно быть комфортно писать программы на выбранном языке и вы должны его хорошо знать.
|
|
|
|
|
|
-Read more about choices:
|
|
|
|
|
|
+Подробнее о выборе:
|
|
- http://www.byte-by-byte.com/choose-the-right-language-for-your-coding-interview/
|
|
- http://www.byte-by-byte.com/choose-the-right-language-for-your-coding-interview/
|
|
- http://blog.codingforinterviews.com/best-programming-language-jobs/
|
|
- http://blog.codingforinterviews.com/best-programming-language-jobs/
|
|
- https://www.quora.com/What-is-the-best-language-to-program-in-for-an-in-person-Google-interview
|
|
- https://www.quora.com/What-is-the-best-language-to-program-in-for-an-in-person-Google-interview
|
|
|
|
|
|
-[See language resources here](../programming-language-resources.md)
|
|
|
|
|
|
+[Ресурсы по языкам программирования вы можете найти тут](../programming-language-resources.md)
|
|
|
|
|
|
-You'll see some C, C++, and Python learning included below, because I'm learning. There are a few books involved, see the bottom.
|
|
|
|
|
|
+Вы найдете кое-что по С, С++ и Python ниже, потому-что я еще в процессе обучения.
|
|
|
|
|
|
-## Book List
|
|
|
|
|
|
+## Список книг
|
|
|
|
|
|
-This is a shorter list than what I used. This is abbreviated to save you time.
|
|
|
|
|
|
+Это краткий список, того чем я пользовался. Он сокращен, для того что-бы сэкономить ваше время.
|
|
|
|
|
|
-### Interview Prep
|
|
|
|
|
|
+### Подготовка к собеседованию
|
|
|
|
|
|
-- [ ] [Programming Interviews Exposed: Secrets to Landing Your Next Job, 2nd Edition](http://www.wiley.com/WileyCDA/WileyTitle/productCd-047012167X.html)
|
|
|
|
- - answers in C++ and Java
|
|
|
|
- - recommended in Google candidate coaching
|
|
|
|
- - this is a good warm-up for Cracking the Coding Interview
|
|
|
|
- - not too difficult, most problems may be easier than what you'll see in an interview (from what I've read)
|
|
|
|
-- [ ] [Cracking the Coding Interview, 6th Edition](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/)
|
|
|
|
- - answers in Java
|
|
|
|
- - recommended on the [Google Careers site](https://www.google.com/about/careers/how-we-hire/interview/)
|
|
|
|
- - If you see people reference "The Google Resume", it was a book replaced by "Cracking the Coding Interview".
|
|
|
|
|
|
+- [ ] [Собеседование по программированию в подробнастях: Секреты получения твоей следующей работы, 2-е издание](http://www.wiley.com/WileyCDA/WileyTitle/productCd-047012167X.html)
|
|
|
|
+ - ответы на C++ и Java
|
|
|
|
+ - рекомендации Google по обучению кандидатов
|
|
|
|
+ - это отличная разминка перед подробным разбором собеседования по программированию
|
|
|
|
+ - не так уж и сложно, некоторые задачи проще чем вам кажутся на собеседовании (из того что я прочитал)
|
|
|
|
+- [ ] [Разбор собеседования по программированию, 6-е издание](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/)
|
|
|
|
+ - ответа на Java
|
|
|
|
+ - рекомендована [Google Careers сайт](https://www.google.com/about/careers/how-we-hire/interview/)
|
|
|
|
+ - Если вы видели ссылку на "The Google Resume", эта книга заменена "Разбор собеседования по программированию"
|
|
|
|
+ ("Cracking the Coding Interview").
|
|
|
|
|
|
-If you have tons of extra time:
|
|
|
|
|
|
+Если у вас есть много свободного времени:
|
|
|
|
|
|
-- [ ] [Elements of Programming Interviews](https://www.amazon.com/Elements-Programming-Interviews-Insiders-Guide/dp/1479274836)
|
|
|
|
- - all code is in C++, very good if you're looking to use C++ in your interview
|
|
|
|
- - a good book on problem solving in general.
|
|
|
|
|
|
+- [ ] [Элементы собеседования по программированию](https://www.amazon.com/Elements-Programming-Interviews-Insiders-Guide/dp/1479274836)
|
|
|
|
+ - весь код написан на C++, полезна если вы планируете использовать C++ на собеседовании
|
|
|
|
+ - хорошая книга, описывающая решения общих задач.
|
|
|
|
|
|
-### Computer Architecture
|
|
|
|
|
|
+### Архитектура компьютера
|
|
|
|
|
|
-If short on time:
|
|
|
|
|
|
+Если мало времени:
|
|
|
|
|
|
-- [ ] [Write Great Code: Volume 1: Understanding the Machine](https://www.amazon.com/Write-Great-Code-Understanding-Machine/dp/1593270038)
|
|
|
|
- - The book was published in 2004, and is somewhat outdated, but it's a terrific resource for understanding a computer in brief.
|
|
|
|
- - The author invented HLA, so take mentions and examples in HLA with a grain of salt. Not widely used, but decent examples of what assembly looks like.
|
|
|
|
- - These chapters are worth the read to give you a nice foundation:
|
|
|
|
- - Chapter 2 - Numeric Representation
|
|
|
|
- - Chapter 3 - Binary Arithmetic and Bit Operations
|
|
|
|
- - Chapter 4 - Floating-Point Representation
|
|
|
|
- - Chapter 5 - Character Representation
|
|
|
|
- - Chapter 6 - Memory Organization and Access
|
|
|
|
- - Chapter 7 - Composite Data Types and Memory Objects
|
|
|
|
- - Chapter 9 - CPU Architecture
|
|
|
|
- - Chapter 10 - Instruction Set Architecture
|
|
|
|
- - Chapter 11 - Memory Architecture and Organization
|
|
|
|
|
|
+- [ ] [Писать отличный код: Том 1: Понимание компьютера](https://www.amazon.com/Write-Great-Code-Understanding-Machine/dp/1593270038)
|
|
|
|
+ - Книга была опубликована в 2004 и отчасти она устарела, но благодаря ей вы быстро поймете как устроены компьютеры.
|
|
|
|
+ - Автор придумал HLA, поэтому скептически отнеситесь к примерам и упоминаниям HLA. Широко не используется, но содержит ряд примеров, демострирующих assembler.
|
|
|
|
+ - Чтение следующих глав не займет много времени и даст хорошую основу:
|
|
|
|
+ - Глава 2 - Представление в числовой форме
|
|
|
|
+ - Глава 3 - Двоичная арифметика и битовые операции
|
|
|
|
+ - Глава 4 - Представление числа с плавующей запятой
|
|
|
|
+ - Глава 5 - Представление символа
|
|
|
|
+ - Глава 6 - Организация памяти и доступа
|
|
|
|
+ - Глава 7 - Составные типы данных и объекты в памяти
|
|
|
|
+ - Глава 9 - Архитектура CPU
|
|
|
|
+ - Глава 10 - Набор инструкций
|
|
|
|
+ - Глава 11 - Архитектура и организация памяти
|
|
|
|
|
|
-If you have more time (I want this book):
|
|
|
|
|
|
+Если вы рапологаете свободным временем (я хочу купить эту книгу):
|
|
|
|
|
|
-- [ ] [Computer Architecture, Fifth Edition: A Quantitative Approach](https://www.amazon.com/dp/012383872X/)
|
|
|
|
- - For a richer, more up-to-date (2011), but longer treatment
|
|
|
|
|
|
+- [ ] [Архитектура компьютера, 5-е издание: Количественный подход](https://www.amazon.com/dp/012383872X/)
|
|
|
|
|
|
-### Language Specific
|
|
|
|
|
|
+### По языкам программирования
|
|
|
|
|
|
-**You need to choose a language for the interview (see above).** Here are my recommendations by language. I don't have resources for all languages. I welcome additions.
|
|
|
|
|
|
+**Вам необходимо выбрать один язык для интервью (смотри выше).** Здесь вы найдете мои рекомендации по языкам. У меня нет информации по всем языкам, но если есть у вас - добро пожаловать.
|
|
|
|
|
|
-If you read though one of these, you should have all the data structures and algorithms knowledge you'll need to start doing coding problems.
|
|
|
|
-**You can skip all the video lectures in this project**, unless you'd like a review.
|
|
|
|
|
|
+Если вы читали одну из них, то у вас есть достаточно знаний по алгоритмам и структурам данных и вы можете приступить к решению задач по программированию.
|
|
|
|
+**Вы можете пропустить все видео лекции в этом разделе**, если не хотите повторить темы.
|
|
|
|
|
|
-[Additional language-specific resources here.](../programming-language-resources.md)
|
|
|
|
|
|
+[Дополнительные ресурсы по языкам программирования здесь](../programming-language-resources.md)
|
|
|
|
|
|
### C++
|
|
### C++
|
|
|
|
|
|
-I haven't read these two, but they are highly rated and written by Sedgewick. He's awesome.
|
|
|
|
|
|
+Я не читал обе, но они весьма полезны и написаны Седжвиком (Sedgewick). Он отличный автор.
|
|
|
|
|
|
-- [ ] [Algorithms in C++, Parts 1-4: Fundamentals, Data Structure, Sorting, Searching](https://www.amazon.com/Algorithms-Parts-1-4-Fundamentals-Structure/dp/0201350882/)
|
|
|
|
-- [ ] [Algorithms in C++ Part 5: Graph Algorithms](https://www.amazon.com/Algorithms-Part-Graph-3rd-Pt-5/dp/0201361183/)
|
|
|
|
|
|
+- [ ] [Алгоритмы на C++, Части 1-4: Основы, Структуры данных, Сортировка, Поиск](https://www.amazon.com/Algorithms-Parts-1-4-Fundamentals-Structure/dp/0201350882/)
|
|
|
|
+- [ ] [Алгоритмы на C++ Часть 5: Алгоритмы графов](https://www.amazon.com/Algorithms-Part-Graph-3rd-Pt-5/dp/0201361183/)
|
|
|
|
|
|
-If you have a better recommendation for C++, please let me know. Looking for a comprehensive resource.
|
|
|
|
|
|
+Если вы можете порекоммендовать литературу по C++, которая лучше, сообщите мне об этом. Я ищу лучшие книги.
|
|
|
|
|
|
### Java
|
|
### Java
|
|
|
|
|
|
-- [ ] [Algorithms (Sedgewick and Wayne)](https://www.amazon.com/Algorithms-4th-Robert-Sedgewick/dp/032157351X/)
|
|
|
|
- - videos with book content (and Sedgewick!):
|
|
|
|
- - [Algorithms I](https://www.youtube.com/user/algorithmscourses/playlists?view=50&sort=dd&shelf_id=2)
|
|
|
|
- - [Algorithms II](https://www.youtube.com/user/algorithmscourses/playlists?shelf_id=3&view=50&sort=dd)
|
|
|
|
|
|
+- [ ] [Алгоритмы (Седжвик и Вайн)](https://www.amazon.com/Algorithms-4th-Robert-Sedgewick/dp/032157351X/)
|
|
|
|
+ - книга с видео контентом (и Седжвик!):
|
|
|
|
+ - [Алгоритмы I](https://www.youtube.com/user/algorithmscourses/playlists?view=50&sort=dd&shelf_id=2)
|
|
|
|
+ - [Алгоритмы II](https://www.youtube.com/user/algorithmscourses/playlists?shelf_id=3&view=50&sort=dd)
|
|
|
|
|
|
-OR:
|
|
|
|
|
|
+или:
|
|
|
|
|
|
-- [ ] [Data Structures and Algorithms in Java](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/1118771338/)
|
|
|
|
- - by Goodrich, Tamassia, Goldwasser
|
|
|
|
- - used as optional text for CS intro course at UC Berkeley
|
|
|
|
- - see my book report on the Python version below. This book covers the same topics.
|
|
|
|
|
|
+- [ ] [Структуры данных и алгоритмы на Java](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/1118771338/)
|
|
|
|
+ - авторы Goodrich, Tamassia, Goldwasser
|
|
|
|
+ - используется в Беркли США как опциональный учебник по введению в CS
|
|
|
|
+ - смотрите мой отчет по книги по Python ниже. Эта книга содержит те же темы.
|
|
|
|
|
|
### Python
|
|
### Python
|
|
|
|
|
|
-- [ ] [Data Structures and Algorithms in Python](https://www.amazon.com/Structures-Algorithms-Python-Michael-Goodrich/dp/1118290275/)
|
|
|
|
- - by Goodrich, Tamassia, Goldwasser
|
|
|
|
- - I loved this book. It covered everything and more.
|
|
|
|
|
|
+- [ ] [Структуры данных и алгоритмы на Python](https://www.amazon.com/Structures-Algorithms-Python-Michael-Goodrich/dp/1118290275/)
|
|
|
|
+ - авторы Goodrich, Tamassia, Goldwasser
|
|
|
|
+ - Я люблю эту книгу. Она содержит все что нужно и даже больше.
|
|
- Pythonic code
|
|
- Pythonic code
|
|
- - my glowing book report: https://googleyasheck.com/book-report-data-structures-and-algorithms-in-python/
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-### Optional Books
|
|
|
|
-
|
|
|
|
-**Some people recommend these, but I think it's going overboard, unless you have many years of software engineering experience and expect a much harder interview:**
|
|
|
|
-
|
|
|
|
-- [ ] [Algorithm Design Manual](http://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena/dp/1849967202) (Skiena)
|
|
|
|
- - As a review and problem recognition
|
|
|
|
- - The algorithm catalog portion is well beyond the scope of difficulty you'll get in an interview.
|
|
|
|
- - This book has 2 parts:
|
|
|
|
- - class textbook on data structures and algorithms
|
|
|
|
- - pros:
|
|
|
|
- - is a good review as any algorithms textbook would be
|
|
|
|
- - nice stories from his experiences solving problems in industry and academia
|
|
|
|
- - code examples in C
|
|
|
|
- - cons:
|
|
|
|
- - can be as dense or impenetrable as CLRS, and in some cases, CLRS may be a better alternative for some subjects
|
|
|
|
- - chapters 7, 8, 9 can be painful to try to follow, as some items are not explained well or require more brain than I have
|
|
|
|
- - don't get me wrong: I like Skiena, his teaching style, and mannerisms, but I may not be Stony Brook material.
|
|
|
|
- - algorithm catalog:
|
|
|
|
- - this is the real reason you buy this book.
|
|
|
|
- - about to get to this part. Will update here once I've made my way through it.
|
|
|
|
- - To quote Yegge: "More than any other book it helped me understand just how astonishingly commonplace
|
|
|
|
- (and important) graph problems are – they should be part of every working programmer's toolkit. The book also
|
|
|
|
- covers basic data structures and sorting algorithms, which is a nice bonus. But the gold mine is the second half
|
|
|
|
- of the book, which is a sort of encyclopedia of 1-pagers on zillions of useful problems and various ways to solve
|
|
|
|
- them, without too much detail. Almost every 1-pager has a simple picture, making it easy to remember. This is a
|
|
|
|
- great way to learn how to identify hundreds of problem types."
|
|
|
|
- - Can rent it on kindle
|
|
|
|
- - Half.com is a great resource for textbooks at good prices.
|
|
|
|
- - Answers:
|
|
|
|
- - [Solutions](http://www.algorithm.cs.sunysb.edu/algowiki/index.php/The_Algorithms_Design_Manual_(Second_Edition))
|
|
|
|
- - [Solutions](http://blog.panictank.net/category/algorithmndesignmanualsolutions/page/2/)
|
|
|
|
- - [Errata](http://www3.cs.stonybrook.edu/~skiena/algorist/book/errata)
|
|
|
|
-
|
|
|
|
-- [ ] [Introduction to Algorithms](https://www.amazon.com/Introduction-Algorithms-3rd-MIT-Press/dp/0262033844)
|
|
|
|
- - **Important:** Reading this book will only have limited value. This book is a great review of algorithms and data structures, but won't teach you how to write good code. You have to be able to code a decent solution efficiently.
|
|
|
|
- - To quote Yegge: "But if you want to come into your interviews *prepped*, then consider deferring your application until you've made your way through that book."
|
|
|
|
- - Half.com is a great resource for textbooks at good prices.
|
|
|
|
- - aka CLR, sometimes CLRS, because Stein was late to the game
|
|
|
|
-
|
|
|
|
-- [ ] [Programming Pearls](http://www.amazon.com/Programming-Pearls-2nd-Jon-Bentley/dp/0201657880)
|
|
|
|
- - The first couple of chapters present clever solutions to programming problems (some very old using data tape) but
|
|
|
|
- that is just an intro. This a guidebook on program design and architecture, much like Code Complete, but much shorter.
|
|
|
|
-
|
|
|
|
-- ~~"Algorithms and Programming: Problems and Solutions" by Shen~~
|
|
|
|
- - A fine book, but after working through problems on several pages I got frustrated with the Pascal, do while loops, 1-indexed arrays, and unclear post-condition satisfaction results.
|
|
|
|
- - Would rather spend time on coding problems from another book or online coding problems.
|
|
|
|
|
|
+ - мой отчет по книге: https://googleyasheck.com/book-report-data-structures-and-algorithms-in-python/
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+### Опциональные книги
|
|
|
|
+
|
|
|
|
+**Некоторые рекомендую эти книги, но я думаю это перебор, если только вы не инженер-программист с большим опытом работы и не ожидаете более сложного собеседования.
|
|
|
|
+
|
|
|
|
+- [ ] [Руководство по разработке алгоритмов](http://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena/dp/1849967202) (Skiena)
|
|
|
|
+ - Как обзор и описание проблем
|
|
|
|
+ - Некоторые алгоритмы вряд ли попадутся вам на собеседовании.
|
|
|
|
+ - Эта книга состоит из 2-х частей:
|
|
|
|
+ - классный учебник по структурам данных и алгоритмам
|
|
|
|
+ - преимущества:
|
|
|
|
+ - отличный учебник, содержащий обзор существующих алгоритмов
|
|
|
|
+ - автор описывает реальный опыт решения задач как академических, так и промышленных
|
|
|
|
+ - примеры кода написаны на C
|
|
|
|
+ - недостатки:
|
|
|
|
+ - местами изложение может быть не очевидным и не понятным как в CLRS (Cormen, Leiserson, Rivest, Stein), некоторые темы лучше описаны в CLRS
|
|
|
|
+ - главы 7, 8, 9 сложно понять, некоторые вещи плохо разъяснены или требуют больших знаний чем есть у меня
|
|
|
|
+ - не поймите меня не правильно: Мне нравиться Skiena, ее стиль и манера изложения, но я не могу стать физически Stony Brook.
|
|
|
|
+ - каталог алгоритмов:
|
|
|
|
+ - это реальная причина, почему следует купить эту книгу.
|
|
|
|
+ - о том как дойти до этой части. Обновлю, когда изучу этот раздел.
|
|
|
|
+ - Цитата Йеги: "Больше чем какая-либо другая книга, эта помогла мне понять насколько банальны задачи на графы - они должны
|
|
|
|
+ быть в инструментарии каждого программиста. Книга так же включает в себя разбор базовых структур данных и алгоритмов сортировки,
|
|
|
|
+ что является приятным бонусом. Но важнейшей частью стала вторая часть книги, которая написана как энциклопедия, описывающая большое
|
|
|
|
+ количество различных алгоритмических задач и способов их решения без лишних деталей. Почти каждая страница-описание содержит
|
|
|
|
+ изображение, облегчающее запоминание. Это полезный способ, позволяющий запомнить и в последствии идентифицировать сотни
|
|
|
|
+ типов задач."
|
|
|
|
+
|
|
|
|
+ - Можете ее арендовать
|
|
|
|
+ - Half.com - отличный ресурс, где можно заказать книги по выгодным ценам.
|
|
|
|
+ - Ответы:
|
|
|
|
+ - [Решения](http://www.algorithm.cs.sunysb.edu/algowiki/index.php/The_Algorithms_Design_Manual_(Second_Edition))
|
|
|
|
+ - [Решения](http://blog.panictank.net/category/algorithmndesignmanualsolutions/page/2/)
|
|
|
|
+ - [Опечатки](http://www3.cs.stonybrook.edu/~skiena/algorist/book/errata)
|
|
|
|
+
|
|
|
|
+- [ ] [Введение в алгоритмы](https://www.amazon.com/Introduction-Algorithms-3rd-MIT-Press/dp/0262033844)
|
|
|
|
+ - **Важно:** Чтение этой книги будет полезно только для повторения алгоритмов и структур данных. Она не научит вас программировать.
|
|
|
|
+ - Цитата Йеги: "Но если вы хотите идти на собеседование, отложите его пока не изучите эту книгу."
|
|
|
|
+ - Half.com - отличный ресурс, где можно заказать книги по выгодным ценам.
|
|
|
|
+ - известная как CLR, иногда CLRS, потому что Stein опоздал на игру
|
|
|
|
+
|
|
|
|
+- [ ] [Жемчужины программирования](http://www.amazon.com/Programming-Pearls-2nd-Jon-Bentley/dp/0201657880)
|
|
|
|
+ - В первых двух главах представлены решения задач программирования (в некоторых из них используются устаревшие типы данных), но
|
|
|
|
+ это только введение. Это руководство по разработке программ и архитектуре, такое же как Code Complete, но более краткое.
|
|
|
|
+
|
|
|
|
+- ~~"Алгоритмы и программирование: Проблемы и решения" автор Shen~~
|
|
|
|
+ - Отличная книга, но после разбора нескольких задач написанных на Pascal я разочаровался в его синтаксисе.
|
|
|
|
+ - Лучше провести время решая задачи по программированию из других книг или онлайн ресурсов.
|
|
|
|
|
|
|
|
|
|
## Before you Get Started
|
|
## Before you Get Started
|