Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Artur 2017-02-24 21:13:10 +01:00
commit 8ea4dbed8a
7 changed files with 8567 additions and 546 deletions

File diff suppressed because it is too large Load Diff

154
README.md
View File

@ -1,6 +1,13 @@
# Google Interview University # Google Interview University
Translations: >**I originally created this as a short to-do list of study topics, but it grew to the large list you see today. Working at
Google was the original motivator, hence the name. [I didn't get an interview at Google](https://googleyasheck.com/i-didnt-get-hired-heres-why/),
but the repo name lives on, and it would mess up a lot of folks to change it now. The items listed here will prepare you
for a career at just about any software company, including the giants: Amazon, Microsoft, Google, and Facebook.**
>
> *Best of luck to you!*
Translations:
- [中文版本](translations/README-cn.md) - [中文版本](translations/README-cn.md)
- translations in progress: - translations in progress:
- [Español](https://github.com/jwasham/google-interview-university/issues/80) - [Español](https://github.com/jwasham/google-interview-university/issues/80)
@ -14,26 +21,30 @@ Translations:
- [Russian](https://github.com/jwasham/google-interview-university/issues/87) - [Russian](https://github.com/jwasham/google-interview-university/issues/87)
- [Ukrainian](https://github.com/jwasham/google-interview-university/issues/106) - [Ukrainian](https://github.com/jwasham/google-interview-university/issues/106)
- [Brazilian Portuguese](https://github.com/jwasham/google-interview-university/issues/113) - [Brazilian Portuguese](https://github.com/jwasham/google-interview-university/issues/113)
- [Korean](https://github.com/jwasham/google-interview-university/issues/118)
- [Polish](https://github.com/jwasham/google-interview-university/issues/122)
## What is it? ## What is it?
This is my multi-month study plan for going from web developer (self-taught, no CS degree) to Google software engineer. This is my multi-month study plan for going from web developer (self-taught, no CS degree) to software engineer for a large company.
![Coding at the whiteboard - from HBO's Silicon Valley](https://dng5l3qzreal6.cloudfront.net/2016/Aug/coding_board_small-1470866369118.jpg) ![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. You'll see a lot of Google-related items, but I've tried to generalize the list to make it useful for everyone.
This list was 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 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 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. sometimes word-for-word in Google's coaching notes.
I've pared down what you need to know from what Yegge recommends. I've altered Yegge's requirements 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 from information received from a 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 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. many years of experience and are claiming many years of software engineering experience, expect a harder interview.
[Read more here](https://googleyasheck.com/what-you-need-to-know-for-your-google-interview-and-what-you-dont/). [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 If you have many years of software/web development experience, note that large software companies like Google, Amazon,
different from software/web development and they require computer science knowledge. Facebook and Microsoft view 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). If you want to be a reliability engineer or systems engineer, study more from the optional list (networking, security).
@ -44,11 +55,7 @@ If you want to be a reliability engineer or systems engineer, study more from th
- [What is it?](#what-is-it) - [What is it?](#what-is-it)
- [Why use it?](#why-use-it) - [Why use it?](#why-use-it)
- [How to use it](#how-to-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)
- [Follow Along with Me](#follow-along-with-me)
- [Don't feel you aren't smart enough](#dont-feel-you-arent-smart-enough) - [Don't feel you aren't smart enough](#dont-feel-you-arent-smart-enough)
- [About Google](#about-google)
- [About Video Resources](#about-video-resources) - [About Video Resources](#about-video-resources)
- [Interview Process & General Interview Prep](#interview-process--general-interview-prep) - [Interview Process & General Interview Prep](#interview-process--general-interview-prep)
- [Pick One Language for the Interview](#pick-one-language-for-the-interview) - [Pick One Language for the Interview](#pick-one-language-for-the-interview)
@ -164,12 +171,6 @@ If you want to be a reliability engineer or systems engineer, study more from th
## Why use it? ## 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.
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 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. 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 Every data structure I've ever used was built into the language, and I didn't know how they worked
@ -177,8 +178,7 @@ under the hood at all. I've never had to manage memory unless a process I was ru
memory" error, and then I'd have to find a workaround. I've used a few multidimensional arrays in my life and 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. thousands of associative arrays, but I've never created data structures from scratch.
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 It's a long plan. It may take you months. If you are familiar with a lot of this already it will take you a lot less time.
months. If you are familiar with a lot of this already it will take you a lot less time.
## How to use it ## How to use it
@ -209,54 +209,11 @@ I'm using Github's special markdown flavor, including tasks lists to check progr
[More about Github-flavored markdown](https://guides.github.com/features/mastering-markdown/#GitHub-flavored-markdown) [More about Github-flavored markdown](https://guides.github.com/features/mastering-markdown/#GitHub-flavored-markdown)
## Get in a Googley Mood
Print out a "[future Googler](https://github.com/jwasham/google-interview-university/blob/master/extras/future-googler.pdf)" sign (or two) and keep your eyes on the prize.
[![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)
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)
![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 ## 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. - Successful software engineers are smart, but many have an insecurity that they aren't smart enough.
- [The myth of the Genius Programmer](https://www.youtube.com/watch?v=0SARbwvhupQ) - [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) - [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:
- [ ] [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/)
- [ ] [How Search Works - Matt Cutts (video)](https://www.youtube.com/watch?v=BNHR6IQJGZs)
- [ ] [How Google makes improvements to its search algorithm (video)](https://www.youtube.com/watch?v=J5RZOU6vK4Q)
- [ ] Series:
- [ ] [How Google Search Dealt With Mobile](https://backchannel.com/how-google-search-dealt-with-mobile-33bc09852dc9)
- [ ] [Google's Secret Study To Find Out Our Needs](https://backchannel.com/googles-secret-study-to-find-out-our-needs-eba8700263bf)
- [ ] [Google Search Will Be Your Next Brain](https://backchannel.com/google-search-will-be-your-next-brain-5207c26e4523)
- [ ] [The Deep Mind Of Demis Hassabis](https://backchannel.com/the-deep-mind-of-demis-hassabis-156112890d8a)
- [ ] [Book: How Google Works](https://www.amazon.com/How-Google-Works-Eric-Schmidt/dp/1455582344)
- [ ] [Made by Google announcement - Oct 2016 (video)](https://www.youtube.com/watch?v=q4y0KOeXViI)
## About Video Resources ## About Video Resources
Some videos are available only by enrolling in a Coursera, EdX, or Lynda.com class. These are called MOOCs. Some videos are available only by enrolling in a Coursera, EdX, or Lynda.com class. These are called MOOCs.
@ -268,42 +225,22 @@ Sometimes the classes are not in session so you have to wait a couple of months,
## Interview Process & General Interview Prep ## Interview Process & General Interview Prep
- [ ] Videos: - [ ] [ABC: Always Be Coding](https://medium.com/always-be-coding/abc-always-be-coding-d5f8051afce2#.4heg8zvm4)
- [ ] [How to Work at Google: Prepare for an Engineering Interview (video)](https://www.youtube.com/watch?v=ko-KkSmp-Lk) - [ ] [Whiteboarding](https://medium.com/@dpup/whiteboarding-4df873dbba2e#.hf6jn45g1)
- [ ] [How to Work at Google: Example Coding/Engineering Interview (video)](https://www.youtube.com/watch?v=XKu_SEDAykw) - [ ] [Effective Whiteboarding during Programming Interviews](http://www.coderust.com/blog/2014/04/10/effective-whiteboarding-during-programming-interviews/)
- [ ] [How to Work at Google - Candidate Coaching Session (video)](https://www.youtube.com/watch?v=oWbUtlUhwa8&feature=youtu.be) - [ ] Cracking The Coding Interview Set 1:
- [ ] [Google Recruiters Share Technical Interview Tips (video)](https://www.youtube.com/watch?v=qc1owf2-220&feature=youtu.be) - [ ] [Gayle L McDowell - Cracking The Coding Interview (video)](https://www.youtube.com/watch?v=rEJzOhC5ZtQ)
- [ ] [How to Work at Google: Tech Resume Preparation (video)](https://www.youtube.com/watch?v=8npJLXkcmu8) - [ ] [Cracking the Coding Interview with Author Gayle Laakmann McDowell (video)](https://www.youtube.com/watch?v=aClxtDcdpsQ)
- [ ] How to Get a Job at the Big 4:
- [ ] ['How to Get a Job at the Big 4 - Amazon, Facebook, Google & Microsoft' (video)](https://www.youtube.com/watch?v=YJZCUhxNCv8)
- [ ] Articles: - [ ] Prep Course:
- [ ] [Becoming a Googler in Three Steps](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)
- [ ] [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): - [ ] [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. - Learn how to make yourself ready for software engineer interviews from a former Google interviewer.
- [ ] Additional (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)
- [ ] [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:
- [ ] [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)
- [ ] How to Get a Job at the Big 4:
- [ ] ['How to Get a Job at the Big 4 - Amazon, Facebook, Google & Microsoft' (video)](https://www.youtube.com/watch?v=YJZCUhxNCv8)
- [ ] [Failing at Google Interviews](http://alexbowe.com/failing-at-google-interviews/)
## Pick One Language for the Interview ## 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/) You can use a language you are comfortable in to do the coding part of the interview, but for large companies, these are solid choices:
You can use a language you are comfortable in to do the coding part of the interview, but for Google, these are solid choices:
- C++ - C++
- Java - Java
@ -319,7 +256,6 @@ You need to be very comfortable in the language and be knowledgeable.
Read more about choices: 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
[See language resources here](programming-language-resources.md) [See language resources here](programming-language-resources.md)
@ -339,7 +275,6 @@ This is a shorter list than what I used. This is abbreviated to save you time.
- [ ] [Cracking the Coding Interview, 6th Edition](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/) - [ ] [Cracking the Coding Interview, 6th Edition](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/)
- answers in Java - answers in Java
- recommended on the [Google Careers site](https://www.google.com/about/careers/how-we-hire/interview/) - 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".
If you have tons of extra time: If you have tons of extra time:
@ -408,7 +343,7 @@ OR:
- by Goodrich, Tamassia, Goldwasser - by Goodrich, Tamassia, Goldwasser
- I loved this book. It covered everything and more. - I loved this book. It covered everything and more.
- Pythonic code - Pythonic code
- my glowing book report: https://googleyasheck.com/book-report-data-structures-and-algorithms-in-python/ - my glowing book report: https://startupnextdoor.com/book-report-data-structures-and-algorithms-in-python/
### Optional Books ### Optional Books
@ -487,7 +422,7 @@ Make your own for free:
- [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): - [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. 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.
**Note on flashcards:** The first time you recognize you know the answer, don't mark it as known. You have to see the **Note on flashcards:** The first time you recognize you know the answer, don't mark it as known. You have to see the
same card and answer it several times correctly before you really know it. Repetition will put that knowledge deeper in same card and answer it several times correctly before you really know it. Repetition will put that knowledge deeper in
@ -1014,11 +949,10 @@ You'll get more graph practice in Skiena's book (see Books section below) and th
- [OOSE: Software Dev Using UML and Java](https://www.youtube.com/playlist?list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO) - [OOSE: Software Dev Using UML and Java](https://www.youtube.com/playlist?list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
- [ ] SOLID OOP Principles: - [ ] SOLID OOP Principles:
- [ ] [Bob Martin SOLID Principles of Object Oriented and Agile Design (video)](https://www.youtube.com/watch?v=TMuno5RZNeE) - [ ] [Bob Martin SOLID Principles of Object Oriented and Agile Design (video)](https://www.youtube.com/watch?v=TMuno5RZNeE)
- [ ] [SOLID Design Patterns in C# (video)](https://www.youtube.com/playlist?list=PL8m4NUhTQU48oiGCSgCP1FiJEcg_xJzyQ)
- [ ] [SOLID Principles (video)](https://www.youtube.com/playlist?list=PL4CE9F710017EA77A) - [ ] [SOLID Principles (video)](https://www.youtube.com/playlist?list=PL4CE9F710017EA77A)
- [ ] S - [Single Responsibility Principle](http://www.oodesign.com/single-responsibility-principle.html) | [Single responsibility to each Object](http://www.javacodegeeks.com/2011/11/solid-single-responsibility-principle.html) - [ ] S - [Single Responsibility Principle](http://www.oodesign.com/single-responsibility-principle.html) | [Single responsibility to each Object](http://www.javacodegeeks.com/2011/11/solid-single-responsibility-principle.html)
- [more flavor](https://docs.google.com/open?id=0ByOwmqah_nuGNHEtcU5OekdDMkk) - [more flavor](https://docs.google.com/open?id=0ByOwmqah_nuGNHEtcU5OekdDMkk)
- [ ] O - [Open/Closed Principal](http://www.oodesign.com/open-close-principle.html) | [On production level Objects are ready for extension for not for modification](https://en.wikipedia.org/wiki/Open/closed_principle) - [ ] O - [Open/Closed Principal](http://www.oodesign.com/open-close-principle.html) | [On production level Objects are ready for extension but not for modification](https://en.wikipedia.org/wiki/Open/closed_principle)
- [more flavor](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgN2M5MTkwM2EtNWFkZC00ZTI3LWFjZTUtNTFhZGZiYmUzODc1&hl=en) - [more flavor](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgN2M5MTkwM2EtNWFkZC00ZTI3LWFjZTUtNTFhZGZiYmUzODc1&hl=en)
- [ ] L - [Liskov Substitution Principal](http://www.oodesign.com/liskov-s-substitution-principle.html) | [Base Class and Derived class follow IS A principal](http://stackoverflow.com/questions/56860/what-is-the-liskov-substitution-principle) - [ ] L - [Liskov Substitution Principal](http://www.oodesign.com/liskov-s-substitution-principle.html) | [Base Class and Derived class follow IS A principal](http://stackoverflow.com/questions/56860/what-is-the-liskov-substitution-principle)
- [more flavor](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgNzAzZjA5ZmItNjU3NS00MzQ5LTkwYjMtMDJhNDU5ZTM0MTlh&hl=en) - [more flavor](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgNzAzZjA5ZmItNjU3NS00MzQ5LTkwYjMtMDJhNDU5ZTM0MTlh&hl=en)
@ -1116,6 +1050,9 @@ You'll get more graph practice in Skiena's book (see Books section below) and th
- livelock - livelock
- CPU activity, interrupts, context switching - CPU activity, interrupts, context switching
- Modern concurrency constructs with multicore processors - Modern concurrency constructs with multicore processors
- [Paging, segmentation and virtual memory (video)](https://www.youtube.com/watch?v=LKe7xK0bF7o&list=PLCiOXwirraUCBE9i_ukL8_Kfg6XNv7Se8&index=2)
- [Interrupts (video)](https://www.youtube.com/watch?v=uFKi2-J-6II&list=PLCiOXwirraUCBE9i_ukL8_Kfg6XNv7Se8&index=3)
- [Scheduling (video)](https://www.youtube.com/watch?v=-Gu5mYdKbu4&index=4&list=PLCiOXwirraUCBE9i_ukL8_Kfg6XNv7Se8)
- Process resource needs (memory: code, static storage, stack, heap, and also file descriptors, i/o) - Process resource needs (memory: code, static storage, stack, heap, and also file descriptors, i/o)
- Thread resource needs (shares above (minus stack) with other threads in the same process but each has its own pc, stack counter, registers, and stack) - Thread resource needs (shares above (minus stack) with other threads in the same process but each has its own pc, stack counter, registers, and stack)
- Forking is really copy on write (read-only) until the new process writes to memory, then it does a full copy. - Forking is really copy on write (read-only) until the new process writes to memory, then it does a full copy.
@ -1417,6 +1354,10 @@ 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 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/) - [ ] [How to Dissect a Topcoder Problem Statement](https://www.topcoder.com/community/data-science/data-science-tutorials/how-to-dissect-a-topcoder-problem-statement/)
Coding Interview Question Videos:
- [IDeserve (88 videos)](https://www.youtube.com/watch?v=NBcqBddFbZw&list=PLamzFoFxwoNjPfxzaWqs7cZGsPYy0x_gI)
- [Tushar Roy (5 playlists)](https://www.youtube.com/user/tusharroy2525/playlists?shelf_id=2&view=50&sort=dd)
Challenge sites: Challenge sites:
- [LeetCode](https://leetcode.com/) - [LeetCode](https://leetcode.com/)
- [TopCoder](https://www.topcoder.com/) - [TopCoder](https://www.topcoder.com/)
@ -1427,9 +1368,11 @@ Challenge sites:
- [InterviewCake](https://www.interviewcake.com/) - [InterviewCake](https://www.interviewcake.com/)
- [Geeks for Geeks](http://www.geeksforgeeks.org/) - [Geeks for Geeks](http://www.geeksforgeeks.org/)
- [InterviewBit](https://www.interviewbit.com/invite/icjf) - [InterviewBit](https://www.interviewbit.com/invite/icjf)
- [Sphere Online Judge (spoj)](http://www.spoj.com/)
Maybe: Mock Interviews:
- [Mock interviewers from big companies](http://www.gainlo.co/) - [Gainlo.co: Mock interviewers from big companies](http://www.gainlo.co/)
- [Pramp: Mock interviews from/with peers](https://www.pramp.com/)
## Once you're closer to the interview ## Once you're closer to the interview
@ -1453,7 +1396,7 @@ Have a story, not just data, about something you accomplished.
- What's a tough problem you've solved? - What's a tough problem you've solved?
- Biggest challenges faced? - Biggest challenges faced?
- Best/worst designs seen? - Best/worst designs seen?
- Ideas for improving an existing Google product. - Ideas for improving an existing product.
- How do you work best, as an individual and as part of a team? - How do you work best, as an individual and as part of a team?
- Which of your skills or experiences would be assets in the role and why? - Which of your skills or experiences would be assets in the role and why?
- What did you most enjoy at [job x / project y]? - What did you most enjoy at [job x / project y]?
@ -1480,8 +1423,6 @@ Have a story, not just data, about something you accomplished.
Congratulations! Congratulations!
- [10 things I wish I knew on my first day at Google](https://medium.com/@moonstorming/10-things-i-wish-i-knew-on-my-first-day-at-google-107581d87286#.livxn7clw)
Keep learning. Keep learning.
You're never really done. You're never really done.
@ -1491,7 +1432,7 @@ You're never really done.
***************************************************************************************************** *****************************************************************************************************
***************************************************************************************************** *****************************************************************************************************
Everything below this point is optional. These are my recommendations, not Google's. Everything below this point is optional.
By studying these, you'll get greater exposure to more CS concepts, and will be better prepared for By studying these, you'll get greater exposure to more CS concepts, and will be better prepared for
any software engineering job. You'll be a much more well-rounded software engineer. any software engineering job. You'll be a much more well-rounded software engineer.
@ -1512,8 +1453,6 @@ You're never really done.
- [ ] [Design Patterns: Elements of Reusable Object-Oriented Software](https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612) - [ ] [Design Patterns: Elements of Reusable Object-Oriented Software](https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612)
- aka the "Gang Of Four" book, or GOF - aka the "Gang Of Four" book, or GOF
- the canonical design patterns book - the canonical design patterns book
- [ ] [Site Reliability Engineering](https://landing.google.com/sre/book.html)
- [Site Reliability Engineering: How Google Runs Production Systems](https://landing.google.com/sre/)
- [ ] [UNIX and Linux System Administration Handbook, 4th Edition](https://www.amazon.com/UNIX-Linux-System-Administration-Handbook/dp/0131480057/) - [ ] [UNIX and Linux System Administration Handbook, 4th Edition](https://www.amazon.com/UNIX-Linux-System-Administration-Handbook/dp/0131480057/)
## Additional Learning ## Additional Learning
@ -1627,6 +1566,9 @@ You're never really done.
- [ ] [HTTP 2.0](https://www.youtube.com/watch?v=E9FxNzv1Tr8) - [ ] [HTTP 2.0](https://www.youtube.com/watch?v=E9FxNzv1Tr8)
- [ ] [Video Series (21 videos)](https://www.youtube.com/playlist?list=PLEbnTDJUr_IegfoqO4iPnPYQui46QqT0j) - [ ] [Video Series (21 videos)](https://www.youtube.com/playlist?list=PLEbnTDJUr_IegfoqO4iPnPYQui46QqT0j)
- [ ] [Subnetting Demystified - Part 5 CIDR Notation](https://www.youtube.com/watch?v=t5xYI0jzOf4) - [ ] [Subnetting Demystified - Part 5 CIDR Notation](https://www.youtube.com/watch?v=t5xYI0jzOf4)
- [ ] Sockets:
- [ ] [Java - Sockets - Introduction (video)](https://www.youtube.com/watch?v=6G_W54zuadg&t=6s)
- [ ] [Socket Programming (video)](https://www.youtube.com/watch?v=G75vN2mnJeQ)
- ### Computer Security - ### Computer Security
- [MIT (23 videos)](https://www.youtube.com/playlist?list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh) - [MIT (23 videos)](https://www.youtube.com/playlist?list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)

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 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) - [Python in One Video](https://www.youtube.com/watch?v=N4mEzFDjqtA)
- [Series on 3.4 (video)](https://www.youtube.com/playlist?list=PL6gx4Cwl9DGAcbMi1sH6oAMk4JHw91mC_) - [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) - [Statistics for Hackers (video)](https://www.youtube.com/watch?v=Iq9DzN6mvYA)
- [Faster Python (video)](https://www.youtube.com/watch?v=JDSGVvMwNM8) - [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) - [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

2014
translations/README-fr.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