From 2619d23408bb8de5edbc69f2aa6847e5361cded6 Mon Sep 17 00:00:00 2001 From: John Washam Date: Sun, 16 Dec 2018 13:18:40 -0800 Subject: [PATCH 01/18] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 39bdc67..247bdab 100644 --- a/README.md +++ b/README.md @@ -295,7 +295,7 @@ This is a shorter list than what I used. This is abbreviated to save you time. ### Interview Prep -- [ ] [Programming Interviews Exposed: Secrets to Landing Your Next Job, 2nd Edition](http://www.wiley.com/WileyCDA/WileyTitle/productCd-047012167X.html) +- [ ] [Programming Interviews Exposed: Coding Your Way Through the Interview, 4nd Edition](https://www.amazon.com/Programming-Interviews-Exposed-Through-Interview/dp/111941847X/) - answers in C++ and Java - 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) From 0423ffc144f32f1bfe989099b3ad25ef0780577d Mon Sep 17 00:00:00 2001 From: John Washam Date: Sun, 16 Dec 2018 13:52:46 -0800 Subject: [PATCH 02/18] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 247bdab..0836368 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ 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://d3j2pkmjtin6ou.cloudfront.net/coding-at-the-whiteboard-silicon-valley.png) 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 @@ -1454,7 +1454,7 @@ No whiteboard at home? That makes sense. I'm a weirdo and have a big whiteboard. 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. -![my sofa whiteboard](https://dng5l3qzreal6.cloudfront.net/2016/Oct/art_board_sm_2-1476233630368.jpg) +![my sofa whiteboard](https://d3j2pkmjtin6ou.cloudfront.net/art_board_sm_2.jpg) Supplemental: From cc09ce4b16fb18772d62478792a89892112fa71c Mon Sep 17 00:00:00 2001 From: John Washam Date: Thu, 27 Dec 2018 20:46:05 -0800 Subject: [PATCH 03/18] Removes broken link. --- programming-language-resources.md | 1 - 1 file changed, 1 deletion(-) diff --git a/programming-language-resources.md b/programming-language-resources.md index 5d092e5..1037a64 100644 --- a/programming-language-resources.md +++ b/programming-language-resources.md @@ -35,7 +35,6 @@ - [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=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) From e5df9b18007ec650b124464197a78058c174a5a8 Mon Sep 17 00:00:00 2001 From: amanjakhetiya7 Date: Sun, 30 Dec 2018 00:32:18 +0530 Subject: [PATCH 04/18] added a video link to ##Don'feel you aren't smart enough --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0836368..2cacaf0 100644 --- a/README.md +++ b/README.md @@ -233,6 +233,7 @@ I'm using Github's special markdown flavor, including tasks lists to check progr - [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) - [Believe you can change](http://www.aaronsw.com/weblog/dweck) +- [Think you're not smart enough to work at Google? Well, think again](https://www.youtube.com/watch?v=uPOJ1PR50ag) ## About Video Resources From e1cb1f641fb439509ae4fccea51a7e39094b6b2d Mon Sep 17 00:00:00 2001 From: Zeeshan Ahmad Date: Sat, 12 Jan 2019 22:34:47 +0400 Subject: [PATCH 05/18] Fix urls and update repo name --- programming-language-resources.md | 8 +++---- translations/README-ar.md | 38 +++++++++++++++---------------- translations/README-cn.md | 14 ++++++------ translations/README-fr.md | 18 +++++++-------- translations/README-he.md | 12 +++++----- translations/README-hi.md | 4 ++-- translations/README-id.md | 12 +++++----- translations/README-ko.md | 36 ++++++++++++++--------------- translations/README-pl.md | 36 ++++++++++++++--------------- translations/README-ptbr.md | 4 ++-- translations/README-uk.md | 4 ++-- translations/README-vi.md | 2 +- 12 files changed, 94 insertions(+), 94 deletions(-) diff --git a/programming-language-resources.md b/programming-language-resources.md index 1037a64..2ee8e58 100644 --- a/programming-language-resources.md +++ b/programming-language-resources.md @@ -1,7 +1,7 @@ ## Programming Language Resources - C - - [ANSI C Cheat Sheet](https://github.com/jwasham/google-interview-university/blob/master/extras/cheat%20sheets/C%20Reference%20Card%20(ANSI)%202.2.pdf) + - [ANSI C Cheat Sheet](https://github.com/jwasham/coding-interview-university/blob/master/extras/cheat%20sheets/C%20Reference%20Card%20(ANSI)%202.2.pdf) - K&R C book (ANSI C) - [Make, Clang (video)](https://www.youtube.com/watch?v=U3zCxnj2w8M) - GDB: @@ -11,8 +11,8 @@ - [Let us C](https://books.google.co.in/books/about/Let_Us_C.html?id=7HrjAAAACAAJ) - C++ - - [C++ Cheat Sheet](https://github.com/jwasham/google-interview-university/blob/master/extras/cheat%20sheets/Cpp_reference.pdf) - - [STL Cheat Sheet](https://github.com/jwasham/google-interview-university/blob/master/extras/cheat%20sheets/STL%20Quick%20Reference%201.29.pdf) + - [C++ Cheat Sheet](https://github.com/jwasham/coding-interview-university/blob/master/extras/cheat%20sheets/Cpp_reference.pdf) + - [STL Cheat Sheet](https://github.com/jwasham/coding-interview-university/blob/master/extras/cheat%20sheets/STL%20Quick%20Reference%201.29.pdf) - basics - pointers - functions @@ -32,7 +32,7 @@ - [Let us C++](https://books.google.co.in/books/about/Let_Us_C++.html?id=6HrjAAAACAAJ) - Python - - [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/coding-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_) - [Statistics for Hackers (video)](https://www.youtube.com/watch?v=Iq9DzN6mvYA) diff --git a/translations/README-ar.md b/translations/README-ar.md index 37dd36b..357b36e 100644 --- a/translations/README-ar.md +++ b/translations/README-ar.md @@ -3,19 +3,19 @@ الترجمه: - [中文版本](translations/README-cn.md) - الترجمات تحت الاعداد: - - [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) - - [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) + - [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) + - [Vietnamese](https://github.com/jwasham/coding-interview-university/issues/92) + - [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) + - [Polish](https://github.com/jwasham/coding-interview-university/issues/122) ## ماهذا؟ هي خطة من عدة أشهر من مطور تطبيقات ويب (قائمة على التعليم الذاتي، ومبدون درجة علمية في علوم الحاسب) لمنصب مهندس برمجيات بجوجل @@ -179,7 +179,7 @@ `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` @@ -197,9 +197,9 @@ ## الدخول في مزاج جوجلي -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. +Print out a "[future Googler](https://github.com/jwasham/coding-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) +[![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/coding-interview-university/blob/master/extras/future-googler.pdf) ## هل حصلت على الوظيفة بجوجل؟ @@ -224,7 +224,7 @@ I'm on the journey, too. Follow along: - لينكدإن: [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) +![John Washam - Coding Interview University](https://dng5l3qzreal6.cloudfront.net/2016/Aug/book_stack_photo_resized_18_1469302751157-1472661280368.png) ## هل تشعر أنك لست بالذكاء الكافي - مهندسوا جوجل أذكياء، وربما لديهم عدم الأمان لأنهم ليسوا بالذكاء الكافي، حتى وهي في جوجل @@ -717,7 +717,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: @@ -1292,7 +1292,7 @@ You'll get more graph practice in Skiena's book (see Books section below) and th - 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) + - [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 diff --git a/translations/README-cn.md b/translations/README-cn.md index 73521ab..257824c 100644 --- a/translations/README-cn.md +++ b/translations/README-cn.md @@ -1,6 +1,6 @@ -# [译] Google Interview University 一套完整的学习手册帮助自己准备 Google 的面试 +# [译] Coding Interview University 一套完整的学习手册帮助自己准备 Google 的面试 -> * 原文地址:[Google Interview University](https://github.com/jwasham/google-interview-university) +> * 原文地址:[Coding Interview University](https://github.com/jwasham/coding-interview-university) * 原文作者:[John Washam](https://github.com/jwasham) * 译文出自:[掘金翻译计划](https://github.com/xitu/gold-miner) * 译者:[aleen42](https://github.com/aleen42),[Newton](https://github.com/Newt0n),[bobmayuze](https://github.com/bobmayuze),[Jaeger](https://github.com/laobie),[sqrthree](https://github.com/sqrthree) @@ -133,9 +133,9 @@ ## 拥有一名 Googler 的心态 -把一个(或两个)印有“[future Googler](https://github.com/jwasham/google-interview-university/blob/master/extras/future-googler.pdf)”的图案打印出来,并用你誓要成功的眼神盯着它。 +把一个(或两个)印有“[future Googler](https://github.com/jwasham/coding-interview-university/blob/master/extras/future-googler.pdf)”的图案打印出来,并用你誓要成功的眼神盯着它。 -[![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) +[![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/coding-interview-university/blob/master/extras/future-googler.pdf) ## 我得到了工作吗? @@ -156,7 +156,7 @@ - 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) +![John Washam - Coding Interview University](https://dng5l3qzreal6.cloudfront.net/2016/Aug/book_stack_photo_resized_18_1469302751157-1472661280368.png) ## 不要妄自菲薄 @@ -480,7 +480,7 @@ - 迭代式二分查找 - ### 按位运算(Bitwise operations) - - [ ] [Bits 速查表](https://github.com/jwasham/google-interview-university/blob/master/extras/cheat%20sheets/bits-cheat-cheet.pdf) + - [ ] [Bits 速查表](https://github.com/jwasham/coding-interview-university/blob/master/extras/cheat%20sheets/bits-cheat-cheet.pdf) - 你需要知道大量2的幂数值(从2^1 到 2^16 及 2^32) - [ ] 好好理解位操作符的含义:&、|、^、~、>>、<< - [ ] [字码(words)](https://en.wikipedia.org/wiki/Word_(computer_architecture)) @@ -1021,7 +1021,7 @@ - 更多内容可以查看视频部分的『大规模数据挖掘』视频系列。 - [ ] 系统设计问题练习:下面有一些指导原则,每一个都有相关文档以及在现实中该如何处理。 - 复习: [HiredInTech 的系统设计](http://www.hiredintech.com/system-design/) - - [cheat sheet](https://github.com/jwasham/google-interview-university/blob/master/extras/cheat%20sheets/system-design.pdf) + - [cheat sheet](https://github.com/jwasham/coding-interview-university/blob/master/extras/cheat%20sheets/system-design.pdf) - 流程: 1. 理解问题和范围: - 在面试官的帮助下定义用例 diff --git a/translations/README-fr.md b/translations/README-fr.md index 219cefa..f21e43b 100644 --- a/translations/README-fr.md +++ b/translations/README-fr.md @@ -1,9 +1,9 @@ -# Google Interview University +# Coding Interview University 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) +- [Español (in progress)](README-es.md) [Issue #80](https://github.com/jwasham/coding-interview-university/issues/80) +- मानक हिन्दी (in progress) [Issue #81](https://github.com/jwasham/coding-interview-university/issues/81) ## C'est quoi? @@ -178,7 +178,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` @@ -196,9 +196,9 @@ I'm using Github's special markdown flavor, including tasks lists to check progr ## 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. +Print out a "[future Googler](https://github.com/jwasham/coding-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) +[![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/coding-interview-university/blob/master/extras/future-googler.pdf) ## Did I Get the Job? @@ -218,7 +218,7 @@ I'm on the journey, too. Follow along: - 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) +![John Washam - Coding Interview University](https://dng5l3qzreal6.cloudfront.net/2016/Aug/book_stack_photo_resized_18_1469302751157-1472661280368.png) ## Don't feel you aren't smart enough - Google engineers are smart, but many have an insecurity that they aren't smart enough, even though they work at Google. @@ -703,7 +703,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: @@ -1248,7 +1248,7 @@ You'll get more graph practice in Skiena's book (see Books section below) and th - 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) + - [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 diff --git a/translations/README-he.md b/translations/README-he.md index d4192f5..067b904 100644 --- a/translations/README-he.md +++ b/translations/README-he.md @@ -172,7 +172,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` @@ -190,9 +190,9 @@ I'm using Github's special markdown flavor, including tasks lists to check progr ## 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. +Print out a "[future Googler](https://github.com/jwasham/coding-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) +[![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/coding-interview-university/blob/master/extras/future-googler.pdf) ## האם קיבלתי את העבודה? @@ -212,7 +212,7 @@ Print out a "[future Googler](https://github.com/jwasham/google-interview-univer - גוגל+: [+Googleyasheck](https://plus.google.com/+Googleyasheck) - לינקדאין: [johnawasham](https://www.linkedin.com/in/johnawasham) -![John Washam - Google Interview University](https://dng5l3qzreal6.cloudfront.net/2016/Aug/book_stack_photo_resized_18_1469302751157-1472661280368.png) +![John Washam - Coding Interview University](https://dng5l3qzreal6.cloudfront.net/2016/Aug/book_stack_photo_resized_18_1469302751157-1472661280368.png) ## אל תרדגישו שאתם לא חכמים מספיק - Google engineers are smart, but many have an insecurity that they aren't smart enough, even though they work at Google. @@ -697,7 +697,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: @@ -1242,7 +1242,7 @@ You'll get more graph practice in Skiena's book (see Books section below) and th - 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) + - [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 diff --git a/translations/README-hi.md b/translations/README-hi.md index 33ae4c9..8e27ef1 100644 --- a/translations/README-hi.md +++ b/translations/README-hi.md @@ -549,7 +549,7 @@ memory" का एरर न दे, और तब मुजे कोई वै - 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: @@ -1123,7 +1123,7 @@ You'll get more graph practice in Skiena's book (see Books section below) and th - 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) + - [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 diff --git a/translations/README-id.md b/translations/README-id.md index c1e4f51..e4e2b24 100644 --- a/translations/README-id.md +++ b/translations/README-id.md @@ -1,4 +1,4 @@ -# Google Interview University +# Coding Interview University Version original: [Bahasa Inggris](README.md) @@ -165,7 +165,7 @@ Saya menggunakan markdown spesial dari Github, termasuk daftar tugas untuk menge `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` @@ -183,9 +183,9 @@ Saya menggunakan markdown spesial dari Github, termasuk daftar tugas untuk menge ## Masuk ke Mode Googley -Print satu atau beberapa foto dari "[future Googler](https://github.com/jwasham/google-interview-university/blob/master/extras/future-googler.pdf)" (untuk ditempel tentunya) sebagai reminder anda apa hasil usaha yang anda akan dapatkan. +Print satu atau beberapa foto dari "[future Googler](https://github.com/jwasham/coding-interview-university/blob/master/extras/future-googler.pdf)" (untuk ditempel tentunya) sebagai reminder anda apa hasil usaha yang anda akan dapatkan. -[![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) +[![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/coding-interview-university/blob/master/extras/future-googler.pdf) ## Jangan merasa anda kurang pintar - Para engineers/programmer di google adalah orang-orang pintar, tapi banyak dari mereka berpikir bahwa mereka tidak cukup pintar, walaupun mereka bekerja di Google. @@ -669,7 +669,7 @@ Menulis kode pada papan tulis atau kertas, bukan komputer. Uji dengan beberapa s - 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: @@ -1219,7 +1219,7 @@ You'll get more graph practice in Skiena's book (see Books section below) and th - 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) + - [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 diff --git a/translations/README-ko.md b/translations/README-ko.md index e67251d..7f15b43 100644 --- a/translations/README-ko.md +++ b/translations/README-ko.md @@ -13,18 +13,18 @@ 번역: - [중국어](translations/README-cn.md) - 진행 중인 번역: - - [스페인어](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) - - [바하사 인도네시아어](https://github.com/jwasham/google-interview-university/issues/101) - - [아랍어](https://github.com/jwasham/google-interview-university/issues/98) - - [베트남어](https://github.com/jwasham/google-interview-university/issues/92) - - [터키어](https://github.com/jwasham/google-interview-university/issues/90) - - [프랑스어](https://github.com/jwasham/google-interview-university/issues/89) - - [러시아어](https://github.com/jwasham/google-interview-university/issues/87) - - [우크라이나어](https://github.com/jwasham/google-interview-university/issues/106) - - [브라질 포르투갈어](https://github.com/jwasham/google-interview-university/issues/113) - - [한국어](https://github.com/jwasham/google-interview-university/issues/118) + - [스페인어](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) + - [바하사 인도네시아어](https://github.com/jwasham/coding-interview-university/issues/101) + - [아랍어](https://github.com/jwasham/coding-interview-university/issues/98) + - [베트남어](https://github.com/jwasham/coding-interview-university/issues/92) + - [터키어](https://github.com/jwasham/coding-interview-university/issues/90) + - [프랑스어](https://github.com/jwasham/coding-interview-university/issues/89) + - [러시아어](https://github.com/jwasham/coding-interview-university/issues/87) + - [우크라이나어](https://github.com/jwasham/coding-interview-university/issues/106) + - [브라질 포르투갈어](https://github.com/jwasham/coding-interview-university/issues/113) + - [한국어](https://github.com/jwasham/coding-interview-university/issues/118) ## 코딩 인터뷰 대학이란? @@ -194,7 +194,7 @@ `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` @@ -212,10 +212,10 @@ ## 구글 분위기 내기 -"[미래의 구글러](https://github.com/jwasham/google-interview-university/blob/master/extras/future-googler.pdf)"를 인쇄하고 +"[미래의 구글러](https://github.com/jwasham/coding-interview-university/blob/master/extras/future-googler.pdf)"를 인쇄하고 자주 바라보자. -[![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) +[![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/coding-interview-university/blob/master/extras/future-googler.pdf) ## Did I Get the Job? @@ -235,7 +235,7 @@ I'm in the queue right now. Hope to interview soon. - 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) +![John Washam - Coding Interview University](https://dng5l3qzreal6.cloudfront.net/2016/Aug/book_stack_photo_resized_18_1469302751157-1472661280368.png) ## 당신은 충분히 똑똑합니다 @@ -747,7 +747,7 @@ Anki format의 내 flashcard 데이터베이스: https://ankiweb.net/shared/info - 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: @@ -1323,7 +1323,7 @@ Skiena의 책(아래의 책 섹션 참조)과 인터뷰 책에서 더 많은 그 - 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) + - [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 diff --git a/translations/README-pl.md b/translations/README-pl.md index d65d90c..604b620 100644 --- a/translations/README-pl.md +++ b/translations/README-pl.md @@ -1,6 +1,6 @@ -# Google Interview University - Uniwersytet przygotowujący do rozmowy kwalifikacyjnej w Google +# Coding Interview University - Uniwersytet przygotowujący do rozmowy kwalifikacyjnej w Google -Oryginał (angielski): https://github.com/jwasham/google-interview-university +Oryginał (angielski): https://github.com/jwasham/coding-interview-university >**Pierwotnie, to była mała lista rzeczy do nauki, ale urosła ona do dużych rozmiarów, jak to można dzisiaj zobaczyć. Praca w Google była główną motywacją, stąd nazwa. [Nie dostałem się do Google'a](https://googleyasheck.com/i-didnt-get-hired-heres-why/), @@ -12,19 +12,19 @@ wliczając w to gigantów: Amazon, Microsoft, Google i Facebook.** Tłumaczenia: - [中文版本](translations/README-cn.md) - Niekompletne tłumaczenia: - - [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) - - [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) + - [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) + - [Vietnamese](https://github.com/jwasham/coding-interview-university/issues/92) + - [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) + - [Polish](https://github.com/jwasham/coding-interview-university/issues/122) ## Co to jest? Jest to mój wielomiesięczny program nauczania mający na celu awans z poziomu web developera (samouka, bez studiów informatycznych) @@ -192,7 +192,7 @@ Używam specjalniej, GitHubowej odmiany markdowna. `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` @@ -655,7 +655,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: @@ -1233,7 +1233,7 @@ You'll get more graph practice in Skiena's book (see Books section below) and th - 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) + - [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 diff --git a/translations/README-ptbr.md b/translations/README-ptbr.md index c69a7b5..03c11d3 100644 --- a/translations/README-ptbr.md +++ b/translations/README-ptbr.md @@ -14,7 +14,7 @@ - [Acompanhe o progresso da tradução aqui!](https://github.com/jwasham/coding-interview-university/pull/115) -**Tradutores**: [Marlon Aviz](https://github.com/avizmarlon) ([Contribuições](https://github.com/avizmarlon/google-interview-university/commits/ptbr-translation/translations/README-ptbr.md?author=avizmarlon)), [marceloogeda](https://github.com/marceloogeda) ([Contribuições](https://github.com/avizmarlon/google-interview-university/commits/ptbr-translation/translations/README-ptbr.md?author=marceloogeda)), [laris151](https://github.com/laris151) ([Contribuições](https://github.com/avizmarlon/google-interview-university/commits/ptbr-translation/translations/README-ptbr.md?author=laris151)) +**Tradutores**: [Marlon Aviz](https://github.com/avizmarlon) ([Contribuições](https://github.com/avizmarlon/coding-interview-university/commits/ptbr-translation/translations/README-ptbr.md?author=avizmarlon)), [marceloogeda](https://github.com/marceloogeda) ([Contribuições](https://github.com/avizmarlon/coding-interview-university/commits/ptbr-translation/translations/README-ptbr.md?author=marceloogeda)), [laris151](https://github.com/laris151) ([Contribuições](https://github.com/avizmarlon/coding-interview-university/commits/ptbr-translation/translations/README-ptbr.md?author=laris151)) Traduções: - [中文版本](translations/README-cn.md) @@ -650,7 +650,7 @@ Escreva código em um quadro branco ou papel, não em um computador. Teste com u - busca binária usando recursividade - ### Lógica binária - - [ ] [Bits cheat sheet](https://github.com/jwasham/google-interview-university/blob/master/extras/cheat%20sheets/bits-cheat-cheet.pdf) (Folha de consultas sobre Bits) - você deve conhecer várias das potências de 2 de (2^1 até 2^16 e 2^32) + - [ ] [Bits cheat sheet](https://github.com/jwasham/coding-interview-university/blob/master/extras/cheat%20sheets/bits-cheat-cheet.pdf) (Folha de consultas sobre Bits) - você deve conhecer várias das potências de 2 de (2^1 até 2^16 e 2^32) - [ ] Consiga um bom entendimento sobre manipulação de bits com: &, |, ^, ~, >>, << - [ ] [words](https://en.wikipedia.org/wiki/Word_(computer_architecture)) (palavras) - [ ] Boa introdução: diff --git a/translations/README-uk.md b/translations/README-uk.md index 9f65299..97e58a9 100644 --- a/translations/README-uk.md +++ b/translations/README-uk.md @@ -1,4 +1,4 @@ -# Google Interview University +# Coding Interview University Original: [англійською](README.md) @@ -171,7 +171,7 @@ Original: [англійською](README.md) `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` diff --git a/translations/README-vi.md b/translations/README-vi.md index cc4ed15..9cc1d04 100644 --- a/translations/README-vi.md +++ b/translations/README-vi.md @@ -197,7 +197,7 @@ Ok, bây giờ bạn có thể bắt đầu: - Fork repo này. - Clone bản fork của bạn về máy tính cá nhân. ``` - git clone https://github.com//google-interview-university + git clone https://github.com//coding-interview-university ``` - Chạy các dòng lệnh sau - Tạo một branch mới để đánh dấu tiến độ của bạn: From 240a2863d12972722031d6cd5958cf6aa4fe92bd Mon Sep 17 00:00:00 2001 From: Kerollos Magdy Date: Wed, 16 Jan 2019 22:18:59 +0200 Subject: [PATCH 06/18] fix redundant parentheses removed redundant parentheses in graphs MIT DFS video --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2cacaf0..af81ff1 100644 --- a/README.md +++ b/README.md @@ -937,7 +937,7 @@ Graphs can be used to represent many problems in computer science, so this secti - [ ] MIT(videos): - [ ] [Breadth-First Search](https://www.youtube.com/watch?v=s-CYnVz-uh4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=13) - - [ ] [Depth-First Search]((https://www.youtube.com/watch?v=AfSk24UTFS8&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=14) + - [ ] [Depth-First Search](https://www.youtube.com/watch?v=AfSk24UTFS8&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=14) - [ ] Skiena Lectures - great intro: - [ ] [CSE373 2012 - Lecture 11 - Graph Data Structures (video)](https://www.youtube.com/watch?v=OiXxhDrFruw&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=11) From 8b86340901c1aee517a98eaae15164dc7a29d90a Mon Sep 17 00:00:00 2001 From: akashgiricse Date: Wed, 16 Jan 2019 09:53:20 +0530 Subject: [PATCH 07/18] Fix coursera link --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 2cacaf0..6d765d9 100644 --- a/README.md +++ b/README.md @@ -561,12 +561,12 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input - [video](https://www.youtube.com/watch?v=gSyDMtdPNpU&index=2&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b) - [slides](http://www3.cs.stonybrook.edu/~algorith/video-lectures/2007/lecture2.pdf) - [ ] [A Gentle Introduction to Algorithm Complexity Analysis](http://discrete.gr/complexity/) -- [ ] [Orders of Growth (video)](https://class.coursera.org/algorithmicthink1-004/lecture/59) -- [ ] [Asymptotics (video)](https://class.coursera.org/algorithmicthink1-004/lecture/61) +- [ ] [Orders of Growth (video)](https://www.coursera.org/lecture/algorithmic-thinking-1/orders-of-growth-6PKkX) +- [ ] [Asymptotics (video)](https://www.coursera.org/lecture/algorithmic-thinking-1/asymptotics-bXAtM) - [ ] [UC Berkeley Big O (video)](https://archive.org/details/ucberkeley_webcast_VIS4YDpuP98) - [ ] [UC Berkeley Big Omega (video)](https://archive.org/details/ucberkeley_webcast_ca3e7UVmeUc) - [ ] [Amortized Analysis (video)](https://www.youtube.com/watch?v=B3SpQZaAZP4&index=10&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN) -- [ ] [Illustrating "Big O" (video)](https://class.coursera.org/algorithmicthink1-004/lecture/63) +- [ ] [Illustrating "Big O" (video)](https://www.coursera.org/lecture/algorithmic-thinking-1/illustrating-big-o-YVqzv) - [ ] TopCoder (includes recurrence relations and master theorem): - [Computational Complexity: Section 1](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-1/) - [Computational Complexity: Section 2](https://www.topcoder.com/community/competitive-programming/tutorials/computational-complexity-section-2/) From 1ea8ec8620fe54459c899e602740490855756be1 Mon Sep 17 00:00:00 2001 From: John Washam Date: Sat, 26 Jan 2019 15:55:32 -0800 Subject: [PATCH 08/18] Added link to old article about why I studied. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e03fba5..09cfff9 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ > 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. +> You probably won't have to study as much as I did. Anyway, everything you need is here. This was my story: [Why I studied full-time for 8 months for a Google interview](https://medium.freecodecamp.org/why-i-studied-full-time-for-8-months-for-a-google-interview-cc662ce9bb13) > > The items listed here will prepare you well for an interview at just about any software company, > including the giants: Amazon, Facebook, Google or Microsoft. From 74f55943b11bfb48936c2a0cbc958fd01f55f1de Mon Sep 17 00:00:00 2001 From: John Washam Date: Sat, 26 Jan 2019 16:24:36 -0800 Subject: [PATCH 09/18] Cleaning up the project. --- README.md | 106 ++++++++++++++++++++++++------------------------------ 1 file changed, 46 insertions(+), 60 deletions(-) diff --git a/README.md b/README.md index 09cfff9..319d0b6 100644 --- a/README.md +++ b/README.md @@ -111,10 +111,8 @@ If you want to be a reliability engineer or operations engineer, study more from - [NP, NP-Complete and Approximation Algorithms](#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) - [String searching & manipulations](#string-searching--manipulations) - [Tries](#tries) - [Floating Point Numbers](#floating-point-numbers) @@ -175,6 +173,7 @@ If you want to be a reliability engineer or operations engineer, study more from - [Geometry, Convex hull](#geometry-convex-hull-videos) - [Discrete math](#discrete-math) - [Machine Learning](#machine-learning) +- [Papers](#papers) - [Additional Detail on Some Subjects](#additional-detail-on-some-subjects) - [Video Series](#video-series) - [Computer Science Courses](#computer-science-courses) @@ -306,6 +305,8 @@ This is a shorter list than what I used. This is abbreviated to save you time.
If you have tons of extra time: +Choose one: + - [ ] [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/) @@ -334,17 +335,12 @@ This is a shorter list than what I used. This is abbreviated to save you time.
-
-If you have more time (I want this book): - -- [ ] [Computer Architecture, Sixth Edition: A Quantitative Approach](https://www.amazon.com/dp/0128119055) - - For a richer, more up-to-date (2017), but longer treatment - -
### Language Specific -**You need to choose a language for the interview (see above).** Here are my recommendations by language. I don't have resources for all languages. I welcome additions. +**You need to choose a language for the interview (see above).** + +Here are my recommendations by language. I don't have resources for all languages. I welcome additions. If you read though one of these, you should have all the data structures and algorithms knowledge you'll need to start doing coding problems. **You can skip all the video lectures in this project**, unless you'd like a review. @@ -430,14 +426,13 @@ OR: - **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. - aka CLR, sometimes CLRS, because Stein was late to the game +- [ ] [Computer Architecture, Sixth Edition: A Quantitative Approach](https://www.amazon.com/dp/0128119055) + - For a richer, more up-to-date (2017), but longer treatment + - [ ] [Programming Pearls](http://www.amazon.com/Programming-Pearls-2nd-Jon-Bentley/dp/0201657880) - The first couple of chapters present clever solutions to programming problems (some very old using data tape) but that is just an intro. This a guidebook on program design and architecture, much like Code Complete, but much shorter. -- ~~"Algorithms and Programming: Problems and Solutions" by Shen~~ - - A fine book, but after working through problems on several pages I got frustrated with the Pascal, do while loops, 1-indexed arrays, and unclear post-condition satisfaction results. - - Would rather spend time on coding problems from another book or online coding problems. - ## Before you Get Started @@ -981,8 +976,6 @@ Graphs can be used to represent many problems in computer science, so this secti - [ ] list strongly connected components - [ ] check for bipartite graph -You'll get more graph practice in Skiena's book (see Books section below) and the interview books - ## Even More Knowledge @@ -1002,6 +995,7 @@ 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 + - You probably won't see any dynamic programming problems in your interview, but it's worth being able to recognize a problem as being a candidate for dynamic programming. - This subject can be pretty difficult, as each DP soluble problem must be defined as a recursion relation, and coming up with it can be tricky. - I suggest looking at many examples of DP problems until you have a solid understanding of the pattern involved. - [ ] Videos: @@ -1154,38 +1148,6 @@ You'll get more graph practice in Skiena's book (see Books section below) and th - [ ] [Keynote David Beazley - Topics of Interest (Python Asyncio)](https://www.youtube.com/watch?v=ZzfHjytDceU) - [ ] [Mutex in Python](https://www.youtube.com/watch?v=0zaPs8OtyKY) -- ### 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) - - [ ] [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) - - 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: Dynamo: Amazon’s Highly Available Key-value Store](http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.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) - - [ ] [2012: Google's Colossus](https://www.wired.com/2012/07/google-colossus/) - - paper not available - - [ ] 2012: AddressSanitizer: A Fast Address Sanity Checker: - - [paper](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/37752.pdf) - - [video](https://www.usenix.org/conference/atc12/technical-sessions/presentation/serebryany) - - [ ] 2013: Spanner: Google’s Globally-Distributed Database: - - [paper](http://static.googleusercontent.com/media/research.google.com/en//archive/spanner-osdi2012.pdf) - - [video](https://www.usenix.org/node/170855) - - [ ] [2014: Machine Learning: The High-Interest Credit Card of Technical Debt](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43146.pdf) - - [ ] [2015: Continuous Pipelines at Google](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43790.pdf) - - [ ] [2015: High-Availability at Massive Scale: Building Google’s Data Infrastructure for Ads](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44686.pdf) - - [ ] [2015: TensorFlow: Large-Scale Machine Learning on Heterogeneous Distributed Systems](http://download.tensorflow.org/paper/whitepaper2015.pdf ) - - [ ] [2015: How Developers Search for Code: A Case Study](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43835.pdf) - - [ ] [2016: Borg, Omega, and Kubernetes](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44843.pdf) - - ### Testing - To cover: - how unit testing works @@ -1209,10 +1171,6 @@ You'll get more graph practice in Skiena's book (see Books section below) and th - in an OS, how it works - can be gleaned from Operating System videos -- ### Implement system routines - - understand what lies beneath the programming APIs you use - - can you implement them? - - ### String searching & manipulations - [ ] [Sedgewick - Suffix Arrays (video)](https://www.coursera.org/learn/algorithms-part2/lecture/TH18W/suffix-arrays) - [ ] [Sedgewick - Substring Search (videos)](https://www.coursera.org/learn/algorithms-part2/home/week/4) @@ -1282,7 +1240,8 @@ You'll get more graph practice in Skiena's book (see Books section below) and th
System Design, Scalability, Data Handling -- **You can expect system design questions if you have 4+ years of experience.** +**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. @@ -1311,10 +1270,9 @@ You'll get more graph practice in Skiena's book (see Books section below) and th - [ ] [How long does it take to make a context switch?](http://blog.tsunanet.net/2010/11/how-long-does-it-take-to-make-context.html) - [ ] [Transactions Across Datacenters (video)](https://www.youtube.com/watch?v=srOgpXECblk) - [ ] [A plain English introduction to CAP Theorem](http://ksat.me/a-plain-english-introduction-to-cap-theorem/) -- [ ] Paxos Consensus algorithm: - - [short video](https://www.youtube.com/watch?v=s8JqcZtvnsM) - - [extended video with use case and multi-paxos](https://www.youtube.com/watch?v=JEpsBg0AO6o) - - [paper](http://research.microsoft.com/en-us/um/people/lamport/pubs/paxos-simple.pdf) +- [ ] Consensus Algorithms: + - [ ] Paxos - [Paxos Agreement - Computerphile (video)](https://www.youtube.com/watch?v=s8JqcZtvnsM) + - [ ] Raft - [An Introduction to the Raft Distributed Consensus Algorithm (video)](https://www.youtube.com/watch?v=P9Ydif5_qvE) - [ ] [Consistent Hashing](http://www.tom-e-white.com/2007/11/consistent-hashing.html) - [ ] [NoSQL Patterns](http://horicky.blogspot.com/2009/11/nosql-patterns.html) - [ ] Scalability: @@ -1334,7 +1292,6 @@ You'll get more graph practice in Skiena's book (see Books section below) and th - [ ] [How Google Does Planet-Scale Engineering for Planet-Scale Infra (video)](https://www.youtube.com/watch?v=H4vMcD7zKM0) - [ ] [The Importance of Algorithms](https://www.topcoder.com/community/competitive-programming/tutorials/the-importance-of-algorithms/) - [ ] [Sharding](http://highscalability.com/blog/2009/8/6/an-unorthodox-approach-to-database-design-the-coming-of-the.html) - - [ ] [Scale at Facebook (2009)](https://www.infoq.com/presentations/Scale-at-Facebook) - [ ] [Scale at Facebook (2012), "Building for a Billion Users" (video)](https://www.youtube.com/watch?v=oodS71YtkGU) - [ ] [Engineering for the Long Game - Astrid Atkinson Keynote(video)](https://www.youtube.com/watch?v=p0jGmgIrf_M&list=PLRXxvay_m8gqVlExPC5DG3TGWJTaBgqSA&index=4) - [ ] [7 Years Of YouTube Scalability Lessons In 30 Minutes](http://highscalability.com/blog/2012/3/26/7-years-of-youtube-scalability-lessons-in-30-minutes.html) @@ -1348,7 +1305,6 @@ You'll get more graph practice in Skiena's book (see Books section below) and th - [ ] [When Should Approximate Query Processing Be Used?](http://highscalability.com/blog/2016/2/25/when-should-approximate-query-processing-be-used.html) - [ ] [Google's Transition From Single Datacenter, To Failover, To A Native Multihomed Architecture]( http://highscalability.com/blog/2016/2/23/googles-transition-from-single-datacenter-to-failover-to-a-n.html) - [ ] [Spanner](http://highscalability.com/blog/2012/9/24/google-spanners-most-surprising-revelation-nosql-is-out-and.html) - - [ ] [Egnyte Architecture: Lessons Learned In Building And Scaling A Multi Petabyte Distributed System](http://highscalability.com/blog/2016/2/15/egnyte-architecture-lessons-learned-in-building-and-scaling.html) - [ ] [Machine Learning Driven Programming: A New Programming For A New World](http://highscalability.com/blog/2016/7/6/machine-learning-driven-programming-a-new-programming-for-a.html) - [ ] [The Image Optimization Technology That Serves Millions Of Requests Per Day](http://highscalability.com/blog/2016/6/15/the-image-optimization-technology-that-serves-millions-of-re.html) - [ ] [A Patreon Architecture Short](http://highscalability.com/blog/2016/2/1/a-patreon-architecture-short.html) @@ -1357,7 +1313,6 @@ You'll get more graph practice in Skiena's book (see Books section below) and th - [ ] [Live Video Streaming At Facebook Scale](http://highscalability.com/blog/2016/1/13/live-video-streaming-at-facebook-scale.html) - [ ] [A Beginner's Guide To Scaling To 11 Million+ Users On Amazon's AWS](http://highscalability.com/blog/2016/1/11/a-beginners-guide-to-scaling-to-11-million-users-on-amazons.html) - [ ] [How Does The Use Of Docker Effect Latency?](http://highscalability.com/blog/2015/12/16/how-does-the-use-of-docker-effect-latency.html) - - [ ] [Does AMP Counter An Existential Threat To Google?](http://highscalability.com/blog/2015/12/14/does-amp-counter-an-existential-threat-to-google.html) - [ ] [A 360 Degree View Of The Entire Netflix Stack](http://highscalability.com/blog/2015/11/9/a-360-degree-view-of-the-entire-netflix-stack.html) - [ ] [Latency Is Everywhere And It Costs You Sales - How To Crush It](http://highscalability.com/latency-everywhere-and-it-costs-you-sales-how-crush-it) - [ ] [Serverless (very long, just need the gist)](http://martinfowler.com/articles/serverless.html) @@ -1943,6 +1898,37 @@ software engineer, and to be aware of certain technologies and algorithms, so yo above because it's just too much. It's easy to overdo it on a subject. You want to get hired in this century, right? +- Papers + - Be selective on which papers you read and how much you read. + - [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) + - [ ] [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) + - 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: Dynamo: Amazon’s Highly Available Key-value Store](http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.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) + - [ ] [2012: Google's Colossus](https://www.wired.com/2012/07/google-colossus/) + - paper not available + - [ ] 2012: AddressSanitizer: A Fast Address Sanity Checker: + - [paper](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/37752.pdf) + - [video](https://www.usenix.org/conference/atc12/technical-sessions/presentation/serebryany) + - [ ] 2013: Spanner: Google’s Globally-Distributed Database: + - [paper](http://static.googleusercontent.com/media/research.google.com/en//archive/spanner-osdi2012.pdf) + - [video](https://www.usenix.org/node/170855) + - [ ] [2014: Machine Learning: The High-Interest Credit Card of Technical Debt](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43146.pdf) + - [ ] [2015: Continuous Pipelines at Google](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43790.pdf) + - [ ] [2015: High-Availability at Massive Scale: Building Google’s Data Infrastructure for Ads](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44686.pdf) + - [ ] [2015: TensorFlow: Large-Scale Machine Learning on Heterogeneous Distributed Systems](http://download.tensorflow.org/paper/whitepaper2015.pdf ) + - [ ] [2015: How Developers Search for Code: A Case Study](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43835.pdf) + - [ ] [2016: Borg, Omega, and Kubernetes](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44843.pdf) - [ ] **Union-Find** - [ ] [Overview](https://www.coursera.org/learn/data-structures/lecture/JssSY/overview) - [ ] [Naive Implementation](https://www.coursera.org/learn/data-structures/lecture/EM5D0/naive-implementations) From aff0dc4d10931533912b022a3907ecac58e2a5da Mon Sep 17 00:00:00 2001 From: John Washam Date: Sat, 26 Jan 2019 16:32:06 -0800 Subject: [PATCH 10/18] Cleaning up the project. --- README.md | 84 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 43 insertions(+), 41 deletions(-) diff --git a/README.md b/README.md index 319d0b6..cde931d 100644 --- a/README.md +++ b/README.md @@ -175,6 +175,7 @@ If you want to be a reliability engineer or operations engineer, study more from - [Machine Learning](#machine-learning) - [Papers](#papers) - [Additional Detail on Some Subjects](#additional-detail-on-some-subjects) +- [More Books](#more-books) - [Video Series](#video-series) - [Computer Science Courses](#computer-science-courses) @@ -393,47 +394,6 @@ OR:
-### Optional Books - -**Some people recommend these, but I think it's going overboard, unless you have many years of software engineering experience and expect a much harder interview:** - -
-Optional Books - -- [ ] [Algorithm Design Manual](http://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena/dp/1849967202) (Skiena) - - As a review and problem recognition - - The algorithm catalog portion is well beyond the scope of difficulty you'll get in an interview. - - This book has 2 parts: - - class textbook on data structures and algorithms - - pros: - - is a good review as any algorithms textbook would be - - nice stories from his experiences solving problems in industry and academia - - code examples in C - - cons: - - can be as dense or impenetrable as CLRS, and in some cases, CLRS may be a better alternative for some subjects - - chapters 7, 8, 9 can be painful to try to follow, as some items are not explained well or require more brain than I have - - don't get me wrong: I like Skiena, his teaching style, and mannerisms, but I may not be Stony Brook material. - - 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. - - Can rent it on kindle - - Answers: - - [Solutions](http://www.algorithm.cs.sunysb.edu/algowiki/index.php/The_Algorithms_Design_Manual_(Second_Edition)) - - [Solutions](http://blog.panictank.net/category/algorithmndesignmanualsolutions/page/2/) - - [Errata](http://www3.cs.stonybrook.edu/~skiena/algorist/book/errata) - -- [ ] [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. - - aka CLR, sometimes CLRS, because Stein was late to the game - -- [ ] [Computer Architecture, Sixth Edition: A Quantitative Approach](https://www.amazon.com/dp/0128119055) - - For a richer, more up-to-date (2017), but longer treatment - -- [ ] [Programming Pearls](http://www.amazon.com/Programming-Pearls-2nd-Jon-Bentley/dp/0201657880) - - The first couple of chapters present clever solutions to programming problems (some very old using data tape) but - that is just an intro. This a guidebook on program design and architecture, much like Code Complete, but much shorter. - -
## Before you Get Started @@ -1995,6 +1955,48 @@ software engineer, and to be aware of certain technologies and algorithms, so yo +### More Books + +**Some people recommend these for interview prep, but I think it's going overboard, unless you have many years of software engineering experience and expect a much harder interview:** + +
+More Books + +- [ ] [Algorithm Design Manual](http://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena/dp/1849967202) (Skiena) + - As a review and problem recognition + - The algorithm catalog portion is well beyond the scope of difficulty you'll get in an interview. + - This book has 2 parts: + - class textbook on data structures and algorithms + - pros: + - is a good review as any algorithms textbook would be + - nice stories from his experiences solving problems in industry and academia + - code examples in C + - cons: + - can be as dense or impenetrable as CLRS, and in some cases, CLRS may be a better alternative for some subjects + - chapters 7, 8, 9 can be painful to try to follow, as some items are not explained well or require more brain than I have + - don't get me wrong: I like Skiena, his teaching style, and mannerisms, but I may not be Stony Brook material. + - 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. + - Can rent it on kindle + - Answers: + - [Solutions](http://www.algorithm.cs.sunysb.edu/algowiki/index.php/The_Algorithms_Design_Manual_(Second_Edition)) + - [Solutions](http://blog.panictank.net/category/algorithmndesignmanualsolutions/page/2/) + - [Errata](http://www3.cs.stonybrook.edu/~skiena/algorist/book/errata) + +- [ ] [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. + - aka CLR, sometimes CLRS, because Stein was late to the game + +- [ ] [Computer Architecture, Sixth Edition: A Quantitative Approach](https://www.amazon.com/dp/0128119055) + - For a richer, more up-to-date (2017), but longer treatment + +- [ ] [Programming Pearls](http://www.amazon.com/Programming-Pearls-2nd-Jon-Bentley/dp/0201657880) + - The first couple of chapters present clever solutions to programming problems (some very old using data tape) but + that is just an intro. This a guidebook on program design and architecture, much like Code Complete, but much shorter. + +
+ ## Video Series Sit back and enjoy. "Netflix and skill" :P From f5c10988d26229ac55866cbac8df3bfc99cbdbcb Mon Sep 17 00:00:00 2001 From: John Washam Date: Sat, 26 Jan 2019 16:41:16 -0800 Subject: [PATCH 11/18] Cleaning up the project. --- README.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index cde931d..56834f1 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,9 @@ > 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. This was my story: [Why I studied full-time for 8 months for a Google interview](https://medium.freecodecamp.org/why-i-studied-full-time-for-8-months-for-a-google-interview-cc662ce9bb13) +> You probably won't have to study as much as I did. Anyway, everything you need is here. +> +> I studied about 8-12 hours a day, for several months. This is my story: [Why I studied full-time for 8 months for a Google interview](https://medium.freecodecamp.org/why-i-studied-full-time-for-8-months-for-a-google-interview-cc662ce9bb13) > > The items listed here will prepare you well for an interview at just about any software company, > including the giants: Amazon, Facebook, Google or Microsoft. @@ -468,7 +470,7 @@ You don't need all these. You need only [one language for the interview](#pick-o Why code in all of these? - Practice, practice, practice, until I'm sick of it, and can do it with no problem (some have many edge cases and bookkeeping details to remember) -- Work within the raw constraints (allocating/freeing memory without help of garbage collection (except Python)) +- Work within the raw constraints (allocating/freeing memory without help of garbage collection (except Python or Java)) - Make use of built-in types so I have experience using the built-in tools for real-world use (not going to write my own linked list implementation in production) I may not have time to do all of these for every subject, but I'll try. @@ -508,7 +510,9 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input
Algorithmic complexity / Big-O / Asymptotic analysis -- nothing to implement +- Nothing to implement +- There are a lot of videos here. Just watch enough until you understand it. You can always come back and review. +- If some of the lectures are too mathy, you can jump down to the bottom and watch the discrete mathematics videos to get the background knowledge. - [ ] [Harvard CS50 - Asymptotic Notation (video)](https://www.youtube.com/watch?v=iOq5kSKqeR4) - [ ] [Big O Notations (general quick tutorial) (video)](https://www.youtube.com/watch?v=V6mKVRU1evU) - [ ] [Big O Notation (and Omega and Theta) - best mathematical explanation (video)](https://www.youtube.com/watch?v=ei-A_wy5Yxw&index=2&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN) @@ -528,9 +532,6 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input - [ ] [Cheat sheet](http://bigocheatsheet.com/) - If some of the lectures are too mathy, you can jump down to the bottom and - watch the discrete mathematics videos to get the background knowledge. -
## Data Structures @@ -1236,6 +1237,7 @@ Graphs can be used to represent many problems in computer science, so this secti - [ ] [Consistent Hashing](http://www.tom-e-white.com/2007/11/consistent-hashing.html) - [ ] [NoSQL Patterns](http://horicky.blogspot.com/2009/11/nosql-patterns.html) - [ ] Scalability: + - You don't need all of these. Just pick a few that interest you. - [ ] [Great overview (video)](https://www.youtube.com/watch?v=-W9F__D3oY4) - [ ] Short series: - [Clones](http://www.lecloud.net/post/7295452622/scalability-for-dummies-part-1-clones) From ae2f61f66757c2c36738a9c6db6f3bcc09a39721 Mon Sep 17 00:00:00 2001 From: John Washam Date: Sat, 26 Jan 2019 16:43:39 -0800 Subject: [PATCH 12/18] Cleaning up the project. --- README.md | 89 +++++++++++++++++++++++++------------------------------ 1 file changed, 40 insertions(+), 49 deletions(-) diff --git a/README.md b/README.md index 56834f1..55e7528 100644 --- a/README.md +++ b/README.md @@ -177,7 +177,6 @@ If you want to be a reliability engineer or operations engineer, study more from - [Machine Learning](#machine-learning) - [Papers](#papers) - [Additional Detail on Some Subjects](#additional-detail-on-some-subjects) -- [More Books](#more-books) - [Video Series](#video-series) - [Computer Science Courses](#computer-science-courses) @@ -1501,17 +1500,51 @@ You're never really done.
Additional Books -- [ ] [The Unix Programming Environment](https://www.amazon.com/dp/013937681X) +- [The Unix Programming Environment](https://www.amazon.com/dp/013937681X) - an oldie but a goodie -- [ ] [The Linux Command Line: A Complete Introduction](https://www.amazon.com/dp/1593273894/) +- [The Linux Command Line: A Complete Introduction](https://www.amazon.com/dp/1593273894/) - a modern option -- [ ] [TCP/IP Illustrated Series](https://en.wikipedia.org/wiki/TCP/IP_Illustrated) -- [ ] [Head First Design Patterns](https://www.amazon.com/gp/product/0596007124/) +- [TCP/IP Illustrated Series](https://en.wikipedia.org/wiki/TCP/IP_Illustrated) +- [Head First Design Patterns](https://www.amazon.com/gp/product/0596007124/) - a gentle introduction to design patterns -- [ ] [Design Patterns: Elements of Reusable Object-Oriente​d Software](https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612) +- [Design Patterns: Elements of Reusable Object-Oriente​d 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 -- [ ] [UNIX and Linux System Administration Handbook, 5th Edition](https://www.amazon.com/UNIX-Linux-System-Administration-Handbook/dp/0134277554/) +- [UNIX and Linux System Administration Handbook, 5th Edition](https://www.amazon.com/UNIX-Linux-System-Administration-Handbook/dp/0134277554/) +- [Algorithm Design Manual](http://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena/dp/1849967202) (Skiena) + - As a review and problem recognition + - The algorithm catalog portion is well beyond the scope of difficulty you'll get in an interview. + - This book has 2 parts: + - class textbook on data structures and algorithms + - pros: + - is a good review as any algorithms textbook would be + - nice stories from his experiences solving problems in industry and academia + - code examples in C + - cons: + - can be as dense or impenetrable as CLRS, and in some cases, CLRS may be a better alternative for some subjects + - chapters 7, 8, 9 can be painful to try to follow, as some items are not explained well or require more brain than I have + - don't get me wrong: I like Skiena, his teaching style, and mannerisms, but I may not be Stony Brook material. + - 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. + - Can rent it on kindle + - Answers: + - [Solutions](http://www.algorithm.cs.sunysb.edu/algowiki/index.php/The_Algorithms_Design_Manual_(Second_Edition)) + - [Solutions](http://blog.panictank.net/category/algorithmndesignmanualsolutions/page/2/) + - [Errata](http://www3.cs.stonybrook.edu/~skiena/algorist/book/errata) + +- [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. + - aka CLR, sometimes CLRS, because Stein was late to the game + +- [Computer Architecture, Sixth Edition: A Quantitative Approach](https://www.amazon.com/dp/0128119055) + - For a richer, more up-to-date (2017), but longer treatment + +- [Programming Pearls](http://www.amazon.com/Programming-Pearls-2nd-Jon-Bentley/dp/0201657880) + - The first couple of chapters present clever solutions to programming problems (some very old using data tape) but + that is just an intro. This a guidebook on program design and architecture, much like Code Complete, but much shorter. + +
@@ -1957,48 +1990,6 @@ software engineer, and to be aware of certain technologies and algorithms, so yo -### More Books - -**Some people recommend these for interview prep, but I think it's going overboard, unless you have many years of software engineering experience and expect a much harder interview:** - -
-More Books - -- [ ] [Algorithm Design Manual](http://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena/dp/1849967202) (Skiena) - - As a review and problem recognition - - The algorithm catalog portion is well beyond the scope of difficulty you'll get in an interview. - - This book has 2 parts: - - class textbook on data structures and algorithms - - pros: - - is a good review as any algorithms textbook would be - - nice stories from his experiences solving problems in industry and academia - - code examples in C - - cons: - - can be as dense or impenetrable as CLRS, and in some cases, CLRS may be a better alternative for some subjects - - chapters 7, 8, 9 can be painful to try to follow, as some items are not explained well or require more brain than I have - - don't get me wrong: I like Skiena, his teaching style, and mannerisms, but I may not be Stony Brook material. - - 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. - - Can rent it on kindle - - Answers: - - [Solutions](http://www.algorithm.cs.sunysb.edu/algowiki/index.php/The_Algorithms_Design_Manual_(Second_Edition)) - - [Solutions](http://blog.panictank.net/category/algorithmndesignmanualsolutions/page/2/) - - [Errata](http://www3.cs.stonybrook.edu/~skiena/algorist/book/errata) - -- [ ] [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. - - aka CLR, sometimes CLRS, because Stein was late to the game - -- [ ] [Computer Architecture, Sixth Edition: A Quantitative Approach](https://www.amazon.com/dp/0128119055) - - For a richer, more up-to-date (2017), but longer treatment - -- [ ] [Programming Pearls](http://www.amazon.com/Programming-Pearls-2nd-Jon-Bentley/dp/0201657880) - - The first couple of chapters present clever solutions to programming problems (some very old using data tape) but - that is just an intro. This a guidebook on program design and architecture, much like Code Complete, but much shorter. - -
- ## Video Series Sit back and enjoy. "Netflix and skill" :P From c7dae5dbcf9dfc97c8523da049c868369f1291f7 Mon Sep 17 00:00:00 2001 From: John Washam Date: Sat, 26 Jan 2019 16:46:31 -0800 Subject: [PATCH 13/18] Cleaning up the project. --- README.md | 71 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 36 insertions(+), 35 deletions(-) diff --git a/README.md b/README.md index 55e7528..4716eb0 100644 --- a/README.md +++ b/README.md @@ -175,10 +175,10 @@ If you want to be a reliability engineer or operations engineer, study more from - [Geometry, Convex hull](#geometry-convex-hull-videos) - [Discrete math](#discrete-math) - [Machine Learning](#machine-learning) -- [Papers](#papers) - [Additional Detail on Some Subjects](#additional-detail-on-some-subjects) - [Video Series](#video-series) - [Computer Science Courses](#computer-science-courses) +- [Papers](#papers) @@ -1893,37 +1893,6 @@ software engineer, and to be aware of certain technologies and algorithms, so yo above because it's just too much. It's easy to overdo it on a subject. You want to get hired in this century, right? -- Papers - - Be selective on which papers you read and how much you read. - - [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) - - [ ] [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) - - 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: Dynamo: Amazon’s Highly Available Key-value Store](http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.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) - - [ ] [2012: Google's Colossus](https://www.wired.com/2012/07/google-colossus/) - - paper not available - - [ ] 2012: AddressSanitizer: A Fast Address Sanity Checker: - - [paper](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/37752.pdf) - - [video](https://www.usenix.org/conference/atc12/technical-sessions/presentation/serebryany) - - [ ] 2013: Spanner: Google’s Globally-Distributed Database: - - [paper](http://static.googleusercontent.com/media/research.google.com/en//archive/spanner-osdi2012.pdf) - - [video](https://www.usenix.org/node/170855) - - [ ] [2014: Machine Learning: The High-Interest Credit Card of Technical Debt](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43146.pdf) - - [ ] [2015: Continuous Pipelines at Google](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43790.pdf) - - [ ] [2015: High-Availability at Massive Scale: Building Google’s Data Infrastructure for Ads](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44686.pdf) - - [ ] [2015: TensorFlow: Large-Scale Machine Learning on Heterogeneous Distributed Systems](http://download.tensorflow.org/paper/whitepaper2015.pdf ) - - [ ] [2015: How Developers Search for Code: A Case Study](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43835.pdf) - - [ ] [2016: Borg, Omega, and Kubernetes](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44843.pdf) - [ ] **Union-Find** - [ ] [Overview](https://www.coursera.org/learn/data-structures/lecture/JssSY/overview) - [ ] [Naive Implementation](https://www.coursera.org/learn/data-structures/lecture/EM5D0/naive-implementations) @@ -2061,12 +2030,44 @@ Sit back and enjoy. "Netflix and skill" :P ## Computer Science Courses -
-Computer Science Courses - - [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) +## Papers + +
+Papers + +- [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) +- [ ] [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) + - 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: Dynamo: Amazon’s Highly Available Key-value Store](http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.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) +- [ ] [2012: Google's Colossus](https://www.wired.com/2012/07/google-colossus/) + - paper not available +- [ ] 2012: AddressSanitizer: A Fast Address Sanity Checker: + - [paper](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/37752.pdf) + - [video](https://www.usenix.org/conference/atc12/technical-sessions/presentation/serebryany) +- [ ] 2013: Spanner: Google’s Globally-Distributed Database: + - [paper](http://static.googleusercontent.com/media/research.google.com/en//archive/spanner-osdi2012.pdf) + - [video](https://www.usenix.org/node/170855) +- [ ] [2014: Machine Learning: The High-Interest Credit Card of Technical Debt](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43146.pdf) +- [ ] [2015: Continuous Pipelines at Google](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43790.pdf) +- [ ] [2015: High-Availability at Massive Scale: Building Google’s Data Infrastructure for Ads](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44686.pdf) +- [ ] [2015: TensorFlow: Large-Scale Machine Learning on Heterogeneous Distributed Systems](http://download.tensorflow.org/paper/whitepaper2015.pdf ) +- [ ] [2015: How Developers Search for Code: A Case Study](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43835.pdf) +- [ ] [2016: Borg, Omega, and Kubernetes](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44843.pdf) +
## LICENSE From 23c56f4350c3ace5a20424eb85d4d437637f2811 Mon Sep 17 00:00:00 2001 From: xindoo Date: Tue, 29 Jan 2019 16:42:04 +0800 Subject: [PATCH 14/18] Add the video identity for some youtube videos --- README.md | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 4716eb0..92c914c 100644 --- a/README.md +++ b/README.md @@ -496,7 +496,7 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input - [answers to questions](https://github.com/lekkas/c-algorithms) - [ ] **How computers process a program:** - - [ ] [How CPU executes a program](https://www.youtube.com/watch?v=XM4lGflQFvA) + - [ ] [How CPU executes a program (video)](https://www.youtube.com/watch?v=XM4lGflQFvA) - [ ] [How computers calculate - ALU (video)](https://youtu.be/1I5ZMmrOfnA) - [ ] [Registers and RAM (video)](https://youtu.be/fpnE6UAfbtU) - [ ] [The Central Processing Unit (CPU) (video)](https://youtu.be/FZGugFqdr60) @@ -718,7 +718,7 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input - basic tree construction - traversal - manipulation algorithms - - [ ] [BFS(breadth-first search) and DFS(depth-first search)](https://www.youtube.com/watch?v=uWL6FJhq5fM) + - [ ] [BFS(breadth-first search) and DFS(depth-first search) (video)](https://www.youtube.com/watch?v=uWL6FJhq5fM) - BFS notes: - level order (BFS, using queue) - time complexity: O(n) @@ -984,7 +984,7 @@ Graphs can be used to represent many problems in computer science, so this secti - [ ] [Optional: UML 2.0 Series (video)](https://www.youtube.com/watch?v=OkC7HKtiZC0&list=PLGLfVvz_LVvQ5G-LdJ8RLqe-ndo7QITYc) - [ ] Object-Oriented Software Engineering: Software Dev Using UML and Java (21 videos): - Can skip this if you have a great grasp of OO and OO design practices. - - [OOSE: Software Dev Using UML and Java](https://www.youtube.com/playlist?list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO) + - [OOSE: Software Dev Using UML and Java (video)](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 Principles (video)](https://www.youtube.com/playlist?list=PL4CE9F710017EA77A) @@ -1159,7 +1159,7 @@ Graphs can be used to represent many problems in computer science, so this secti - [ ] [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/competitive-programming/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) + - [ ] [MIT, Advanced Data Structures, Strings (can get pretty obscure about halfway through) (video)](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) @@ -1180,15 +1180,15 @@ Graphs can be used to represent many problems in computer science, so this secti - **if you have networking experience or want to be a reliability engineer or operations 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) + - [ ] [UDP and TCP: Comparison of Transport Protocols (video)](https://www.youtube.com/watch?v=Vdc8TCESIg8) + - [ ] [TCP/IP and the OSI Model Explained! (video)](https://www.youtube.com/watch?v=e5DEVa9eSN0) + - [ ] [Packet Transmission across the Internet. Networking & TCP/IP tutorial. (video)](https://www.youtube.com/watch?v=nomyRJehhnM) + - [ ] [HTTP (video)](https://www.youtube.com/watch?v=WGJrLqtX7As) + - [ ] [SSL and HTTPS (video)](https://www.youtube.com/watch?v=S2iBR2ZlZf0) + - [ ] [SSL/TLS (video)](https://www.youtube.com/watch?v=Rp3iZUvXWlM) + - [ ] [HTTP 2.0 (video)](https://www.youtube.com/watch?v=E9FxNzv1Tr8) + - [ ] [Video Series (21 videos) (video)](https://www.youtube.com/playlist?list=PLEbnTDJUr_IegfoqO4iPnPYQui46QqT0j) + - [ ] [Subnetting Demystified - Part 5 CIDR Notation (video)](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) @@ -1698,8 +1698,8 @@ software engineer, and to be aware of certain technologies and algorithms, so yo - ### Bloom Filter - Given a Bloom filter with m bits and k hashing functions, both insertion and membership testing are O(k) - - [Bloom Filters](https://www.youtube.com/watch?v=-SuTGoFYjZs) - - [Bloom Filters | Mining of Massive Datasets | Stanford University](https://www.youtube.com/watch?v=qBTdukbzc78) + - [Bloom Filters (video)](https://www.youtube.com/watch?v=-SuTGoFYjZs) + - [Bloom Filters | Mining of Massive Datasets | Stanford University (video)](https://www.youtube.com/watch?v=qBTdukbzc78) - [Tutorial](http://billmill.org/bloomfilter-tutorial/) - [How To Write A Bloom Filter App](http://blog.michaelschmatz.com/2016/04/11/how-to-write-a-bloom-filter-cpp/) From 37333b64877a310b265fdf352b2ca22735b13a02 Mon Sep 17 00:00:00 2001 From: John Washam Date: Sat, 2 Feb 2019 10:58:31 -0800 Subject: [PATCH 15/18] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 92c914c..e2a1929 100644 --- a/README.md +++ b/README.md @@ -1233,6 +1233,8 @@ Graphs can be used to represent many problems in computer science, so this secti - [ ] Consensus Algorithms: - [ ] Paxos - [Paxos Agreement - Computerphile (video)](https://www.youtube.com/watch?v=s8JqcZtvnsM) - [ ] Raft - [An Introduction to the Raft Distributed Consensus Algorithm (video)](https://www.youtube.com/watch?v=P9Ydif5_qvE) + - [ ] [Easy-to-read paper](https://raft.github.io/) + - [ ] [Infographic](http://thesecretlivesofdata.com/raft/) - [ ] [Consistent Hashing](http://www.tom-e-white.com/2007/11/consistent-hashing.html) - [ ] [NoSQL Patterns](http://horicky.blogspot.com/2009/11/nosql-patterns.html) - [ ] Scalability: From ab257eb8f4a6a1c156499fa230584f6dd783c391 Mon Sep 17 00:00:00 2001 From: Christoph Bachhuber Date: Mon, 11 Feb 2019 11:26:19 +0100 Subject: [PATCH 16/18] Remove broken link to Garbage Collection-Compilers Youtube reports that this link does not exist anymore. Did not find convincing alternative, removed link. --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index e2a1929..51ce653 100644 --- a/README.md +++ b/README.md @@ -1655,7 +1655,6 @@ software engineer, and to be aware of certain technologies and algorithms, so yo - [ ] [Side-Channel Attacks](https://www.youtube.com/watch?v=PuVMkSEcPiI&index=15&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh) - ### Garbage collection - - [ ] [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) From 7fca187a1e2c620890e3373f578281380707e4cb Mon Sep 17 00:00:00 2001 From: arora-aditya <10962267+arora-aditya@users.noreply.github.com> Date: Sat, 23 Mar 2019 15:28:40 -0400 Subject: [PATCH 17/18] fix Endian link #414 --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 51ce653..87bdd52 100644 --- a/README.md +++ b/README.md @@ -889,11 +889,11 @@ Graphs can be used to represent many problems in computer science, so this secti - 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. - + - [ ] MIT(videos): - [ ] [Breadth-First Search](https://www.youtube.com/watch?v=s-CYnVz-uh4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=13) - [ ] [Depth-First Search](https://www.youtube.com/watch?v=AfSk24UTFS8&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=14) - + - [ ] Skiena Lectures - great intro: - [ ] [CSE373 2012 - Lecture 11 - Graph Data Structures (video)](https://www.youtube.com/watch?v=OiXxhDrFruw&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=11) - [ ] [CSE373 2012 - Lecture 12 - Breadth-First Search (video)](https://www.youtube.com/watch?v=g5vF8jscteo&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=12) @@ -1170,7 +1170,7 @@ Graphs can be used to represent many problems in computer science, so this secti - [ ] [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 And Little Endian](https://web.archive.org/web/20180107141940/http://www.cs.umd.edu:80/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. From b64e17e6069e5f582230c02c46b6c4e6c6b791b2 Mon Sep 17 00:00:00 2001 From: MoazMansour Date: Mon, 1 Apr 2019 17:49:28 -0400 Subject: [PATCH 18/18] Add 2 more video resources for data structures --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 87bdd52..412a85a 100644 --- a/README.md +++ b/README.md @@ -265,6 +265,10 @@ Sometimes the classes are not in session so you have to wait a couple of months, - 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. + - [ ] [Intro to Data Structures and Algorithms using Python! (Udacity free course)](https://www.udacity.com/course/data-structures-and-algorithms-in-python--ud513): + - A free Python centric data structures and algorithms course. + - [ ] [Data Structures and Algorithms Nanodegree! (Udacity paid Nanodegree)](https://www.udacity.com/course/data-structures-and-algorithms-nanodegree--nd256): + - Get hands-on practice with over 100 data structures and algorithm exercises and guidance from a dedicated mentor to help prepare you for interviews and on-the-job scenarios.