|
@@ -30,15 +30,15 @@ Original: [англійською](README.md)
|
|
|
|
|
|
## Table of Contents
|
|
|
|
|
|
-- [What is it?](#what-is-it)
|
|
|
-- [Why use it?](#why-use-it)
|
|
|
-- [How to use it](#how-to-use-it)
|
|
|
+- [Що це?](#what-is-it)
|
|
|
+- [Чому це використовувати?](#why-use-it)
|
|
|
+- [Як це використовувати](#how-to-use-it)
|
|
|
- [Get in a Googley Mood](#get-in-a-googley-mood)
|
|
|
-- [Did I Get the Job?](#did-i-get-the-job)
|
|
|
-- [Follow Along with Me](#follow-along-with-me)
|
|
|
-- [Don't feel you aren't smart enough](#dont-feel-you-arent-smart-enough)
|
|
|
-- [About Google](#about-google)
|
|
|
-- [About Video Resources](#about-video-resources)
|
|
|
+- [Чи отримав я роботу?](#did-i-get-the-job)
|
|
|
+- [Йдіть зі мною](#follow-along-with-me)
|
|
|
+- [Не почувайте себе недостатньо розумними](#dont-feel-you-arent-smart-enough)
|
|
|
+- [Про Google](#about-google)
|
|
|
+- [Про відео-ресурси](#about-video-resources)
|
|
|
- [Interview Process & General Interview Prep](#interview-process--general-interview-prep)
|
|
|
- [Pick One Language for the Interview](#pick-one-language-for-the-interview)
|
|
|
- [Book List](#book-list)
|
|
@@ -151,23 +151,16 @@ Original: [англійською](README.md)
|
|
|
|
|
|
---
|
|
|
|
|
|
-## Why use it?
|
|
|
+## Чому це використовувати?
|
|
|
|
|
|
-I'm following this plan to prepare for my Google interview. I've been building the web, building
|
|
|
-services, and launching startups since 1997. I have an economics degree, not a CS degree. I've
|
|
|
-been very successful in my career, but I want to work at Google. I want to progress into larger systems
|
|
|
-and get a real understanding of computer systems, algorithmic efficiency, data structure performance,
|
|
|
-low-level languages, and how it all works. And if you don't know any of it, Google won't hire you.
|
|
|
+Я слідую цьому плану, аби підготуватись до мого інтерв'ю в Google. Я займався веб-розробкою, створенням сервісів та запуском стартапів з 1997. У мене економічна освіта, не комп'ютерна.
|
|
|
+Я досяг успіху в своїй кар'єрі, але я хочу працювати в Google. Я хочу розвиватись, досліджувати більші системи та отримати реальне розуміння комп'ютерних систем, ефективності алгоритмів та структур даних, низько-рівневих мов, і як це все працює. І якщо ви не знаєте чогось з цього списку, Google не найме вас.
|
|
|
|
|
|
-When I started this project, I didn't know a stack from a heap, didn't know Big-O anything, anything about trees, or how to
|
|
|
-traverse a graph. If I had to code a sorting algorithm, I can tell ya it wouldn't have been very good.
|
|
|
-Every data structure I've ever used was built into the language, and I didn't know how they worked
|
|
|
-under the hood at all. I've never had to manage memory unless a process I was running would give an "out of
|
|
|
-memory" error, and then I'd have to find a workaround. I've used a few multidimensional arrays in my life and
|
|
|
-thousands of associative arrays, but I've never created data structures from scratch.
|
|
|
+Коли я розпочинав цей проект, я не міг відрізнити стек від купи, нічого не знав про Big-O, дерева, або як розглянути граф. Якби мені тоді довелось написати алгоритм сортування, то легко можу вас запевнити - він не був би найкращим.
|
|
|
+Всі структури даних, які я колись використовував, були вже вбудовані в мову програмування, а я навіть не знав, як вони працюють "під капотом". Мені ніколи не доводилось розбиратись з пам'яттю, окрім випадків, коли я отримував "OutOfMemoryException", тоді мені доводилось шукати вихід з ситуації.
|
|
|
+Я використовував кілька багатовимірних масивів та тисячі звичайних масивів, проте я ніколи не створював структури даних з нуля.
|
|
|
|
|
|
-But after going through this study plan I have high confidence I'll be hired. It's a long plan. It's going to take me
|
|
|
-months. If you are familiar with a lot of this already it will take you a lot less time.
|
|
|
+Але, пройшовши цей план навчання, я впевнений, що мене візьмуть на цю роботу. Це дійсно великий план. Він займе місяці, але якщо ви вже знайомі з багатьма речами з цього списку, то, очевидно, ви витратите значно менше часу.
|
|
|
|
|
|
## How to use it
|
|
|
|
|
@@ -215,7 +208,7 @@ I'm in the queue right now. Hope to interview soon.
|
|
|
My story: [Why I Studied Full-Time for 8 Months for a Google Interview](https://medium.com/@googleyasheck/why-i-studied-full-time-for-8-months-for-a-google-interview-cc662ce9bb13)
|
|
|
|
|
|
I'm on the journey, too. Follow along:
|
|
|
-
|
|
|
+
|
|
|
- **Blog**: [GoogleyAsHeck.com](https://googleyasheck.com/)
|
|
|
- Twitter: [@googleyasheck](https://twitter.com/googleyasheck)
|
|
|
- Twitter: [@StartupNextDoor](https://twitter.com/StartupNextDoor)
|
|
@@ -352,7 +345,7 @@ If short on time:
|
|
|
- Chapter 7 - Composite Data Types and Memory Objects
|
|
|
- Chapter 9 - CPU Architecture
|
|
|
- Chapter 10 - Instruction Set Architecture
|
|
|
- - Chapter 11 - Memory Architecture and Organization
|
|
|
+ - Chapter 11 - Memory Architecture and Organization
|
|
|
|
|
|
If you have more time (I want this book):
|
|
|
|
|
@@ -363,7 +356,7 @@ If you have more time (I want this book):
|
|
|
|
|
|
**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.
|
|
|
+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)
|
|
@@ -372,7 +365,7 @@ If you read though one of these, you should have all the data structures and alg
|
|
|
|
|
|
I haven't read these two, but they are highly rated and written by Sedgewick. He's awesome.
|
|
|
|
|
|
-- [ ] [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++, 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/)
|
|
|
|
|
|
If you have a better recommendation for C++, please let me know. Looking for a comprehensive resource.
|
|
@@ -444,7 +437,7 @@ OR:
|
|
|
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.
|
|
|
+ - 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.
|
|
|
|
|
|
|
|
@@ -473,7 +466,7 @@ I made a mobile-first website so I could review on my phone and tablet, wherever
|
|
|
Make your own for free:
|
|
|
|
|
|
- [Flashcards site repo](https://github.com/jwasham/computer-science-flash-cards)
|
|
|
-- [My flash cards database (old - 1200 cards)](https://github.com/jwasham/computer-science-flash-cards/blob/master/cards-jwasham.db):
|
|
|
+- [My flash cards database (old - 1200 cards)](https://github.com/jwasham/computer-science-flash-cards/blob/master/cards-jwasham.db):
|
|
|
- [My flash cards database (new - 1800 cards)](https://github.com/jwasham/computer-science-flash-cards/blob/master/cards-jwasham-extreme.db):
|
|
|
|
|
|
Keep in mind I went overboard and have cards covering everything from assembly language and Python trivia to machine learning and statistics. It's way too much for what's required by Google.
|
|
@@ -482,7 +475,7 @@ Keep in mind I went overboard and have cards covering everything from assembly l
|
|
|
same card and answer it several times correctly before you really know it. Repetition will put that knowledge deeper in
|
|
|
your brain.
|
|
|
|
|
|
-An alternative to using my flashcard site is [Anki](http://ankisrs.net/), which has been recommended to me numerous times. It uses a repetition system to help you remember.
|
|
|
+An alternative to using my flashcard site is [Anki](http://ankisrs.net/), which has been recommended to me numerous times. It uses a repetition system to help you remember.
|
|
|
It's user-friendly, available on all platforms and has a cloud sync system. It costs $25 on iOS but is free on other platforms.
|
|
|
|
|
|
My flashcard database in Anki format: https://ankiweb.net/shared/info/25173560 (thanks [@xiewenya](https://github.com/xiewenya))
|
|
@@ -541,9 +534,9 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
|
|
|
- [ ] **Learn C**
|
|
|
- C is everywhere. You'll see examples in books, lectures, videos, *everywhere* while you're studying.
|
|
|
- [ ] [C Programming Language, Vol 2](https://www.amazon.com/Programming-Language-Brian-W-Kernighan/dp/0131103628)
|
|
|
- - This is a short book, but it will give you a great handle on the C language and if you practice it a little
|
|
|
+ - This is a short book, but it will give you a great handle on the C language and if you practice it a little
|
|
|
you'll quickly get proficient. Understanding C helps you understand how programs and memory work.
|
|
|
- - [answers to questions](https://github.com/lekkas/c-algorithms)
|
|
|
+ - [answers to questions](https://github.com/lekkas/c-algorithms)
|
|
|
|
|
|
- [ ] **How computers process a program:**
|
|
|
- [ ] [How does CPU execute program (video)](https://www.youtube.com/watch?v=42KTvGYQYnA)
|
|
@@ -1161,15 +1154,15 @@ You'll get more graph practice in Skiena's book (see Books section below) and th
|
|
|
- [ ] [4. Boyer-Moore](https://www.youtube.com/watch?v=fI7Ch6pZXfM&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66&index=2)
|
|
|
- [ ] [5. Rabin-Karp](https://www.youtube.com/watch?v=QzI0p6zDjK4&index=1&list=PLe-ggMe31CTdAdjXB3lIuf2maubzo9t66)
|
|
|
- [ ] [Search pattern in text (video)](https://www.coursera.org/learn/data-structures/lecture/tAfHI/search-pattern-in-text)
|
|
|
-
|
|
|
+
|
|
|
If you need more detail on this subject, see "String Matching" section in [Additional Detail on Some Subjects](#additional-detail-on-some-subjects)
|
|
|
|
|
|
---
|
|
|
|
|
|
## System Design, Scalability, Data Handling
|
|
|
- **You can expect system design questions if you have 4+ years of experience.**
|
|
|
-- Scalability and System Design are very large topics with many topics and resources, since
|
|
|
- there is a lot to consider when designing a software/hardware system that can scale.
|
|
|
+- Scalability and System Design are very large topics with many topics and resources, since
|
|
|
+ there is a lot to consider when designing a software/hardware system that can scale.
|
|
|
Expect to spend quite a bit of time on this.
|
|
|
- Considerations from Yegge:
|
|
|
- scalability
|
|
@@ -2023,4 +2016,3 @@ Sit back and enjoy. "Netflix and skill" :P
|
|
|
|
|
|
- [Directory of Online CS Courses](https://github.com/open-source-society/computer-science)
|
|
|
- [Directory of CS Courses (many with online lectures)](https://github.com/prakhar1989/awesome-courses)
|
|
|
-
|