Merge branch 'master' into master

This commit is contained in:
Ilyushin Evgeniy 2017-10-18 19:00:03 +03:00 committed by GitHub
commit 8803b9a762
20 changed files with 19878 additions and 1084 deletions

4
.gitignore vendored
View File

@ -1,2 +1,6 @@
.idea
personal-9894.md
# Targets Windows & Unix temporary files
~$*
*~

View File

@ -159,7 +159,7 @@ thousands of associative arrays, but I've never created data structures from scr
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
## איך להשתמש בזה
Everything below is an outline, and you should tackle the items in order from top to bottom.
@ -194,35 +194,35 @@ Print out a "[future Googler](https://github.com/jwasham/google-interview-univer
[![future Googler sign](https://dng5l3qzreal6.cloudfront.net/2016/Oct/Screen_Shot_2016_10_04_at_10_13_24_AM-1475601104364.png)](https://github.com/jwasham/google-interview-university/blob/master/extras/future-googler.pdf)
## Did I Get the Job?
## האם קיבלתי את העבודה?
I'm in the queue right now. Hope to interview soon.
אני בתור כרגע. אני מקווה להתראיין בקרוב.
Thanks for the referral, JP.
## Follow Along with Me
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)
הסיפור שלי: [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)
- Google+: [+Googleyasheck](https://plus.google.com/+Googleyasheck)
- LinkedIn: [johnawasham](https://www.linkedin.com/in/johnawasham)
גם אני עובר את המסע. עקבו אחריי:
- **בלוג**: [GoogleyAsHeck.com](https://googleyasheck.com/)
- טוויטר: [@googleyasheck](https://twitter.com/googleyasheck)
- טוויטר: [@StartupNextDoor](https://twitter.com/StartupNextDoor)
- גוגל+: [+Googleyasheck](https://plus.google.com/+Googleyasheck)
- לינקדאין: [johnawasham](https://www.linkedin.com/in/johnawasham)
![John Washam - Google Interview University](https://dng5l3qzreal6.cloudfront.net/2016/Aug/book_stack_photo_resized_18_1469302751157-1472661280368.png)
## Don't feel you aren't smart enough
## אל תרדגישו שאתם לא חכמים מספיק
- Google engineers are smart, but many have an insecurity that they aren't smart enough, even though they work at Google.
- [The myth of the Genius Programmer](https://www.youtube.com/watch?v=0SARbwvhupQ)
- [It's Dangerous to Go Alone: Battling the Invisible Monsters in Tech](https://www.youtube.com/watch?v=1i8ylq4j_EY)
## About Google
## אודות גוגל
- [ ] For students - [Google Careers: Technical Development Guide](https://www.google.com/about/careers/students/guide-to-technical-development.html)
- [ ] How Search Works:
- [ ] לסטודנטים - [Google Careers: Technical Development Guide](https://www.google.com/about/careers/students/guide-to-technical-development.html)
- [ ] איך החיפוש עובד:
- [ ] [The Evolution of Search (video)](https://www.youtube.com/watch?v=mTBShTwCnD4)
- [ ] [How Search Works - the story](https://www.google.com/insidesearch/howsearchworks/thestory/)
- [ ] [How Search Works](https://www.google.com/insidesearch/howsearchworks/)
@ -245,30 +245,30 @@ Sometimes the classes are not in session so you have to wait a couple of months,
I like using university lectures.
## Interview Process & General Interview Prep
## תהליך הראיון והכנה כללית לראיון
- [ ] Videos:
- [ ] [How to Work at Google: Prepare for an Engineering Interview (video)](https://www.youtube.com/watch?v=ko-KkSmp-Lk)
- [ ] [How to Work at Google: Example Coding/Engineering Interview (video)](https://www.youtube.com/watch?v=XKu_SEDAykw)
- [ ] [How to Work at Google - Candidate Coaching Session (video)](https://www.youtube.com/watch?v=oWbUtlUhwa8&feature=youtu.be)
- [ ] סרטונים:
- [ ] [איך לעבוד בגוגל: Prepare for an Engineering Interview (video)](https://www.youtube.com/watch?v=ko-KkSmp-Lk)
- [ ] [איך לעבוד בגוגל: Example Coding/Engineering Interview (video)](https://www.youtube.com/watch?v=XKu_SEDAykw)
- [ ] [איך לעבוד בגוגל - Candidate Coaching Session (video)](https://www.youtube.com/watch?v=oWbUtlUhwa8&feature=youtu.be)
- [ ] [Google Recruiters Share Technical Interview Tips (video)](https://www.youtube.com/watch?v=qc1owf2-220&feature=youtu.be)
- [ ] [How to Work at Google: Tech Resume Preparation (video)](https://www.youtube.com/watch?v=8npJLXkcmu8)
- [ ] [איך לעבוד בגוגל: Tech Resume Preparation (video)](https://www.youtube.com/watch?v=8npJLXkcmu8)
- [ ] Articles:
- [ ] [Becoming a Googler in Three Steps](http://www.google.com/about/careers/lifeatgoogle/hiringprocess/)
- [ ] מאמרים:
- [ ] [איך להפוך לעובד בגוגל בשלושה שלבים](http://www.google.com/about/careers/lifeatgoogle/hiringprocess/)
- [ ] [Get That Job at Google](http://steve-yegge.blogspot.com/2008/03/get-that-job-at-google.html)
- all the things he mentions that you need to know are listed below
- [ ] _(very dated)_ [How To Get A Job At Google, Interview Questions, Hiring Process](http://dondodge.typepad.com/the_next_big_thing/2010/09/how-to-get-a-job-at-google-interview-questions-hiring-process.html)
- [ ] _(מאוד מיושן)_ [איך להשיג עבודה בגוגל, שאלות של ראיונות, תהליך המיון](http://dondodge.typepad.com/the_next_big_thing/2010/09/how-to-get-a-job-at-google-interview-questions-hiring-process.html)
- [ ] [Phone Screen Questions](http://sites.google.com/site/steveyegge2/five-essential-phone-screen-questions)
- [ ] Prep Courses:
- [ ] קורסי הכנה:
- [ ] [Software Engineer Interview Unleashed (paid course)](https://www.udemy.com/software-engineer-interview-unleashed):
- Learn how to make yourself ready for software engineer interviews from a former Google interviewer.
- [ ] Additional (not suggested by Google but I added):
- [ ] תוספות (not suggested by Google but I added):
- [ ] [ABC: Always Be Coding](https://medium.com/always-be-coding/abc-always-be-coding-d5f8051afce2#.4heg8zvm4)
- [ ] [Four Steps To Google Without A Degree](https://medium.com/always-be-coding/four-steps-to-google-without-a-degree-8f381aa6bd5e#.asalo1vfx)
- [ ] [Whiteboarding](https://medium.com/@dpup/whiteboarding-4df873dbba2e#.hf6jn45g1)
- [ ] [ארבעה צעדים לקראת גוגל בלי תואר](https://medium.com/always-be-coding/four-steps-to-google-without-a-degree-8f381aa6bd5e#.asalo1vfx)
- [ ] [לוח מחיק](https://medium.com/@dpup/whiteboarding-4df873dbba2e#.hf6jn45g1)
- [ ] [How Google Thinks About Hiring, Management And Culture](http://www.kpcb.com/blog/lessons-learned-how-google-thinks-about-hiring-management-and-culture)
- [ ] [Effective Whiteboarding during Programming Interviews](http://www.coderust.com/blog/2014/04/10/effective-whiteboarding-during-programming-interviews/)
- [ ] Cracking The Coding Interview Set 1:
@ -1355,15 +1355,15 @@ Supplemental:
See [Book List above](#book-list)
## Coding exercises/challenges
## תרגילי/אתגרי קידוד
Once you've learned your brains out, put those brains to work.
Take coding challenges every day, as many as you can.
ברגע שלמדתם מעל ומעבר, תתחילו להשתמש במה שלמדתם.
תעשו אתגרי קידוד כל יום, כמה שאתם יכולים.
- [ ] [How to Find a Solution](https://www.topcoder.com/community/data-science/data-science-tutorials/how-to-find-a-solution/)
- [ ] [How to Dissect a Topcoder Problem Statement](https://www.topcoder.com/community/data-science/data-science-tutorials/how-to-dissect-a-topcoder-problem-statement/)
Challenge sites:
אתרים עם אתגרים:
- [LeetCode](https://leetcode.com/)
- [TopCoder](https://www.topcoder.com/)
- [Project Euler (math-focused)](https://projecteuler.net/index.php?section=problems)
@ -1374,7 +1374,8 @@ Challenge sites:
- [Geeks for Geeks](http://www.geeksforgeeks.org/)
- [InterviewBit](https://www.interviewbit.com/invite/icjf)
Maybe:
ראיונות דמה:
- [Pramp - להתאמן בראיונות קידוד עם אחרים, בחינם](https://www.pramp.com/)
- [Mock interviewers from big companies](http://www.gainlo.co/)
## Once you're closer to the interview

541
README.md

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

File diff suppressed because one or more lines are too long

View File

@ -33,7 +33,7 @@
- [Python Cheat Sheet](https://github.com/jwasham/google-interview-university/blob/master/extras/cheat%20sheets/python-cheat-sheet-v1.pdf)
- [Python in One Video](https://www.youtube.com/watch?v=N4mEzFDjqtA)
- [Series on 3.4 (video)](https://www.youtube.com/playlist?list=PL6gx4Cwl9DGAcbMi1sH6oAMk4JHw91mC_)
- [Zero to Hero (video)](https://www.youtube.com/watch?v=emY34tSKXc4)
- [Zero to Hero (video)](https://www.youtube.com/watch?v=TV9tSHFAFjg)
- [Statistics for Hackers (video)](https://www.youtube.com/watch?v=Iq9DzN6mvYA)
- [Faster Python (video)](https://www.youtube.com/watch?v=JDSGVvMwNM8)
- [CPython Walk (video)](https://www.youtube.com/watch?v=LhadeL7_EIU&list=PLzV58Zm8FuBL6OAv1Yu6AwXZrnsFbbR0S&index=6)

2033
translations/README-ar.md Normal file

File diff suppressed because it is too large Load Diff

View File

@ -3,7 +3,9 @@
> * 原文地址:[Google Interview University](https://github.com/jwasham/google-interview-university)
* 原文作者:[John Washam](https://github.com/jwasham)
* 译文出自:[掘金翻译计划](https://github.com/xitu/gold-miner)
* 译者:[Aleen](https://github.com/aleen42)[Newton](https://github.com/Newt0n)[bobmayuze](https://github.com/bobmayuze)[Jaeger](https://github.com/laobie)[sqrthree](https://github.com/sqrthree)
* 译者:[aleen42](https://github.com/aleen42)[Newton](https://github.com/Newt0n)[bobmayuze](https://github.com/bobmayuze)[Jaeger](https://github.com/laobie)[sqrthree](https://github.com/sqrthree)
[![xitu](https://camo.githubusercontent.com/c9c9db0a39b56738a62332f0791d58b1522fdf82/68747470733a2f2f7261776769742e636f6d2f616c65656e34322f6261646765732f6d61737465722f7372632f786974752e737667)](https://github.com/xitu/gold-miner)
## 这是?
@ -22,8 +24,8 @@
- [如何使用它](#如何使用它)
- [拥有一名 Googler 的心态](#拥有一名-googler-的心态)
- [我得到了工作吗?](#我得到了工作吗)
- [着我](#跟着我)
- [不要自以为自己不够聪明](#不要自以为自己不够聪明)
- [着我的脚步](#跟着我的脚步)
- [不要妄自菲薄](#不要妄自菲薄)
- [关于 Google](#关于-google)
- [相关视频资源](#相关视频资源)
- [面试过程 & 通用的面试准备](#面试过程--通用的面试准备)
@ -143,7 +145,7 @@
感谢 JP 的这次介绍。
## 跟着我
## 跟着我的脚步
目前我仍在该计划的执行过程中,如果你想跟随我脚步去学习的话,可以登进我在 [GoogleyAsHeck.com](https://googleyasheck.com/) 上所写的博客。
@ -156,9 +158,9 @@
![John Washam - Google Interview University](https://dng5l3qzreal6.cloudfront.net/2016/Aug/book_stack_photo_resized_18_1469302751157-1472661280368.png)
## 不要自以为自己不够聪明
## 不要妄自菲薄
- Google 的工程师都是才智过人的。但是,就算是工作在 Google 的他们,仍然会因为自己不够聪明而感到一种不安。
- Google 的工程师都是才智过人的。但是,就算是工作在 Google 的他们,仍然会因为觉得自己不够聪明而感到一种不安。
- [天才程序员的神话](https://www.youtube.com/watch?v=0SARbwvhupQ)
## 关于 Google
@ -234,7 +236,7 @@
- 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
[在此查看相关语言的资源](programming-language-resources.md)
[在此查看相关语言的资源](../programming-language-resources.md)
由于我正在学习C、C++ 和 Python。因此在下面你会看到部分关于它们的学习资料。相关书籍请看文章的底部。
@ -316,7 +318,7 @@
- [ ] **编译器**
- [ ] [编译器是如何在 ~1 分钟内工作(视频)](https://www.youtube.com/watch?v=IhC7sdYe-Jg)
- [ ] [Harvard CS50 —— 编译器(视频)](https://www.youtube.com/watch?v=CSZLNYF4Klo)
- [ ] [Hardvard CS50 —— 编译器(视频)](https://www.youtube.com/watch?v=CSZLNYF4Klo)
- [ ] [C++(视频)](https://www.youtube.com/watch?v=twodd1KFfGk)
- [ ] [掌握编译器的优化C++)(视频)](https://www.youtube.com/watch?v=FnGCDLhaxKU)
@ -806,7 +808,7 @@
- [ ] [尾递归 (video)](https://www.youtube.com/watch?v=L1jjXGfxozc)
- ### 动态规划Dynamic Programming
- This subject can be pretty difficult, as each DP soluble problem must be defined as a recursion relation, and coming up with it can be tricky.
- **注意** :动态规划是门极为重要的技术,尽管其并未被 Google 提供的准备手册提及,但你可能会对寻求最佳解的方式有点疑问,所以我将其列入这份表单。
- 这一部分会有点困难,每个可以用动态规划解决的问题都必须先定义出递推关系,要推导出来可能会有点棘手。
- 我建议先阅读和学习足够多的动态规划的例子,以便对解决 DP 问题的一般模式有个扎实的理解。
@ -1172,7 +1174,7 @@
- [ ] C++ Primer Plus, 6th Edition
- [ ] [《Unxi 环境高级编程》 The Unix Programming Environment](http://product.half.ebay.com/The-UNIX-Programming-Environment-by-Brian-W-Kernighan-and-Rob-Pike-1983-Other/54385&tg=info)
- [ ] [《Unix 环境高级编程》 The Unix Programming Environment](http://product.half.ebay.com/The-UNIX-Programming-Environment-by-Brian-W-Kernighan-and-Rob-Pike-1983-Other/54385&tg=info)
- [ ] [《编程珠玑》 Programming Pearls](http://www.amazon.com/Programming-Pearls-2nd-Jon-Bentley/dp/0201657880)
@ -1435,7 +1437,7 @@
- [ ] [第六章 (第 2 部分 ) - Abstraction-Occurrence, General Hierarchy, Player-Role, Singleton, Observer, Delegation (视频)](https://www.youtube.com/watch?v=U8-PGsjvZc4&index=12&list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
- [ ] [第六章 (第 3 部分 ) - Adapter, Facade, Immutable, Read-Only Interface, Proxy (video)](https://www.youtube.com/watch?v=7sduBHuex4c&index=13&list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
- [ ] [视频](https://www.youtube.com/playlist?list=PLF206E906175C7E07)
- [ ] [Head Fisrt 设计模型](https://www.amazon.com/Head-First-Design-Patterns-Freeman/dp/0596007124)
- [ ] [Head First 设计模型](https://www.amazon.com/Head-First-Design-Patterns-Freeman/dp/0596007124)
- 尽管这本书叫做设计模式重复使用模块但是我还是认为Head First是对于新手来说很不错的书。
- [ ] [基于实际操作对于入门开发者的建议](https://sourcemaking.com/design-patterns-and-tips)

1918
translations/README-es.md Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,46 +1,44 @@
# Google Interview University
Version original: [Inglés](README.md)
Translations:
- [中文版本](README-cn.md)
- [Español (in progress)](README-es.md) [Issue #80](https://github.com/jwasham/google-interview-university/issues/80)
- मानक हिन्दी (in progress) [Issue #81](https://github.com/jwasham/google-interview-university/issues/81)
## Qué es?
## C'est quoi?
Es mi guía de estudio en varios meses para ir de desarrollador web (Autodidacta, sin grado en Ciencias de Computadores) a ingeniero de software en Google.
C'est un plan d'études de plusieurs mois pour aller d'un développeur web (Autodidacte, sans diplôme en informatique) à ingénieur logiciel google.
![Coding at the whiteboard - from HBO's Silicon Valley](https://dng5l3qzreal6.cloudfront.net/2016/Aug/coding_board_small-1470866369118.jpg)
This long list has been extracted and expanded from **Google's coaching notes**, so these are the things you need to know.
There are extra items I added at the bottom that may come up in the interview or be helpful in solving a problem. Many items are from
Steve Yegge's "[Get that job at Google](http://steve-yegge.blogspot.com/2008/03/get-that-job-at-google.html)" and are reflected
sometimes word-for-word in Google's coaching notes.
Cette longue liste a été extraite et étendue de **Google's coaching notes**, ce sont donc des choses que vous devez savoir.
En bas, j'ai rajouté des unités supplémentaires qui peuvent être soulevées pendant l'entretien, ou qui peuvent être utiles pour résoudre des problèmes. Plusieurs unités proviennent de
"[Get that job at Google](http://steve-yegge.blogspot.com/2008/03/get-that-job-at-google.html)" par Steve Yegge, et sont parfois reflétées mot pour mot dans les notes de coaching de google.
I've pared down what you need to know from what Yegge recommends. I've altered Yegge's requirements
from information received from my contact at Google. This is meant for **new software engineers** or those switching from
software/web development to software engineering (where computer science knowledge is required). If you have
many years of experience and are claiming many years of software engineering experience, expect a harder interview.
J'ai épuré ce que vous devez savoir de ce qui est recommendé par Yegge. J'ai modifié les prérequis de Yegge.
D'après les informations reçues de la part des contact travaillant à Google. Ceci est destiné aux **new software engineers** ou aux developpeur logiciel/web qui souhaitent devenir des ingénieurs en génie logiciel (où la science de l'informatique est requise). Si vous avez plusieurs années d'expérience et vous déclarez plusieurs années d'éxperience en génie logiciel attendez vous à un entretien plus dur.
[Read more here](https://googleyasheck.com/what-you-need-to-know-for-your-google-interview-and-what-you-dont/).
If you have many years of software/web development experience, note that Google views software engineering as
different from software/web development and they require computer science knowledge.
If you want to be a reliability engineer or systems engineer, study more from the optional list (networking, security).
Si vous avez plusieurs années d'experience en development web/logiciel, notez que google font une distinction entre le développement logiciel et l'ingénieurie en génie civil.
Si vous souhaitez devenir ingénieur de fiabilité, ou ingénieur systèmes, suivez plus de cours de la liste optionelle (Réseau, sécurité)
---
## Table of Contents
- [What is it?](#what-is-it)
- [Why use it?](#why-use-it)
- [How to 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)
- [C'est quoi?](#what-is-it)
- [Pourquoi l'utilisier?](#why-use-it)
- [Comment s'en servir](#how-to-use-it)
- [Se mettre dans l'humeur Googley](#get-in-a-googley-mood)
- [J'ai décroché le 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)
- [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)
- [Before you Get Started](#before-you-get-started)
- [A propos de Google](#about-google)
- [A propos des ressources vidéo](#about-video-resources)
- [Déroulement de l'entretien & préparations générales à l'entretien](#interview-process--general-interview-prep)
- [Choisir un langage pour l'entretien](#pick-one-language-for-the-interview)
- [List de livres](#book-list)
- [Avant de commencer](#before-you-get-started)
- [What you Won't See Covered](#what-you-wont-see-covered)
- [Prerequisite Knowledge](#prerequisite-knowledge)
- [The Daily Plan](#the-daily-plan)
@ -52,45 +50,45 @@ If you want to be a reliability engineer or systems engineer, study more from th
- [Queue](#queue)
- [Hash table](#hash-table)
- [More Knowledge](#more-knowledge)
- [Binary search](#binary-search)
- [Bitwise operations](#bitwise-operations)
- [Trees](#trees)
- [Trees - Notes & Background](#trees---notes--background)
- [Binary search trees: BSTs](#binary-search-trees-bsts)
- [Heap / Priority Queue / Binary Heap](#heap--priority-queue--binary-heap)
- balanced search trees (general concept, not details)
- traversals: preorder, inorder, postorder, BFS, DFS
- [Sorting](#sorting)
- selection
- [Recherche dichotomique](#binary-search)
- [Opérations bit à bit](#bitwise-operations)
- [Arbes](#trees)
- [Arbres - Notes & Background](#trees---notes--background)
- [Arbres binaires de recherche: BSTs](#binary-search-trees-bsts)
- [Tas / File de Priorité / Tas binaire](#heap--priority-queue--binary-heap)
- Arbre de recherche equilibré (general concept, not details)
- Parcours : Préfixe, infixe, postfixe, BFS, DFS
- [Tri](#sorting)
- sélection
- insertion
- heapsort
- quicksort
- merge sort
- [Graphs](#graphs)
- directed
- undirected
- adjacency matrix
- adjacency list
- traversals: BFS, DFS
- tri par tas
- tri rapide
- tri fusion
- [Graphes](#graphs)
- orienté
- non orienté
- matrice d'adjacence
- liste d'adjacence
- parcours: BFS, DFS
- [Even More Knowledge](#even-more-knowledge)
- [Recursion](#recursion)
- [Object-Oriented Programming](#object-oriented-programming)
- [Récursivité](#recursion)
- [Programmation orientée objet](#object-oriented-programming)
- [Design Patterns](#design-patterns)
- [Combinatorics (n choose k) & Probability](#combinatorics-n-choose-k--probability)
- [NP, NP-Complete and Approximation Algorithms](#np-np-complete-and-approximation-algorithms)
- [Combinatoire (k parmi n) et probabilité](#combinatorics-n-choose-k--probability)
- [NP, NP-complet et les Algorithmes d'approximation](#np-np-complete-and-approximation-algorithms)
- [Caches](#caches)
- [Processes and Threads](#processes-and-threads)
- [Papers](#papers)
- [Testing](#testing)
- [Scheduling](#scheduling)
- [Implement system routines](#implement-system-routines)
- [Processus et Threads](#processes-and-threads)
- [Documents](#papers)
- [Tests](#testing)
- [Ordonnancement](#scheduling)
- [Implémentation des routines système](#implement-system-routines)
- [String searching & manipulations](#string-searching--manipulations)
- [System Design, Scalability, Data Handling](#system-design-scalability-data-handling) (if you have 4+ years experience)
- [Final Review](#final-review)
- [Coding Question Practice](#coding-question-practice)
- [Coding exercises/challenges](#coding-exerciseschallenges)
- [Once you're closer to the interview](#once-youre-closer-to-the-interview)
- [Your Resume](#your-resume)
- [Votre CV](#your-resume)
- [Be thinking of for when the interview comes](#be-thinking-of-for-when-the-interview-comes)
- [Have questions for the interviewer](#have-questions-for-the-interviewer)
- [Once You've Got The Job](#once-youve-got-the-job)
@ -204,10 +202,7 @@ Print out a "[future Googler](https://github.com/jwasham/google-interview-univer
## Did I Get the Job?
I haven't applied yet.
Right now I'm doing programming problems all day long. That will continue for a few weeks, and then I'll
apply through a referral I've been holding onto since February (yes, February).
I'm in the queue right now. Hope to interview soon.
Thanks for the referral, JP.
@ -216,7 +211,7 @@ apply through a referral I've been holding onto since February (yes, February).
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)
@ -228,6 +223,7 @@ I'm on the journey, too. Follow along:
## Don't feel you aren't smart enough
- Google engineers are smart, but many have an insecurity that they aren't smart enough, even though they work at Google.
- [The myth of the Genius Programmer](https://www.youtube.com/watch?v=0SARbwvhupQ)
- [It's Dangerous to Go Alone: Battling the Invisible Monsters in Tech](https://www.youtube.com/watch?v=1i8ylq4j_EY)
## About Google
@ -341,7 +337,7 @@ If you have tons of extra time:
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 somehat outdated, but it's a terrific resource for understanding a computer in brief.
- 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
@ -352,7 +348,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 +359,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 +368,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 +440,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.
@ -479,7 +475,7 @@ Make your own for free:
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))
@ -538,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)
@ -1044,7 +1040,7 @@ You'll get more graph practice in Skiena's book (see Books section below) and th
- [ ] [Complexity: P, NP, NP-completeness, Reductions (video)](https://www.youtube.com/watch?v=eHZifpgyH_4&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=22)
- [ ] [Complexity: Approximation Algorithms (video)](https://www.youtube.com/watch?v=MEz1J9wY2iM&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=24)
- [ ] [Complexity: Fixed-Parameter Algorithms (video)](https://www.youtube.com/watch?v=4q-jmGrmxKs&index=25&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- Peter Norvik discusses near-optimal solutions to traveling salesman problem:
- Peter Norvig discusses near-optimal solutions to traveling salesman problem:
- [Jupyter Notebook](http://nbviewer.jupyter.org/url/norvig.com/ipython/TSP.ipynb)
- Pages 1048 - 1140 in CLRS if you have it.
@ -1153,15 +1149,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
@ -1647,7 +1643,7 @@ You're never really done.
- [ ] [Amazon SQS (queue)](https://aws.amazon.com/sqs/)
- [ ] [Amazon SNS (pub-sub)](https://aws.amazon.com/sns/)
- [ ] [RabbitMQ](https://www.rabbitmq.com/)
- [Get Startet](https://www.rabbitmq.com/getstarted.html)
- [Get Started](https://www.rabbitmq.com/getstarted.html)
- [ ] [Celery](http://www.celeryproject.org/)
- [First Steps With Celery](http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-celery.html)
- [ ] [ZeroMQ](http://zeromq.org/)
@ -2016,4 +2012,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)

1731
translations/README-hi.md Normal file

File diff suppressed because it is too large Load Diff

1984
translations/README-id.md Normal file

File diff suppressed because it is too large Load Diff

2054
translations/README-ko.md Normal file

File diff suppressed because it is too large Load Diff

1978
translations/README-pl.md Normal file

File diff suppressed because it is too large Load Diff

1968
translations/README-ptbr.md Normal file

File diff suppressed because it is too large Load Diff

1939
translations/README-th.md Normal file

File diff suppressed because it is too large Load Diff

1939
translations/README-uk.md Normal file

File diff suppressed because it is too large Load Diff

1957
translations/README-vi.md Normal file

File diff suppressed because it is too large Load Diff

11
translations/how-to.md Normal file
View File

@ -0,0 +1,11 @@
Please put new translation README files here.
I'll migrate the existing translations when they are ready.
To start a new translation, please:
1. Make an issue (for collaboration with other translators)
2. Make a pull request to collaborate and commit to.
3. Let me know when it's ready to pull.
Thank you!