commit
ce6e9c6941
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,2 +1,4 @@
|
||||
.idea
|
||||
personal-9894.md
|
||||
~$ADME-es.txt
|
||||
translations/~$ADME-es.md
|
||||
|
443
README.md
443
README.md
@ -1,38 +1,50 @@
|
||||
# Google Interview University
|
||||
# Coding Interview University
|
||||
|
||||
> I originally created this as a short to-do list of study topics for becoming a software engineer,
|
||||
> but it grew to the large list you see today. After going through this study plan, [I got hired
|
||||
> as a Software Development Engineer at Amazon](https://startupnextdoor.com/ive-been-acquired-by-amazon/?src=ciu)!
|
||||
> You probably won't have to study as much as I did. Anyway, everything you need is here.
|
||||
>
|
||||
> The items listed here will prepare you well for in an interview at just about any software company,
|
||||
> including the giants: Amazon, Facebook, Google or Microsoft.
|
||||
>
|
||||
> *Best of luck to you!*
|
||||
|
||||
Translations:
|
||||
- [中文版本](translations/README-cn.md)
|
||||
- [Tiếng Việt - Vietnamese](translations/README-vi.md)
|
||||
- translations in progress:
|
||||
- [Español](https://github.com/jwasham/google-interview-university/issues/80)
|
||||
- [हिन्दी](https://github.com/jwasham/google-interview-university/issues/81)
|
||||
- [עברית](https://github.com/jwasham/google-interview-university/issues/82)
|
||||
- [Bahasa Indonesia](https://github.com/jwasham/google-interview-university/issues/101)
|
||||
- [Arabic](https://github.com/jwasham/google-interview-university/issues/98)
|
||||
- [Vietnamese](https://github.com/jwasham/google-interview-university/issues/92)
|
||||
- [Turkish](https://github.com/jwasham/google-interview-university/issues/90)
|
||||
- [French](https://github.com/jwasham/google-interview-university/issues/89)
|
||||
- [Russian](https://github.com/jwasham/google-interview-university/issues/87)
|
||||
- [Ukrainian](https://github.com/jwasham/google-interview-university/issues/106)
|
||||
- [Español](https://github.com/jwasham/coding-interview-university/issues/80)
|
||||
- [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81)
|
||||
- [עברית](https://github.com/jwasham/coding-interview-university/issues/82)
|
||||
- [Bahasa Indonesia](https://github.com/jwasham/coding-interview-university/issues/101)
|
||||
- [Arabic](https://github.com/jwasham/coding-interview-university/issues/98)
|
||||
- [Turkish](https://github.com/jwasham/coding-interview-university/issues/90)
|
||||
- [French](https://github.com/jwasham/coding-interview-university/issues/89)
|
||||
- [Russian](https://github.com/jwasham/coding-interview-university/issues/87)
|
||||
- [Ukrainian](https://github.com/jwasham/coding-interview-university/issues/106)
|
||||
- [Brazilian Portuguese](https://github.com/jwasham/coding-interview-university/issues/113)
|
||||
- [Korean](https://github.com/jwasham/coding-interview-university/issues/118)
|
||||
- [Telugu](https://github.com/jwasham/coding-interview-university/issues/117)
|
||||
- [Polish](https://github.com/jwasham/coding-interview-university/issues/122)
|
||||
- [German](https://github.com/jwasham/coding-interview-university/issues/135)
|
||||
- [Urdu](https://github.com/jwasham/coding-interview-university/issues/140)
|
||||
- [Thai](https://github.com/jwasham/coding-interview-university/issues/156)
|
||||
- [Greek](https://github.com/jwasham/coding-interview-university/issues/166)
|
||||
- [Italian](https://github.com/jwasham/coding-interview-university/issues/170)
|
||||
|
||||
## 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.
|
||||
|
||||

|
||||
|
||||
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.
|
||||
|
||||
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
|
||||
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.
|
||||
[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 have many years of software/web development experience, note that large software companies like Google, Amazon,
|
||||
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).
|
||||
|
||||
@ -43,11 +55,7 @@ If you want to be a reliability engineer or systems engineer, study more from th
|
||||
- [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)
|
||||
- [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)
|
||||
@ -98,6 +106,11 @@ If you want to be a reliability engineer or systems engineer, study more from th
|
||||
- [Scheduling](#scheduling)
|
||||
- [Implement system routines](#implement-system-routines)
|
||||
- [String searching & manipulations](#string-searching--manipulations)
|
||||
- [Tries](#tries)
|
||||
- [Floating Point Numbers](#floating-point-numbers)
|
||||
- [Unicode](#unicode)
|
||||
- [Endianness](#endianness)
|
||||
- [Networking](#networking)
|
||||
- [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)
|
||||
@ -113,9 +126,6 @@ If you want to be a reliability engineer or systems engineer, study more from th
|
||||
- [Additional Books](#additional-books)
|
||||
- [Additional Learning](#additional-learning)
|
||||
- [Compilers](#compilers)
|
||||
- [Floating Point Numbers](#floating-point-numbers)
|
||||
- [Unicode](#unicode)
|
||||
- [Endianness](#endianness)
|
||||
- [Emacs and vi(m)](#emacs-and-vim)
|
||||
- [Unix command line tools](#unix-command-line-tools)
|
||||
- [Information theory](#information-theory)
|
||||
@ -123,18 +133,17 @@ If you want to be a reliability engineer or systems engineer, study more from th
|
||||
- [Entropy](#entropy)
|
||||
- [Cryptography](#cryptography)
|
||||
- [Compression](#compression)
|
||||
- [Redes](#redes) (si tienes experiencia en redes o quieres ser ingeniero de sistemas, espera preguntas)
|
||||
- [Seguridad informática](#seguridad-informática)
|
||||
- [Recolección de basura](#recolección-de-basura)
|
||||
- [Programación paralela](#programación-paralela)
|
||||
- [Computer Security](#computer-security)
|
||||
- [Garbage collection](#garbage-collection)
|
||||
- [Parallel Programming](#parallel-programming)
|
||||
- [Messaging, Serialization, and Queueing Systems](#messaging-serialization-and-queueing-systems)
|
||||
- [A*](#a)
|
||||
- [Fast Fourier Transform](#fast-fourier-transform)
|
||||
- [Bloom Filter](#bloom-filter)
|
||||
- [HyperLogLog](#hyperloglog)
|
||||
- [Locality-Sensitive Hashing](#locality-sensitive-hashing)
|
||||
- [van Emde Boas Trees](#van-emde-boas-trees)
|
||||
- [Augmented Data Structures](#augmented-data-structures)
|
||||
- [Tries](#tries)
|
||||
- [N-ary (K-ary, M-ary) trees](#n-ary-k-ary-m-ary-trees)
|
||||
- [Balanced search trees](#balanced-search-trees)
|
||||
- AVL trees
|
||||
@ -154,7 +163,6 @@ If you want to be a reliability engineer or systems engineer, study more from th
|
||||
- [Geometry, Convex hull](#geometry-convex-hull)
|
||||
- [Discrete math](#discrete-math)
|
||||
- [Machine Learning](#machine-learning)
|
||||
- [Go](#go)
|
||||
- [Additional Detail on Some Subjects](#additional-detail-on-some-subjects)
|
||||
- [Video Series](#video-series)
|
||||
- [Computer Science Courses](#computer-science-courses)
|
||||
@ -163,12 +171,6 @@ If you want to be a reliability engineer or systems engineer, study more from th
|
||||
|
||||
## 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
|
||||
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
|
||||
@ -176,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
|
||||
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
|
||||
months. If you are familiar with a lot of this already it will take you a lot less time.
|
||||
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.
|
||||
|
||||
## How to use it
|
||||
|
||||
@ -192,7 +193,7 @@ I'm using Github's special markdown flavor, including tasks lists to check progr
|
||||
|
||||
`git checkout -b progress`
|
||||
|
||||
`git remote add jwasham https://github.com/jwasham/google-interview-university`
|
||||
`git remote add jwasham https://github.com/jwasham/coding-interview-university`
|
||||
|
||||
`git fetch --all`
|
||||
|
||||
@ -208,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)
|
||||
|
||||
## 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.
|
||||
|
||||
[](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)
|
||||
|
||||

|
||||
|
||||
## 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)
|
||||
- [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
|
||||
|
||||
Some videos are available only by enrolling in a Coursera, EdX, or Lynda.com class. These are called MOOCs.
|
||||
@ -267,42 +225,25 @@ Sometimes the classes are not in session so you have to wait a couple of months,
|
||||
|
||||
## 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)
|
||||
- [ ] [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)
|
||||
|
||||
- [ ] Articles:
|
||||
- [ ] [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):
|
||||
- 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:
|
||||
- [ ] [ABC: Always Be Coding](https://medium.com/always-be-coding/abc-always-be-coding-d5f8051afce2#.4heg8zvm4)
|
||||
- [ ] [Whiteboarding](https://medium.com/@dpup/whiteboarding-4df873dbba2e#.hf6jn45g1)
|
||||
- [ ] [Effective Whiteboarding during Programming Interviews](http://www.coderust.com/blog/2014/04/10/effective-whiteboarding-during-programming-interviews/)
|
||||
- [ ] [Demystifying Tech Recruiting](https://www.youtube.com/watch?v=N233T0epWTs)
|
||||
- [ ] 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/)
|
||||
- [ ] 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)
|
||||
|
||||
- [ ] Prep Course:
|
||||
- [ ] [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.
|
||||
- [ ] [Python for Data Structures, Algorithms, and Interviews! (paid course)](https://www.udemy.com/python-for-data-structures-algorithms-and-interviews/):
|
||||
- A Python centric interview prep course which covers data structures, algorithms, mock interviews and much more.
|
||||
|
||||
## 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 Google, these are solid choices:
|
||||
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:
|
||||
|
||||
- C++
|
||||
- Java
|
||||
@ -318,7 +259,6 @@ 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://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)
|
||||
|
||||
@ -332,19 +272,17 @@ This is a shorter list than what I used. This is abbreviated to save you time.
|
||||
|
||||
- [ ] [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".
|
||||
|
||||
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.
|
||||
- [ ] [Elements of Programming Interviews (C++ version)](https://www.amazon.com/Elements-Programming-Interviews-Insiders-Guide/dp/1479274836)
|
||||
- [ ] Elements of Programming Interviews (Java version)
|
||||
- [book](https://www.amazon.com/Elements-Programming-Interviews-Java-Insiders/dp/1517435803/)
|
||||
- [Companion Project - Method Stub and Test Cases for Every Problem in the Book](https://github.com/gardncl/elements-of-programming-interviews)
|
||||
|
||||
### Computer Architecture
|
||||
|
||||
@ -407,7 +345,7 @@ OR:
|
||||
- by Goodrich, Tamassia, Goldwasser
|
||||
- I loved this book. It covered everything and more.
|
||||
- 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
|
||||
@ -430,12 +368,6 @@ OR:
|
||||
- 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:
|
||||
@ -445,7 +377,6 @@ OR:
|
||||
|
||||
- [ ] [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
|
||||
|
||||
@ -471,7 +402,7 @@ through my notes and making flashcards so I could review.
|
||||
|
||||
Read please so you won't make my mistakes:
|
||||
|
||||
[Retaining Computer Science Knowledge](https://googleyasheck.com/retaining-computer-science-knowledge/)
|
||||
[Retaining Computer Science Knowledge](https://startupnextdoor.com/retaining-computer-science-knowledge/)
|
||||
|
||||
### 2. Use Flashcards
|
||||
|
||||
@ -486,7 +417,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 (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
|
||||
same card and answer it several times correctly before you really know it. Repetition will put that knowledge deeper in
|
||||
@ -509,8 +440,7 @@ There are a lot of distractions that can take up valuable time. Focus and concen
|
||||
|
||||
## What you won't see covered
|
||||
|
||||
This big list all started as a personal to-do list made from Google interview coaching notes. These are prevalent
|
||||
technologies but were not mentioned in those notes:
|
||||
These are prevalent technologies but not part of this study plan:
|
||||
|
||||
- SQL
|
||||
- Javascript
|
||||
@ -538,9 +468,9 @@ Why code in all of these?
|
||||
I may not have time to do all of these for every subject, but I'll try.
|
||||
|
||||
You can see my code here:
|
||||
- [C] (https://github.com/jwasham/practice-c)
|
||||
- [C++] (https://github.com/jwasham/practice-cpp)
|
||||
- [Python] (https://github.com/jwasham/practice-python)
|
||||
- [C](https://github.com/jwasham/practice-c)
|
||||
- [C++](https://github.com/jwasham/practice-cpp)
|
||||
- [Python](https://github.com/jwasham/practice-python)
|
||||
|
||||
You don't need to memorize the guts of every algorithm.
|
||||
|
||||
@ -720,7 +650,7 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
|
||||
- binary search using recursion
|
||||
|
||||
- ### Bitwise operations
|
||||
- [ ] [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/coding-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)
|
||||
- [ ] Get a really good understanding of manipulating bits with: &, |, ^, ~, >>, <<
|
||||
- [ ] [words](https://en.wikipedia.org/wiki/Word_(computer_architecture))
|
||||
- [ ] Good intro:
|
||||
@ -901,17 +831,19 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
|
||||
- [ ] [Randomization: Matrix Multiply, Quicksort, Freivalds' algorithm (video)](https://www.youtube.com/watch?v=cNB2lADK3_s&index=8&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
|
||||
- [ ] [Sorting in Linear Time (video)](https://www.youtube.com/watch?v=pOKy3RZbSws&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf&index=14)
|
||||
|
||||
As a summary, here is a visual representation of [15 sorting algorithms](https://www.youtube.com/watch?v=kPRA0W1kECg).
|
||||
If you need more detail on this subject, see "Sorting" section in [Additional Detail on Some Subjects](#additional-detail-on-some-subjects)
|
||||
|
||||
## Graphs
|
||||
|
||||
Graphs can be used to represent many problems in computer science, so this section is long, like trees and sorting were.
|
||||
|
||||
- Notes from Yegge:
|
||||
- There are three basic ways to represent a graph in memory:
|
||||
- Notes:
|
||||
- There are 4 basic ways to represent a graph in memory:
|
||||
- objects and pointers
|
||||
- matrix
|
||||
- adjacency matrix
|
||||
- adjacency list
|
||||
- adjacency map
|
||||
- Familiarize yourself with each representation and its pros & cons
|
||||
- BFS and DFS - know their computational complexity, their tradeoffs, and how to implement them in real code
|
||||
- When asked a question, look for a graph-based solution first, then move on if none.
|
||||
@ -942,13 +874,6 @@ Graphs can be used to represent many problems in computer science, so this secti
|
||||
- Full Coursera Course:
|
||||
- [ ] [Algorithms on Graphs (video)](https://www.coursera.org/learn/algorithms-on-graphs/home/welcome)
|
||||
|
||||
- Yegge: If you get a chance, try to study up on fancier algorithms:
|
||||
- [ ] Dijkstra's algorithm - see above - 6.006
|
||||
- [ ] A*
|
||||
- [ ] [A Search Algorithm](https://en.wikipedia.org/wiki/A*_search_algorithm)
|
||||
- [ ] [A* Pathfinding Tutorial (video)](https://www.youtube.com/watch?v=KNXfSOx4eEE)
|
||||
- [ ] [A* Pathfinding (E01: algorithm explanation) (video)](https://www.youtube.com/watch?v=-L-WgKMFuhE)
|
||||
|
||||
- I'll implement:
|
||||
- [ ] DFS with adjacency list (recursive)
|
||||
- [ ] DFS with adjacency list (iterative with stack)
|
||||
@ -981,7 +906,6 @@ You'll get more graph practice in Skiena's book (see Books section below) and th
|
||||
- [ ] [Tail Recursion (video)](https://www.youtube.com/watch?v=L1jjXGfxozc)
|
||||
|
||||
- ### Dynamic Programming
|
||||
- **NOTE:** DP is a valuable technique, but it is not mentioned on any of the prep material Google provides. But you could get a problem where DP provides an optimal solution. So I'm including it.
|
||||
- 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.
|
||||
- I suggest looking at many examples of DP problems until you have a solid understanding of the pattern involved.
|
||||
- [ ] Videos:
|
||||
@ -1013,11 +937,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)
|
||||
- [ ] SOLID OOP Principles:
|
||||
- [ ] [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)
|
||||
- [ ] 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)
|
||||
- [ ] 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)
|
||||
- [ ] 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)
|
||||
@ -1055,6 +978,8 @@ You'll get more graph practice in Skiena's book (see Books section below) and th
|
||||
- [ ] [Head First Design Patterns](https://www.amazon.com/Head-First-Design-Patterns-Freeman/dp/0596007124)
|
||||
- I know the canonical book is "Design Patterns: Elements of Reusable Object-Oriented Software", but Head First is great for beginners to OO.
|
||||
- [ ] [Handy reference: 101 Design Patterns & Tips for Developers](https://sourcemaking.com/design-patterns-and-tips)
|
||||
- [ ] [Design patterns for humans](https://github.com/kamranahmedse/design-patterns-for-humans#structural-design-patterns)
|
||||
|
||||
|
||||
- ### Combinatorics (n choose k) & Probability
|
||||
- [ ] [Math Skills: How to find Factorial, Permutation and Combination (Choose) (video)](https://www.youtube.com/watch?v=8RRo6Ti9d0U)
|
||||
@ -1115,6 +1040,9 @@ You'll get more graph practice in Skiena's book (see Books section below) and th
|
||||
- livelock
|
||||
- CPU activity, interrupts, context switching
|
||||
- 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)
|
||||
- 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.
|
||||
@ -1131,11 +1059,10 @@ You'll get more graph practice in Skiena's book (see Books section below) and th
|
||||
- [ ] [Mutex in Python](https://www.youtube.com/watch?v=0zaPs8OtyKY)
|
||||
|
||||
- ### Papers
|
||||
- These are Google papers and well-known papers.
|
||||
- Reading all from end to end with full comprehension will likely take more time than you have. I recommend being selective on papers and their sections.
|
||||
- [Love classic papers?](https://www.cs.cmu.edu/~crary/819-f09/)
|
||||
- [ ] [1978: Communicating Sequential Processes](http://spinroot.com/courses/summer/Papers/hoare_1978.pdf)
|
||||
- [implemented in Go](https://godoc.org/github.com/thomas11/csp)
|
||||
- [Love classic papers?](https://www.cs.cmu.edu/~crary/819-f09/)
|
||||
- [ ] [2003: The Google File System](http://static.googleusercontent.com/media/research.google.com/en//archive/gfs-sosp2003.pdf)
|
||||
- replaced by Colossus in 2012
|
||||
- [ ] [2004: MapReduce: Simplified Data Processing on Large Clusters]( http://static.googleusercontent.com/media/research.google.com/en//archive/mapreduce-osdi04.pdf)
|
||||
@ -1143,6 +1070,8 @@ You'll get more graph practice in Skiena's book (see Books section below) and th
|
||||
- [ ] [2006: Bigtable: A Distributed Storage System for Structured Data](https://static.googleusercontent.com/media/research.google.com/en//archive/bigtable-osdi06.pdf)
|
||||
- [An Inside Look at Google BigQuery](https://cloud.google.com/files/BigQueryTechnicalWP.pdf)
|
||||
- [ ] [2006: The Chubby Lock Service for Loosely-Coupled Distributed Systems](https://research.google.com/archive/chubby-osdi06.pdf)
|
||||
- [ ] [2007: Dynamo: Amazon’s Highly Available Key-value Store](https://www.akkadia.org/drepper/cpumemory.pdf)
|
||||
- The Dynamo paper kicked off the NoSQL revolution
|
||||
- [ ] [2007: What Every Programmer Should Know About Memory (very long, and the author encourages skipping of some sections)](https://www.akkadia.org/drepper/cpumemory.pdf)
|
||||
- [ ] [2010: Dapper, a Large-Scale Distributed Systems Tracing Infrastructure](https://research.google.com/pubs/archive/36356.pdf)
|
||||
- [ ] [2010: Dremel: Interactive Analysis of Web-Scale Datasets](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/36632.pdf)
|
||||
@ -1200,14 +1129,62 @@ You'll get more graph practice in Skiena's book (see Books section below) and th
|
||||
|
||||
If you need more detail on this subject, see "String Matching" section in [Additional Detail on Some Subjects](#additional-detail-on-some-subjects)
|
||||
|
||||
---
|
||||
- ### Tries
|
||||
- Note there are different kinds of tries. Some have prefixes, some don't, and some use string instead of bits
|
||||
to track the path.
|
||||
- I read through code, but will not implement.
|
||||
- [ ] [Sedgewick - Tries (3 videos)](https://www.youtube.com/playlist?list=PLe-ggMe31CTe9IyG9MB8vt5xUJeYgOYRQ)
|
||||
- [ ] [1. R Way Tries](https://www.youtube.com/watch?v=buq2bn8x3Vo&index=3&list=PLe-ggMe31CTe9IyG9MB8vt5xUJeYgOYRQ)
|
||||
- [ ] [2. Ternary Search Tries](https://www.youtube.com/watch?v=LelV-kkYMIg&index=2&list=PLe-ggMe31CTe9IyG9MB8vt5xUJeYgOYRQ)
|
||||
- [ ] [3. Character Based Operations](https://www.youtube.com/watch?v=00YaFPcC65g&list=PLe-ggMe31CTe9IyG9MB8vt5xUJeYgOYRQ&index=1)
|
||||
- [ ] [Notes on Data Structures and Programming Techniques](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Tries)
|
||||
- [ ] Short course videos:
|
||||
- [ ] [Introduction To Tries (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/08Xyf/core-introduction-to-tries)
|
||||
- [ ] [Performance Of Tries (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/PvlZW/core-performance-of-tries)
|
||||
- [ ] [Implementing A Trie (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/DFvd3/core-implementing-a-trie)
|
||||
- [ ] [The Trie: A Neglected Data Structure](https://www.toptal.com/java/the-trie-a-neglected-data-structure)
|
||||
- [ ] [TopCoder - Using Tries](https://www.topcoder.com/community/data-science/data-science-tutorials/using-tries/)
|
||||
- [ ] [Stanford Lecture (real world use case) (video)](https://www.youtube.com/watch?v=TJ8SkcUSdbU)
|
||||
- [ ] [MIT, Advanced Data Structures, Strings (can get pretty obscure about halfway through)](https://www.youtube.com/watch?v=NinWEPPrkDQ&index=16&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
|
||||
|
||||
- ### Floating Point Numbers
|
||||
- [ ] simple 8-bit: [Representation of Floating Point Numbers - 1 (video - there is an error in calculations - see video description)](https://www.youtube.com/watch?v=ji3SfClm8TU)
|
||||
- [ ] 32 bit: [IEEE754 32-bit floating point binary (video)](https://www.youtube.com/watch?v=50ZYcZebIec)
|
||||
|
||||
- ### Unicode
|
||||
- [ ] [The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets]( http://www.joelonsoftware.com/articles/Unicode.html)
|
||||
- [ ] [What Every Programmer Absolutely, Positively Needs To Know About Encodings And Character Sets To Work With Text](http://kunststube.net/encoding/)
|
||||
|
||||
- ### Endianness
|
||||
- [ ] [Big And Little Endian](https://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Data/endian.html)
|
||||
- [ ] [Big Endian Vs Little Endian (video)](https://www.youtube.com/watch?v=JrNF0KRAlyo)
|
||||
- [ ] [Big And Little Endian Inside/Out (video)](https://www.youtube.com/watch?v=oBSuXP-1Tc0)
|
||||
- Very technical talk for kernel devs. Don't worry if most is over your head.
|
||||
- The first half is enough.
|
||||
|
||||
- ### Networking
|
||||
- **if you have networking experience or want to be a systems engineer, expect questions**
|
||||
- otherwise, this is just good to know
|
||||
- [ ] [Khan Academy](https://www.khanacademy.org/computing/computer-science/internet-intro)
|
||||
- [ ] [UDP and TCP: Comparison of Transport Protocols](https://www.youtube.com/watch?v=Vdc8TCESIg8)
|
||||
- [ ] [TCP/IP and the OSI Model Explained!](https://www.youtube.com/watch?v=e5DEVa9eSN0)
|
||||
- [ ] [Packet Transmission across the Internet. Networking & TCP/IP tutorial.](https://www.youtube.com/watch?v=nomyRJehhnM)
|
||||
- [ ] [HTTP](https://www.youtube.com/watch?v=WGJrLqtX7As)
|
||||
- [ ] [SSL and HTTPS](https://www.youtube.com/watch?v=S2iBR2ZlZf0)
|
||||
- [ ] [SSL/TLS](https://www.youtube.com/watch?v=Rp3iZUvXWlM)
|
||||
- [ ] [HTTP 2.0](https://www.youtube.com/watch?v=E9FxNzv1Tr8)
|
||||
- [ ] [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)
|
||||
- [ ] 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)
|
||||
|
||||
## 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.
|
||||
Expect to spend quite a bit of time on this.
|
||||
- Considerations from Yegge:
|
||||
- Considerations:
|
||||
- scalability
|
||||
- Distill large data sets to single values
|
||||
- Transform one data set to another
|
||||
@ -1220,7 +1197,8 @@ You'll get more graph practice in Skiena's book (see Books section below) and th
|
||||
- simplicity and robustness
|
||||
- tradeoffs
|
||||
- performance analysis and optimization
|
||||
- [ ] **START HERE**: [System Design from HiredInTech](http://www.hiredintech.com/system-design/)
|
||||
- [ ] **START HERE**: [The System Design Primer](https://github.com/donnemartin/system-design-primer)
|
||||
- [ ] [System Design from HiredInTech](http://www.hiredintech.com/system-design/)
|
||||
- [ ] [How Do I Prepare To Answer Design Questions In A Technical Inverview?](https://www.quora.com/How-do-I-prepare-to-answer-design-questions-in-a-technical-interview?redirected_qid=1500023)
|
||||
- [ ] [8 Things You Need to Know Before a System Design Interview](http://blog.gainlo.co/index.php/2015/10/22/8-things-you-need-to-know-before-system-design-interviews/)
|
||||
- [ ] [Algorithm design](http://www.hiredintech.com/algorithm-design/)
|
||||
@ -1295,8 +1273,9 @@ You'll get more graph practice in Skiena's book (see Books section below) and th
|
||||
- [Timelines at Scale](https://www.infoq.com/presentations/Twitter-Timeline-Scalability)
|
||||
- For even more, see "Mining Massive Datasets" video series in the Video Series section.
|
||||
- [ ] Practicing the system design process: Here are some ideas to try working through on paper, each with some documentation on how it was handled in the real world:
|
||||
- review: [System Design from HiredInTech](http://www.hiredintech.com/system-design/)
|
||||
- [cheat sheet](https://github.com/jwasham/google-interview-university/blob/master/extras/cheat%20sheets/system-design.pdf)
|
||||
- review: [The System Design Primer](https://github.com/donnemartin/system-design-primer)
|
||||
- [System Design from HiredInTech](http://www.hiredintech.com/system-design/)
|
||||
- [cheat sheet](https://github.com/jwasham/coding-interview-university/blob/master/extras/cheat%20sheets/system-design.pdf)
|
||||
- flow:
|
||||
1. Understand the problem and scope:
|
||||
- define the use cases, with interviewer's help
|
||||
@ -1384,8 +1363,6 @@ There is a great intro for methodical, communicative problem solving in an inter
|
||||
interview books, too, but I found this outstanding:
|
||||
[Algorithm design canvas](http://www.hiredintech.com/algorithm-design/)
|
||||
|
||||
[My Process for Coding Interview (Book) Exercises](https://googleyasheck.com/my-process-for-coding-interview-exercises/)
|
||||
|
||||
No whiteboard at home? That makes sense. I'm a weirdo and have a big whiteboard. Instead of a whiteboard, pick up a
|
||||
large drawing pad from an art store. You can sit on the couch and practice. This is my "sofa whiteboard".
|
||||
I added the pen in the photo for scale. If you use a pen, you'll wish you could erase. Gets messy quick.
|
||||
@ -1416,19 +1393,30 @@ 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/)
|
||||
|
||||
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:
|
||||
- [LeetCode](https://leetcode.com/)
|
||||
- [TopCoder](https://www.topcoder.com/)
|
||||
- [Project Euler (math-focused)](https://projecteuler.net/index.php?section=problems)
|
||||
- [Codewars](http://www.codewars.com)
|
||||
- [HackerEarth](https://www.hackerearth.com/)
|
||||
- [HackerRank](https://www.hackerrank.com/)
|
||||
- [Codility](https://codility.com/programmers/)
|
||||
- [InterviewCake](https://www.interviewcake.com/)
|
||||
- [Geeks for Geeks](http://www.geeksforgeeks.org/)
|
||||
- [InterviewBit](https://www.interviewbit.com/invite/icjf)
|
||||
- [Sphere Online Judge (spoj)](http://www.spoj.com/)
|
||||
|
||||
Maybe:
|
||||
- [Mock interviewers from big companies](http://www.gainlo.co/)
|
||||
Challenge repos:
|
||||
- [Interactive Coding Interview Challenges in Python](https://github.com/donnemartin/interactive-coding-challenges)
|
||||
|
||||
Mock Interviews:
|
||||
- [Gainlo.co: Mock interviewers from big companies](http://www.gainlo.co/)
|
||||
- [Pramp: Mock interviews from/with peers](https://www.pramp.com/)
|
||||
- [Refdash: Mock interviews](https://refdash.com/)
|
||||
|
||||
## Once you're closer to the interview
|
||||
|
||||
@ -1439,7 +1427,6 @@ Maybe:
|
||||
|
||||
## Your Resume
|
||||
|
||||
- [Ten Tips for a (Slightly) Less Awful Resume](http://steve-yegge.blogspot.co.uk/2007_09_01_archive.html)
|
||||
- See Resume prep items in Cracking The Coding Interview and back of Programming Interviews Exposed
|
||||
|
||||
|
||||
@ -1452,7 +1439,7 @@ Have a story, not just data, about something you accomplished.
|
||||
- What's a tough problem you've solved?
|
||||
- Biggest challenges faced?
|
||||
- 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?
|
||||
- Which of your skills or experiences would be assets in the role and why?
|
||||
- What did you most enjoy at [job x / project y]?
|
||||
@ -1479,8 +1466,6 @@ Have a story, not just data, about something you accomplished.
|
||||
|
||||
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.
|
||||
|
||||
You're never really done.
|
||||
@ -1490,7 +1475,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
|
||||
any software engineering job. You'll be a much more well-rounded software engineer.
|
||||
|
||||
@ -1511,35 +1496,21 @@ 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)
|
||||
- aka the "Gang Of Four" book, or GOF
|
||||
- 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/)
|
||||
|
||||
## Additional Learning
|
||||
|
||||
These topics will likely not come up in an interview, but I added them to help you become a well-rounded
|
||||
software engineer, and to be aware of certain technologies and algorithms, so you'll have a bigger toolbox.
|
||||
|
||||
- ### Compilers
|
||||
- [ ] [How a Compiler Works in ~1 minute (video)](https://www.youtube.com/watch?v=IhC7sdYe-Jg)
|
||||
- [ ] [Harvard CS50 - Compilers (video)](https://www.youtube.com/watch?v=CSZLNYF4Klo)
|
||||
- [ ] [C++ (video)](https://www.youtube.com/watch?v=twodd1KFfGk)
|
||||
- [ ] [Understanding Compiler Optimization (C++) (video)](https://www.youtube.com/watch?v=FnGCDLhaxKU)
|
||||
|
||||
- ### Floating Point Numbers
|
||||
- [ ] simple 8-bit: [Representation of Floating Point Numbers - 1 (video - there is an error in calculations - see video description)](https://www.youtube.com/watch?v=ji3SfClm8TU)
|
||||
- [ ] 32 bit: [IEEE754 32-bit floating point binary (video)](https://www.youtube.com/watch?v=50ZYcZebIec)
|
||||
|
||||
- ### Unicode
|
||||
- [ ] [The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets]( http://www.joelonsoftware.com/articles/Unicode.html)
|
||||
- [ ] [What Every Programmer Absolutely, Positively Needs To Know About Encodings And Character Sets To Work With Text](http://kunststube.net/encoding/)
|
||||
|
||||
- ### Endianness
|
||||
- [ ] [Big And Little Endian](https://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Data/endian.html)
|
||||
- [ ] [Big Endian Vs Little Endian (video)](https://www.youtube.com/watch?v=JrNF0KRAlyo)
|
||||
- [ ] [Big And Little Endian Inside/Out (video)](https://www.youtube.com/watch?v=oBSuXP-1Tc0)
|
||||
- Very technical talk for kernel devs. Don't worry if most is over your head.
|
||||
- The first half is enough.
|
||||
|
||||
- ### Emacs and vi(m)
|
||||
- suggested by Yegge, from an old Amazon recruiting post: Familiarize yourself with a unix-based code editor
|
||||
- Familiarize yourself with a unix-based code editor
|
||||
- vi(m):
|
||||
- [Editing With vim 01 - Installation, Setup, and The Modes (video)](https://www.youtube.com/watch?v=5givLEMcINQ&index=1&list=PL13bz4SHGmRxlZVmWQ9DvXo1fEg4UdGkr)
|
||||
- [VIM Adventures](http://vim-adventures.com/)
|
||||
@ -1560,7 +1531,7 @@ You're never really done.
|
||||
- [(maybe) Org Mode In Depth: Managing Structure (video)](https://www.youtube.com/watch?v=nsGYet02bEk)
|
||||
|
||||
- ### Unix command line tools
|
||||
- suggested by Yegge, from an old Amazon recruiting post. I filled in the list below from good tools.
|
||||
- I filled in the list below from good tools.
|
||||
- [ ] bash
|
||||
- [ ] cat
|
||||
- [ ] grep
|
||||
@ -1613,46 +1584,30 @@ You're never really done.
|
||||
- [ ] [Compressor Head videos](https://www.youtube.com/playlist?list=PLOU2XLYxmsIJGErt5rrCqaSGTMyyqNt2H)
|
||||
- [ ] [(optional) Google Developers Live: GZIP is not enough!](https://www.youtube.com/watch?v=whGwm0Lky2s)
|
||||
|
||||
- ### Redes
|
||||
- **si tienes experiencia en redes o quieres ser ingeniero en sistemas, espera preguntas**
|
||||
- pero de cualquier forma es bueno saber lo siguiente
|
||||
- [ ] [Khan Academy](https://www.khanacademy.org/computing/computer-science/internet-intro)
|
||||
- [ ] [UDP y TCP: Comparación de protocolos de transporte](https://www.youtube.com/watch?v=Vdc8TCESIg8)
|
||||
- [ ] [TCP/IP y el modelo OSI, ¡explicado!](https://www.youtube.com/watch?v=e5DEVa9eSN0)
|
||||
- [ ] [Transmisión de paquetes a través del Internet. Tutorial en redes y TCP/IP.](https://www.youtube.com/watch?v=nomyRJehhnM)
|
||||
- [ ] [HTTP](https://www.youtube.com/watch?v=WGJrLqtX7As)
|
||||
- [ ] [SSL y HTTPS](https://www.youtube.com/watch?v=S2iBR2ZlZf0)
|
||||
- [ ] [SSL/TLS](https://www.youtube.com/watch?v=Rp3iZUvXWlM)
|
||||
- [ ] [HTTP 2.0](https://www.youtube.com/watch?v=E9FxNzv1Tr8)
|
||||
- [ ] [Serie de vídeos (21 vídeos)](https://www.youtube.com/playlist?list=PLEbnTDJUr_IegfoqO4iPnPYQui46QqT0j)
|
||||
- [ ] [Subredes desmistificadas - Notación CIDR Parte 5](https://www.youtube.com/watch?v=t5xYI0jzOf4)
|
||||
|
||||
- ### Seguridad informática
|
||||
- [MIT (23 vídeos)](https://www.youtube.com/playlist?list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
|
||||
- [ ] [Introducción, modelos de amenaza](https://www.youtube.com/watch?v=GqmQg-cszw4&index=1&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
|
||||
- [ ] [Ataques de secuestro de control](https://www.youtube.com/watch?v=6bwzNg5qQ0o&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh&index=2)
|
||||
- [ ] [Desbordamientos de búfer: ataques y defensas](https://www.youtube.com/watch?v=drQyrzRoRiA&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh&index=3)
|
||||
- [ ] [Separación de privilegios](https://www.youtube.com/watch?v=6SIJmoE9L9g&index=4&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
|
||||
- [ ] [Capacidades](https://www.youtube.com/watch?v=8VqTSY-11F4&index=5&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
|
||||
- [ ] [Aislamiento de código nativo](https://www.youtube.com/watch?v=VEV74hwASeU&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh&index=6)
|
||||
- [ ] [Modelo de seguridad web](https://www.youtube.com/watch?v=chkFBigodIw&index=7&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
|
||||
- [ ] [Asegurando aplicaciones web](https://www.youtube.com/watch?v=EBQIGy1ROLY&index=8&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
|
||||
- [ ] [Ejecución simbólica](https://www.youtube.com/watch?v=yRVZPvHYHzw&index=9&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
|
||||
- [ ] [Seguridad de redes](https://www.youtube.com/watch?v=SIEVvk3NVuk&index=11&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
|
||||
- [ ] [Protocolos de red](https://www.youtube.com/watch?v=QOtA76ga_fY&index=12&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
|
||||
- [ ] [Ataque de canal lateral](https://www.youtube.com/watch?v=PuVMkSEcPiI&index=15&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
|
||||
- ### Computer Security
|
||||
- [MIT (23 videos)](https://www.youtube.com/playlist?list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
|
||||
- [ ] [Introduction, Threat Models](https://www.youtube.com/watch?v=GqmQg-cszw4&index=1&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
|
||||
- [ ] [Control Hijacking Attacks](https://www.youtube.com/watch?v=6bwzNg5qQ0o&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh&index=2)
|
||||
- [ ] [Buffer Overflow Exploits and Defenses](https://www.youtube.com/watch?v=drQyrzRoRiA&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh&index=3)
|
||||
- [ ] [Privilege Separation](https://www.youtube.com/watch?v=6SIJmoE9L9g&index=4&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
|
||||
- [ ] [Capabilities](https://www.youtube.com/watch?v=8VqTSY-11F4&index=5&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
|
||||
- [ ] [Sandboxing Native Code](https://www.youtube.com/watch?v=VEV74hwASeU&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh&index=6)
|
||||
- [ ] [Web Security Model](https://www.youtube.com/watch?v=chkFBigodIw&index=7&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
|
||||
- [ ] [Securing Web Applications](https://www.youtube.com/watch?v=EBQIGy1ROLY&index=8&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
|
||||
- [ ] [Symbolic Execution](https://www.youtube.com/watch?v=yRVZPvHYHzw&index=9&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
|
||||
- [ ] [Network Security](https://www.youtube.com/watch?v=SIEVvk3NVuk&index=11&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
|
||||
- [ ] [Network Protocols](https://www.youtube.com/watch?v=QOtA76ga_fY&index=12&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
|
||||
- [ ] [Side-Channel Attacks](https://www.youtube.com/watch?v=PuVMkSEcPiI&index=15&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
|
||||
|
||||
- ### Recolección de basura
|
||||
- [ ] [Recolección de basura (Java); Aumentando estructuras de datos (vídeo)](https://www.youtube.com/watch?v=StdfeXaKGEc&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=25)
|
||||
- [ ] [Compiladores (vídeo)](https://www.youtube.com/playlist?list=PLO9y7hOkmmSGTy5z6HZ-W4k2y8WXF7Bff)
|
||||
- [ ] [Recolección de basura en Python (vídeo)](https://www.youtube.com/watch?v=iHVs_HkjdmI)
|
||||
- [ ] [Deep Dive Java: ¡La recolección de basura es buena!](https://www.infoq.com/presentations/garbage-collection-benefits)
|
||||
- [ ] [Deep Dive Python: La recolección de basura en CPython (vídeo)](https://www.youtube.com/watch?v=P-8Z0-MhdQs&list=PLdzf4Clw0VbOEWOS_sLhT_9zaiQDrS5AR&index=3)
|
||||
|
||||
- ### Programación paralela
|
||||
- [ ] [Coursera (Scala)](https://www.coursera.org/learn/parprog1/home/week/1)
|
||||
- [ ] [Python eficiente para computación paralela de alto rendimiento (vídeo)](https://www.youtube.com/watch?v=uY85GkaYzBk)
|
||||
- ### Garbage collection
|
||||
- [ ] [Garbage collection (Java); Augmenting data str (video)](https://www.youtube.com/watch?v=StdfeXaKGEc&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd&index=25)
|
||||
- [ ] [Compilers (video)](https://www.youtube.com/playlist?list=PLO9y7hOkmmSGTy5z6HZ-W4k2y8WXF7Bff)
|
||||
- [ ] [GC in Python (video)](https://www.youtube.com/watch?v=iHVs_HkjdmI)
|
||||
- [ ] [Deep Dive Java: Garbage Collection is Good!](https://www.infoq.com/presentations/garbage-collection-benefits)
|
||||
- [ ] [Deep Dive Python: Garbage Collection in CPython (video)](https://www.youtube.com/watch?v=P-8Z0-MhdQs&list=PLdzf4Clw0VbOEWOS_sLhT_9zaiQDrS5AR&index=3)
|
||||
|
||||
- ### Parallel Programming
|
||||
- ### Messaging, Serialization, and Queueing Systems
|
||||
- [ ] [Thrift](https://thrift.apache.org/)
|
||||
- [Tutorial](http://thrift-tutorial.readthedocs.io/en/latest/intro.html)
|
||||
@ -1675,6 +1630,11 @@ You're never really done.
|
||||
- [ ] [MessagePack](http://msgpack.org/index.html)
|
||||
- [ ] [Avro](https://avro.apache.org/)
|
||||
|
||||
- ### A*
|
||||
- [ ] [A Search Algorithm](https://en.wikipedia.org/wiki/A*_search_algorithm)
|
||||
- [ ] [A* Pathfinding Tutorial (video)](https://www.youtube.com/watch?v=KNXfSOx4eEE)
|
||||
- [ ] [A* Pathfinding (E01: algorithm explanation) (video)](https://www.youtube.com/watch?v=-L-WgKMFuhE)
|
||||
|
||||
- ### Fast Fourier Transform
|
||||
- [ ] [An Interactive Guide To The Fourier Transform](https://betterexplained.com/articles/an-interactive-guide-to-the-fourier-transform/)
|
||||
- [ ] [What is a Fourier transform? What is it used for?](http://www.askamathematician.com/2012/09/q-what-is-a-fourier-transform-what-is-it-used-for/)
|
||||
@ -1704,24 +1664,6 @@ You're never really done.
|
||||
- ### Augmented Data Structures
|
||||
- [ ] [CS 61B Lecture 39: Augmenting Data Structures](https://youtu.be/zksIj9O8_jc?list=PL4BBB74C7D2A1049C&t=950)
|
||||
|
||||
- ### Tries
|
||||
- Note there are different kinds of tries. Some have prefixes, some don't, and some use string instead of bits
|
||||
to track the path.
|
||||
- I read through code, but will not implement.
|
||||
- [ ] [Sedgewick - Tries (3 videos)](https://www.youtube.com/playlist?list=PLe-ggMe31CTe9IyG9MB8vt5xUJeYgOYRQ)
|
||||
- [ ] [1. R Way Tries](https://www.youtube.com/watch?v=buq2bn8x3Vo&index=3&list=PLe-ggMe31CTe9IyG9MB8vt5xUJeYgOYRQ)
|
||||
- [ ] [2. Ternary Search Tries](https://www.youtube.com/watch?v=LelV-kkYMIg&index=2&list=PLe-ggMe31CTe9IyG9MB8vt5xUJeYgOYRQ)
|
||||
- [ ] [3. Character Based Operations](https://www.youtube.com/watch?v=00YaFPcC65g&list=PLe-ggMe31CTe9IyG9MB8vt5xUJeYgOYRQ&index=1)
|
||||
- [ ] [Notes on Data Structures and Programming Techniques](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Tries)
|
||||
- [ ] Short course videos:
|
||||
- [ ] [Introduction To Tries (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/08Xyf/core-introduction-to-tries)
|
||||
- [ ] [Performance Of Tries (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/PvlZW/core-performance-of-tries)
|
||||
- [ ] [Implementing A Trie (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/DFvd3/core-implementing-a-trie)
|
||||
- [ ] [The Trie: A Neglected Data Structure](https://www.toptal.com/java/the-trie-a-neglected-data-structure)
|
||||
- [ ] [TopCoder - Using Tries](https://www.topcoder.com/community/data-science/data-science-tutorials/using-tries/)
|
||||
- [ ] [Stanford Lecture (real world use case) (video)](https://www.youtube.com/watch?v=TJ8SkcUSdbU)
|
||||
- [ ] [MIT, Advanced Data Structures, Strings (can get pretty obscure about halfway through)](https://www.youtube.com/watch?v=NinWEPPrkDQ&index=16&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
|
||||
|
||||
- ### Balanced search trees
|
||||
- Know least one type of balanced binary tree (and know how it's implemented):
|
||||
- "Among balanced search trees, AVL and 2/3 trees are now passé, and red-black trees seem to be more popular.
|
||||
@ -1884,16 +1826,6 @@ You're never really done.
|
||||
- [Machine Learning for Software Engineers](https://github.com/ZuzooVn/machine-learning-for-software-engineers)
|
||||
- Data School: http://www.dataschool.io/
|
||||
|
||||
- ### Go
|
||||
- [ ] Videos:
|
||||
- [ ] [Why Learn Go?](https://www.youtube.com/watch?v=FTl0tl9BGdc)
|
||||
- [ ] [Go Programming](https://www.youtube.com/watch?v=CF9S4QZuV30)
|
||||
- [ ] [A Tour of Go](https://www.youtube.com/watch?v=ytEkHepK08c)
|
||||
- [ ] Books:
|
||||
- [ ] [An Introduction to Programming in Go (read free online)](https://www.golang-book.com/books/intro)
|
||||
- [ ] [The Go Programming Language (Donovan & Kernighan)](https://www.amazon.com/Programming-Language-Addison-Wesley-Professional-Computing/dp/0134190440)
|
||||
- [ ] [Bootcamp](https://www.golang-book.com/guides/bootcamp)
|
||||
|
||||
--
|
||||
|
||||
## Additional Detail on Some Subjects
|
||||
@ -2034,4 +1966,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)
|
||||
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 14 KiB |
File diff suppressed because one or more lines are too long
@ -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/ar/README.md
Normal file
2033
translations/ar/README.md
Normal file
File diff suppressed because it is too large
Load Diff
@ -1174,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)
|
||||
|
||||
@ -1437,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)
|
||||
|
1950
translations/es/README.md
Normal file
1950
translations/es/README.md
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,48 +1,44 @@
|
||||
# Google Interview University
|
||||
|
||||
Original: [англійською](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)
|
||||
|
||||
## Що це?
|
||||
## C'est quoi?
|
||||
|
||||
Це мій багатомісячний навчальний план для перетворення з веб-розробника (самоучки без ступеню з CS)
|
||||
на розробника програмного забезпечення у 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.
|
||||
|
||||

|
||||

|
||||
|
||||
Цей довгий список був видобутий і розширений з **тренувальних нотаток Google**, отже це речі, які ви повинні знати.
|
||||
Тут є додаткові пункти, які я додав знизу — вони можуть зустрітися в інтерв’ю або бути корисними у вирішенні завдань.
|
||||
Багато пунктів взято з «[Get that job at Google](http://steve-yegge.blogspot.com/2008/03/get-that-job-at-google.html)» Steve Yegge,
|
||||
вони іноді дослівно відображаються в тренувальних нотатках Google.
|
||||
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.
|
||||
|
||||
Я обрав, що вам потрібно знати, базуючись на рекомендаціях Yegge. Я вніс зміни до вимог Yegge на основі інформації,
|
||||
отриманої від мого контакту у Google. Це призначено для **нових розробників програмного забезпечення** або тих,
|
||||
що переходять з веб-розробки на розробку програмного забезпечення (де потрібне знання CS). Якщо у вас багаторічний
|
||||
досвід, і ви заявляєте про багаторічний досвід розробки програмного забезпечення, очікуйте на більш жорстке інтерв’ю.
|
||||
[Прочитайте більше](https://googleyasheck.com/what-you-need-to-know-for-your-google-interview-and-what-you-dont/).
|
||||
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/).
|
||||
|
||||
Якщо у вас багато років досвіду веб-розробки, майте на увазі, що Google відрізняє розробку програмного забезпечення
|
||||
від веб-розробки, і вони потребують знання Computer Science.
|
||||
|
||||
Якщо ви хочете бути інженером з надійності або системним інженером, вчіть більше за опціональним списком (мережі,
|
||||
безпека).
|
||||
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)
|
||||
@ -54,45 +50,45 @@ Original: [англійською](README.md)
|
||||
- [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)
|
||||
@ -175,7 +171,7 @@ Everything below is an outline, and you should tackle the items in order from to
|
||||
|
||||
I'm using Github's special markdown flavor, including tasks lists to check progress.
|
||||
|
||||
**Create a new branch so you can check items like this, just put an x in the brackets: [x]**
|
||||
- [x] Create a new branch so you can check items like this, just put an x in the brackets: [x]
|
||||
|
||||
|
||||
Fork a branch and follow the commands below
|
||||
@ -473,10 +469,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 (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.
|
||||
- [My flash cards database](https://github.com/jwasham/computer-science-flash-cards/blob/master/cards-jwasham.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.
|
||||
|
||||
**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
|
||||
@ -1104,12 +1097,7 @@ You'll get more graph practice in Skiena's book (see Books section below) and th
|
||||
- replaced by Colossus in 2012
|
||||
- [ ] [2004: MapReduce: Simplified Data Processing on Large Clusters]( http://static.googleusercontent.com/media/research.google.com/en//archive/mapreduce-osdi04.pdf)
|
||||
- mostly replaced by Cloud Dataflow?
|
||||
- [ ] [2006: Bigtable: A Distributed Storage System for Structured Data](https://static.googleusercontent.com/media/research.google.com/en//archive/bigtable-osdi06.pdf)
|
||||
- [An Inside Look at Google BigQuery](https://cloud.google.com/files/BigQueryTechnicalWP.pdf)
|
||||
- [ ] [2006: The Chubby Lock Service for Loosely-Coupled Distributed Systems](https://research.google.com/archive/chubby-osdi06.pdf)
|
||||
- [ ] [2007: What Every Programmer Should Know About Memory (very long, and the author encourages skipping of some sections)](https://www.akkadia.org/drepper/cpumemory.pdf)
|
||||
- [ ] [2010: Dapper, a Large-Scale Distributed Systems Tracing Infrastructure](https://research.google.com/pubs/archive/36356.pdf)
|
||||
- [ ] [2010: Dremel: Interactive Analysis of Web-Scale Datasets](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/36632.pdf)
|
||||
- [ ] [2012: Google's Colossus](https://www.wired.com/2012/07/google-colossus/)
|
||||
- paper not available
|
||||
- [ ] 2012: AddressSanitizer: A Fast Address Sanity Checker:
|
||||
@ -1285,6 +1273,7 @@ You'll get more graph practice in Skiena's book (see Books section below) and th
|
||||
- [Design a random unique ID generation system](https://blog.twitter.com/2010/announcing-snowflake)
|
||||
- [Design an online multiplayer card game](http://www.indieflashblog.com/how-to-create-an-asynchronous-multiplayer-game.html)
|
||||
- [Design a key-value database](http://www.slideshare.net/dvirsky/introduction-to-redis)
|
||||
- [Design a function to return the top k requests during past time interval]( https://icmi.cs.ucsb.edu/research/tech_reports/reports/2005-23.pdf)
|
||||
- [Design a picture sharing system](http://highscalability.com/blog/2011/12/6/instagram-architecture-14-million-users-terabytes-of-photos.html)
|
||||
- [Design a recommendation system](http://ijcai13.org/files/tutorial_slides/td3.pdf)
|
||||
- [Design a URL-shortener system: copied from above](http://www.hiredintech.com/system-design/the-system-design-process/)
|
||||
@ -2023,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)
|
||||
|
@ -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
|
||||
|
||||
[](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)
|
||||
|
||||

|
||||
|
||||
## 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/)
|
||||
@ -247,28 +247,28 @@ Sometimes the classes are not in session so you have to wait a couple of months,
|
||||
|
||||
## 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:
|
1609
translations/hi/README.md
Normal file
1609
translations/hi/README.md
Normal file
File diff suppressed because it is too large
Load Diff
1984
translations/id/README.md
Normal file
1984
translations/id/README.md
Normal file
File diff suppressed because it is too large
Load Diff
2054
translations/ko/README.md
Normal file
2054
translations/ko/README.md
Normal file
File diff suppressed because it is too large
Load Diff
Binary file not shown.
BIN
translations/mock-up/its-dangerous-to-go-alone-pycon.pptx
Normal file
BIN
translations/mock-up/its-dangerous-to-go-alone-pycon.pptx
Normal file
Binary file not shown.
File diff suppressed because it is too large
Load Diff
1939
translations/th/README.md
Normal file
1939
translations/th/README.md
Normal file
File diff suppressed because it is too large
Load Diff
1939
translations/uk/README.md
Normal file
1939
translations/uk/README.md
Normal file
File diff suppressed because it is too large
Load Diff
1957
translations/vi/README.md
Normal file
1957
translations/vi/README.md
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user