grammar fixes, bit of translate

Опечатки, орфография и чуть перевода от начала до деревьев
happy hacktoberfest
This commit is contained in:
Nikita S 2019-10-11 23:33:18 +03:00 committed by GitHub
parent c87b6f5c19
commit 18a0d39e58
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 27 additions and 27 deletions

View File

@ -156,7 +156,7 @@
## Чем это полезно?
Я следую этому плану, готовясь к собеседованию в Google. Я разрабатываю веб-приложения, сервисы и запускаю стартапы с
1997 года. У меня есть степень по экономике, но нет по CS. На данные момент у меня очень успешная карьера, но я хочу работать
1997 года. У меня есть степень по экономике, но нет по CS. На данный момент у меня очень успешная карьера, но я хочу работать
в Google. Я хочу работать с большими системами и понять принципы их работы, изучить эффективность алгоритмов и различные
структуры данных, узнать, как работают низкоуровневые языки программирования. Если ты не знаешь что-то из перечисленного,
Google не возьмёт тебя на работу.
@ -254,7 +254,7 @@ Google не возьмёт тебя на работу.
прежде чем получите к ним доступ. Курсы на Lynda.com платные.
Я был бы вам благодарен за помощь в добавлении бесплатных, всегда доступных публичных ресурсов, таких
как видео с YouTube сопровождающих онлайн курсы. Мне нравяться использовать университетские лекции.
как видео с YouTube сопровождающих онлайн курсы. Мне нравится использовать университетские лекции.
## Процесс собеседования & Основное в подготовке к интервью
@ -275,11 +275,11 @@ Google не возьмёт тебя на работу.
- [ ] Подготовительные курсы:
- [ ] [Собеседование инженера-программиста (платный курс)](https://www.udemy.com/software-engineer-interview-unleashed):
- Как самостоятельно подготовиться r собеседованию на позицию инженера-программиста от бывшего сотрудника Google
- Как самостоятельно подготовиться к собеседованию на позицию инженера-программиста от бывшего сотрудника Google
- [ ] Дополнительно (это не рекомендация Google, а моя собственная):
- [ ] [ABC: Программируй всегда](https://medium.com/always-be-coding/abc-always-be-coding-d5f8051afce2#.4heg8zvm4)
- [ ] [4 шага в Google без образованияв CS](https://medium.com/always-be-coding/four-steps-to-google-without-a-degree-8f381aa6bd5e#.asalo1vfx)
- [ ] [4 шага к Google без образования в CS](https://medium.com/always-be-coding/four-steps-to-google-without-a-degree-8f381aa6bd5e#.asalo1vfx)
- [ ] [Кодирование на доске](https://medium.com/@dpup/whiteboarding-4df873dbba2e#.hf6jn45g1)
- [ ] [Что думает 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/)
@ -315,7 +315,7 @@ Google не возьмёт тебя на работу.
[Ресурсы по языкам программирования вы можете найти тут](../programming-language-resources.md)
Вы найдете кое-что по С, С++ и Python ниже, потому-что я еще в процессе обучения.
Вы найдете кое-что по С, С++ и Python ниже, потому что я еще в процессе обучения.
## Список книг
@ -323,7 +323,7 @@ Google не возьмёт тебя на работу.
### Подготовка к собеседованию
- [ ] [Собеседование по программированию в подробнастях: Секреты получения твоей следующей работы, 2-е издание](http://www.wiley.com/WileyCDA/WileyTitle/productCd-047012167X.html)
- [ ] [Собеседование по программированию в подробностях: Секреты получения твоей следующей работы, 2-е издание](http://www.wiley.com/WileyCDA/WileyTitle/productCd-047012167X.html)
- ответы на C++ и Java
- рекомендации Google по обучению кандидатов
- это отличная разминка перед подробным разбором собеседования по программированию
@ -346,11 +346,11 @@ Google не возьмёт тебя на работу.
- [ ] [Писать отличный код: Том 1: Понимание компьютера](https://www.amazon.com/Write-Great-Code-Understanding-Machine/dp/1593270038)
- Книга была опубликована в 2004 и отчасти она устарела, но благодаря ей вы быстро поймете как устроены компьютеры.
- Автор придумал HLA, поэтому скептически отнеситесь к примерам и упоминаниям HLA. Широко не используется, но содержит ряд примеров, демострирующих assembler.
- Автор придумал HLA, поэтому скептически отнеситесь к примерам и упоминаниям HLA. Широко не используется, но содержит ряд примеров, демонстрирующих assembler.
- Чтение следующих глав не займет много времени и даст хорошую основу:
- Глава 2 - Представление в числовой форме
- Глава 3 - Двоичная арифметика и битовые операции
- Глава 4 - Представление числа с плавующей запятой
- Глава 4 - Представление числа с плавающей точкой
- Глава 5 - Представление символа
- Глава 6 - Организация памяти и доступа
- Глава 7 - Составные типы данных и объекты в памяти
@ -358,7 +358,7 @@ Google не возьмёт тебя на работу.
- Глава 10 - Набор инструкций
- Глава 11 - Архитектура и организация памяти
Если вы рапологаете свободным временем (я хочу купить эту книгу):
Если вы располагаете свободным временем (я хочу купить эту книгу):
- [ ] [Архитектура компьютера, 5-е издание: Количественный подход](https://www.amazon.com/dp/012383872X/)
@ -378,7 +378,7 @@ Google не возьмёт тебя на работу.
- [ ] [Алгоритмы на 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/)
Если вы можете порекоммендовать литературу по C++, которая лучше, сообщите мне об этом. Я ищу лучшие книги.
Если вы можете порекомендовать литературу по C++, которая лучше, сообщите мне об этом. Я ищу лучшие книги.
### Java
@ -417,12 +417,12 @@ Google не возьмёт тебя на работу.
- автор описывает реальный опыт решения задач как академических, так и промышленных
- примеры кода написаны на C
- недостатки:
- местами изложение может быть не очевидным и не понятным как в CLRS (Cormen, Leiserson, Rivest, Stein), некоторые темы лучше описаны в CLRS
- местами изложение может быть неочевидным и непонятным как в CLRS (Cormen, Leiserson, Rivest, Stein), некоторые темы лучше описаны в CLRS
- главы 7, 8, 9 сложно понять, некоторые вещи плохо разъяснены или требуют больших знаний чем есть у меня
- не поймите меня не правильно: Мне нравиться Skiena, ее стиль и манера изложения, но я не могу стать физически Stony Brook.
- не поймите меня неправильно: Мне нравится Skiena, его стиль и манера изложения, но я не могу стать физически Stony Brook.
- каталог алгоритмов:
- это реальная причина, почему следует купить эту книгу.
- о том как дойти до этой части. Обновлю, когда изучу этот раздел.
- о том, как дойти до этой части. Обновлю, когда изучу этот раздел.
- Цитата Йеги: "Больше чем какая-либо другая книга, эта помогла мне понять насколько банальны задачи на графы - они должны
быть в инструментарии каждого программиста. Книга так же включает в себя разбор базовых структур данных и алгоритмов сортировки,
что является приятным бонусом. Но важнейшей частью стала вторая часть книги, которая написана как энциклопедия, описывающая большое
@ -465,7 +465,7 @@ Google не возьмёт тебя на работу.
Прочитайте пожалуйста эту статью, что бы не совершать моих ошибок:
[Как сохранить знания в CS](https://googleyasheck.com/retaining-computer-science-knowledge/)
[Как сохранить знания в CS](https://startupnextdoor.com/retaining-computer-science-knowledge/)
### 2. Используйте карточки-напоминания
@ -477,7 +477,7 @@ Google не возьмёт тебя на работу.
Сделай свой собственный бесплатно:
- [Репозиторий сайта Flashcards](https://github.com/jwasham/computer-science-flash-cards)
- [Моя база данных с карточками](https://github.com/jwasham/computer-science-flash-cards/blob/master/cards-jwasham.db): Имейте ввиду, я зделал больше чем требуется в Google, описав все начиная с assembler и заканчивая Python с машиным обучением и статистикой.
- [Моя база данных с карточками](https://github.com/jwasham/computer-science-flash-cards/blob/master/cards-jwasham.db): Имейте в виду, я сделал больше чем требуется в Google, описав все начиная с assembler и заканчивая Python с машиным обучением и статистикой.
**Заметка о карточках:** в первый раз вы сразу вспомните ответ, но не помечайте эту карточку как изученную. Нужно просмотреть
много раз карточку и ответить правильно прежде чем вы действительно ее запомните. Повторение позволяет мозгу надолго
@ -541,10 +541,10 @@ Google не возьмёт тебя на работу.
## Необходимые знания
- [ ] **Изучайте C**
- С используется везде. Вы встретите примеры в книгах, лекциях, видео, везде, пока вы будите учиться.
- С используется везде. Вы встретите примеры в книгах, лекциях, видео, везде, пока вы будете учиться.
- [ ] [Язык программирования С, Vol 2](https://www.amazon.com/Programming-Language-Brian-W-Kernighan/dp/0131103628)
- Это небольшая книга, но после ее прочтения вы получите необходимые знания по С и если будите практиковать,
то достаточно быстро его освоите. Понимание С поможет вам понять как программы и память работают.
- Это небольшая книга, но после ее прочтения вы получите необходимые знания по С и если будете практиковать,
то достаточно быстро его освоите. Понимание С поможет вам понять как работают программы и память.
- [ответы на вопросы](https://github.com/lekkas/c-algorithms)
- [ ] **Как компьютеры выполняют программу:**
@ -599,9 +599,9 @@ Google не возьмёт тебя на работу.
- [ ] insert(index, item) - вставка элемента по индексу, сдвигает значение по индексу и следующие за ним элементы вправо
- [ ] prepend(item) - может вставить элемент выше индекса 0
- [ ] pop() - удалить последний элемент, вернуть значение
- [ ] delete(index) - удаляет элемент по индексу, сдвигает все следующие за ним элементы в лево
- [ ] delete(index) - удаляет элемент по индексу, сдвигает все следующие за ним элементы влево
- [ ] remove(item) - ищет элементы по значению и удаляет их, даже если их несколько
- [ ] find(item) - ищет элемент по значению и возвращает индекс первого найденного элемента, возвращает -1 если ничего не найденно
- [ ] find(item) - ищет элемент по значению и возвращает индекс первого найденного элемента, возвращает -1 если ничего не найдено
- [ ] resize(new_capacity) // private function
- когда массив полностью заполнен, увеличивает его размер вдвое
- при добавлении элемента, если размер массива 1/4 от общего размера, увеличиваем на половину
@ -622,10 +622,10 @@ Google не возьмёт тебя на работу.
- [Core Linked Lists Vs Arrays (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/rjBs9/core-linked-lists-vs-arrays)
- [In The Real World Linked Lists Vs Arrays (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/QUaUd/in-the-real-world-lists-vs-arrays)
- [ ] [why you should avoid linked lists (video)](https://www.youtube.com/watch?v=YQs6IC-vgmo)
- [ ] Ага, попался: тебе нужны знания указетелей на указатели:
- [ ] Ага, попался: тебе нужны знания указателей на указатели:
(для тех случаев, когда ты передаешь указатель функции, которая может менять адрес, куда указывает указатель)
Это страница просто для того, чтобы понять указатели на указатели. Читабельность и обслуживаемость страдает
из-за искусность.
из-за искусности.
- [Указатели на указатели](https://www.eskimo.com/~scs/cclass/int/sx8.html)
- [ ] воплотить в жизнь (я сделал это с помощью указателя на хвост и без):
- [ ] size() - возвращает количество элементов в листе
@ -661,13 +661,13 @@ Google не возьмёт тебя на работу.
- enqueue(value) - добавляет элемент в конец очереди
- dequeue() - возвращает значение и удаляет из очереди последний добавленный элемент(front)
- empty()
- [ ] Реализация с приминением массива фиксированного размера:
- [ ] Реализация с применением массива фиксированного размера:
- enqueue(value) - добавляет элемент в конец очереди
- dequeue() - возвращает значение и удаляет из очереди последний добавленный элемент
- empty()
- full()
- [ ] Затраты:
- плохая реализация с приминением связанного списка когда элемент добавляется в начало очереди и удаляется с конца очереди за O(n),
- плохая реализация с применением связанного списка когда элемент добавляется в начало очереди и удаляется с конца очереди за O(n),
операция dequeue в таком случае будет требовать каждый раз обхода всего списка
- enqueue: O(1) (amortized, связанный список и массив [probing])
- dequeue: O(1) (связанный список и массив)
@ -694,7 +694,7 @@ Google не возьмёт тебя на работу.
- [Instant Uploads And Storage Optimization In Dropbox (video)](https://www.coursera.org/learn/data-structures/lecture/DvaIb/instant-uploads-and-storage-optimization-in-dropbox)
- [Distributed Hash Tables (video)](https://www.coursera.org/learn/data-structures/lecture/tvH8H/distributed-hash-tables)
- [ ] реализация с помощью массива и приминением linear probing
- [ ] реализация с помощью массива и применением linear probing
- hash(k, m) - m размер хеш-таблицы
- add(key, value) - если ключ уже существует обновляем значение
- exists(key)
@ -712,8 +712,8 @@ Google не возьмёт тебя на работу.
- бинарный поиск с использованием рекурсии
- ### Побитовые операции
- [ ] [Bits cheat sheet](https://github.com/jwasham/google-interview-university/blob/master/extras/cheat%20sheets/bits-cheat-cheet.pdf) - you should know many of the powers of 2 from (2^1 to 2^16 and 2^32)
- [ ] Даст отличное понимание манипуляции битами с помощью: &, |, ^, ~, >>, <<
- [ ] [Bits cheat sheet](https://github.com/jwasham/google-interview-university/blob/master/extras/cheat%20sheets/bits-cheat-cheet.pdf) - ты должен знать сколько степеней двойки от (2^1 до 2^16 и 2^32)
- [ ] Даст отличное понимание манипуляций битами с помощью: &, |, ^, ~, >>, <<
- [ ] [words](https://en.wikipedia.org/wiki/Word_(computer_architecture))
- [ ] Хорошее введение:
[Bit Manipulation (video)](https://www.youtube.com/watch?v=7jkIUgLC29I)