From beff2ad363c2f9f6e9811a1235ca356f20ef3263 Mon Sep 17 00:00:00 2001 From: Psycho_Coder Date: Mon, 10 Oct 2016 12:13:30 +0530 Subject: [PATCH 01/14] A few fixes/organized to the courses playlist --- README.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 2e6a941..8cbc5a1 100644 --- a/README.md +++ b/README.md @@ -1651,7 +1651,7 @@ Sit back and enjoy. "netflix and skill" :P - [ ] [Computer Science 70, 001 - Spring 2015 - Discrete Mathematics and Probability Theory](https://www.youtube.com/playlist?list=PL-XXv-cvA_iD8wQm8U0gG_Z1uHjImKXFy) -- [ ] [Discrete Mathematics (19 videos)](https://www.youtube.com/playlist?list=PL3o9D4Dl2FJ9q0_gtFXPh_H4POI5dK0yG) +- [ ] [Discrete Mathematics by Shai Simonson (19 videos)](https://www.youtube.com/playlist?list=PL3o9D4Dl2FJ9q0_gtFXPh_H4POI5dK0yG) - [ ] CSE373 - Analysis of Algorithms (25 videos) - [Skiena lectures from Algorithm Design Manual](https://www.youtube.com/watch?v=ZFjhkohHdAA&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=1) @@ -1686,13 +1686,14 @@ Sit back and enjoy. "netflix and skill" :P - [ ] [MIT 6.854: Advanced Algorithms, Spring 2016 (24 videos)](https://www.youtube.com/playlist?list=PL6ogFv-ieghdoGKGg2Bik3Gl1glBTEu8c) +- [ ] [HARVARD COMPSCI 224: Advanced Algorithms (25 videos)](https://www.youtube.com/playlist?list=PL2SOU6wwxB0uP4rJgf5ayhHWgw7akUWSf) + - [ ] [MIT 6.858 Computer Systems Security, Fall 2014](https://www.youtube.com/watch?v=GqmQg-cszw4&index=1&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh) -- [ ] Stanford: Programming Paradigms (17 videos) - - [Course on C and C++](https://www.youtube.com/watch?v=jTSvthW34GU&list=PLC0B8B318B7394B6F&nohtml5=False) - -- [ ] [Introduction to Cryptography](https://www.youtube.com/watch?v=2aHkqB2-46k&feature=youtu.be) - - [more in series (not in order)](https://www.youtube.com/channel/UC1usFRN4LCMcfIV7UjHNuQg) +- [ ] [Stanford: Programming Paradigms (17 videos)](https://www.youtube.com/view_play_list?p=9D558D49CA734A02) + +- [ ] [Introduction to Cryptography by Christof Paar](https://www.youtube.com/playlist?list=PL6N5qY2nvvJE8X75VkXglSrVhLv1tVcfy) + - [Course Website along with Slides and Problem Sets](http://www.crypto-textbook.com/) - [ ] [Mining Massive Datasets - Stanford University (94 videos)](https://www.youtube.com/playlist?list=PLLssT5z_DsK9JDLcT8T62VtzwyW9LNepV) From d5e94b5a46a369edb60a995fc43e397685f103ef Mon Sep 17 00:00:00 2001 From: Psycho_Coder Date: Mon, 10 Oct 2016 12:22:25 +0530 Subject: [PATCH 02/14] Minor fix on video counts --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8cbc5a1..b8ab62e 100644 --- a/README.md +++ b/README.md @@ -1690,7 +1690,7 @@ Sit back and enjoy. "netflix and skill" :P - [ ] [MIT 6.858 Computer Systems Security, Fall 2014](https://www.youtube.com/watch?v=GqmQg-cszw4&index=1&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh) -- [ ] [Stanford: Programming Paradigms (17 videos)](https://www.youtube.com/view_play_list?p=9D558D49CA734A02) +- [ ] [Stanford: Programming Paradigms (27 videos)](https://www.youtube.com/view_play_list?p=9D558D49CA734A02) - [ ] [Introduction to Cryptography by Christof Paar](https://www.youtube.com/playlist?list=PL6N5qY2nvvJE8X75VkXglSrVhLv1tVcfy) - [Course Website along with Slides and Problem Sets](http://www.crypto-textbook.com/) From 79c494e2997716421ef79126fb8e40a7a56f7d4c Mon Sep 17 00:00:00 2001 From: John Washam Date: Mon, 10 Oct 2016 09:41:13 -0700 Subject: [PATCH 03/14] Added Machine Learning books and links. --- README.md | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index b8ab62e..77037b9 100644 --- a/README.md +++ b/README.md @@ -1582,16 +1582,20 @@ You're never really done. - [ ] [Tensorflow Tutorials](https://www.tensorflow.org/versions/r0.11/tutorials/index.html) - [ ] [Practical Guide to implementing Neural Networks in Python](using Theano)])http://www.analyticsvidhya.com/blog/2016/04/neural-networks-python-theano/) - Courses: - - [ ] [Great starter course: Machine Learning](https://www.coursera.org/learn/machine-learning) + - [Great starter course: Machine Learning](https://www.coursera.org/learn/machine-learning) - [videos only](https://www.youtube.com/playlist?list=PLZ9qNFMHZ-A4rycgrgOYma6zxF4BZGGPW) - see videos 12-18 for a review of linear algebra (14 and 15 are duplicates) - - [ ] [Neural Networks for Machine Learning](https://www.coursera.org/learn/neural-networks) - - [ ] [Google's Deep Learning Nanodegree](https://www.udacity.com/course/deep-learning--ud730) - - [ ] [Google/Kaggle Machine Learning Engineer Nanodegree](https://www.udacity.com/course/machine-learning-engineer-nanodegree-by-google--nd009) - - [ ] [Self-Driving Car Engineer Nanodegree](https://www.udacity.com/drive) - - [ ] [Metis Online Course ($99 for 2 months)](http://www.thisismetis.com/explore-data-science) + - [Neural Networks for Machine Learning](https://www.coursera.org/learn/neural-networks) + - [Google's Deep Learning Nanodegree](https://www.udacity.com/course/deep-learning--ud730) + - [Google/Kaggle Machine Learning Engineer Nanodegree](https://www.udacity.com/course/machine-learning-engineer-nanodegree-by-google--nd009) + - [Self-Driving Car Engineer Nanodegree](https://www.udacity.com/drive) + - [Metis Online Course ($99 for 2 months)](http://www.thisismetis.com/explore-data-science) - Resources: - - Great book: Data Science from Scratch: First Principles with Python: https://www.amazon.com/Data-Science-Scratch-Principles-Python/dp/149190142X + - Books: + - [Python Machine Learning](https://www.amazon.com/Python-Machine-Learning-Sebastian-Raschka/dp/1783555130/) + - [Data Science from Scratch: First Principles with Python](https://www.amazon.com/Data-Science-Scratch-Principles-Python/dp/149190142X) + - [Introduction to Machine Learning with Python](https://www.amazon.com/Introduction-Machine-Learning-Python-Scientists/dp/1449369413/) + - [Machine Learning for Software Engineers](https://github.com/ZuzooVn/machine-learning-for-software-engineers) - Data School: http://www.dataschool.io/ - ### Go From 2de6712194fb2c9645bd09d04fd5d4419fc2b0c3 Mon Sep 17 00:00:00 2001 From: John Washam Date: Mon, 10 Oct 2016 11:23:34 -0700 Subject: [PATCH 04/14] Slightly rearranged coding practice section. --- README.md | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 77037b9..6cd56b2 100644 --- a/README.md +++ b/README.md @@ -63,6 +63,7 @@ sometimes word-for-word in Google's coaching notes. - [Implement system routines](#implement-system-routines) - [String searching & manipulations](#string-searching--manipulations) - [Final Review](#final-review) +- [Coding Question Practice](#coding-question-practice) - [Books](#books) - [Coding exercises/challenges](#coding-exerciseschallenges) - [Once you're closer to the interview](#once-youre-closer-to-the-interview) @@ -1182,6 +1183,18 @@ You'll get more graph practice in Skiena's book (see Books section below) and th - [ ] Merge Sort: https://www.youtube.com/watch?v=GCae1WNvnZM +## Coding Question Practice + +- [ ] [Great intro (copied from System Design section): Algorithm design:](http://www.hiredintech.com/algorithm-design/) +- [ ] [How to Find a Solution](https://www.topcoder.com/community/data-science/data-science-tutorials/how-to-find-a-solution/) +- [ ] [How to Dissect a Topcoder Problem Statement](https://www.topcoder.com/community/data-science/data-science-tutorials/how-to-dissect-a-topcoder-problem-statement/) +- [ ] [Mathematics for Topcoders](https://www.topcoder.com/community/data-science/data-science-tutorials/mathematics-for-topcoders/) +- [ ] [Dynamic Programming – From Novice to Advanced](https://www.topcoder.com/community/data-science/data-science-tutorials/dynamic-programming-from-novice-to-advanced/) + +- [MIT Interview Materials](https://courses.csail.mit.edu/iap/interview/materials.php) + +- [Exercises for getting better at a given language](http://exercism.io/languages) + ## Books ### Mentioned in Google Coaching @@ -1218,6 +1231,10 @@ You'll get more graph practice in Skiena's book (see Books section below) and th - [ ] [The Unix Programming Environment](http://product.half.ebay.com/The-UNIX-Programming-Environment-by-Brian-W-Kernighan-and-Rob-Pike-1983-Other/54385&tg=info) + + These two were very recommended. + + - [ ] [Programming Pearls](http://www.amazon.com/Programming-Pearls-2nd-Jon-Bentley/dp/0201657880) - [ ] [Algorithms and Programming: Problems and Solutions](http://www.amazon.com/Algorithms-Programming-Solutions-Alexander-Shen/dp/0817638474) @@ -1236,20 +1253,6 @@ You'll get more graph practice in Skiena's book (see Books section below) and th Once you've learned your brains out, put those brains to work. Take coding challenges every day, as many as you can. -Programming Question Prep: - -- [ ] [Great intro (copied from System Design section): Algorithm design:](http://www.hiredintech.com/algorithm-design/) -- [ ] [How to Find a Solution](https://www.topcoder.com/community/data-science/data-science-tutorials/how-to-find-a-solution/) -- [ ] [How to Dissect a Topcoder Problem Statement](https://www.topcoder.com/community/data-science/data-science-tutorials/how-to-dissect-a-topcoder-problem-statement/) -- [ ] [Mathematics for Topcoders](https://www.topcoder.com/community/data-science/data-science-tutorials/mathematics-for-topcoders/) -- [ ] [Dynamic Programming – From Novice to Advanced](https://www.topcoder.com/community/data-science/data-science-tutorials/dynamic-programming-from-novice-to-advanced/) - -- [MIT Interview Materials](https://courses.csail.mit.edu/iap/interview/materials.php) - -- [Exercises for getting better at a given language](http://exercism.io/languages) - -Programming: - - [LeetCode](https://leetcode.com/) - [TopCoder](https://www.topcoder.com/) - [Project Euler (math-focused)](https://projecteuler.net/index.php?section=problems) From abe7a9df9942c89c30e498d50f149e25e171e560 Mon Sep 17 00:00:00 2001 From: John Washam Date: Mon, 10 Oct 2016 11:34:57 -0700 Subject: [PATCH 05/14] Updated non-working MIT interview materials link with same from the Wayback Machine. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6cd56b2..359991e 100644 --- a/README.md +++ b/README.md @@ -1191,7 +1191,7 @@ You'll get more graph practice in Skiena's book (see Books section below) and th - [ ] [Mathematics for Topcoders](https://www.topcoder.com/community/data-science/data-science-tutorials/mathematics-for-topcoders/) - [ ] [Dynamic Programming – From Novice to Advanced](https://www.topcoder.com/community/data-science/data-science-tutorials/dynamic-programming-from-novice-to-advanced/) -- [MIT Interview Materials](https://courses.csail.mit.edu/iap/interview/materials.php) +- [MIT Interview Materials](https://web.archive.org/web/20160906124824/http://courses.csail.mit.edu/iap/interview/materials.php) - [Exercises for getting better at a given language](http://exercism.io/languages) From 15db7eada6b1297777cd26ca5a63e33984ecdb78 Mon Sep 17 00:00:00 2001 From: John Washam Date: Mon, 10 Oct 2016 16:22:19 -0700 Subject: [PATCH 06/14] Added a minor note. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 359991e..24d421d 100644 --- a/README.md +++ b/README.md @@ -319,7 +319,7 @@ You can see my code here: You don't need to memorize the guts of every algorithm. -Write code on a whiteboard, not a computer. Test with some sample inputs. Then test it out on a computer. +Write code on a whiteboard or paper, not a computer. Test with some sample inputs. Then test it out on a computer. ## Prerequisite Knowledge From 071d21471d78a198f0ae5c3bede6bfdb51a0ac8e Mon Sep 17 00:00:00 2001 From: John Washam Date: Mon, 10 Oct 2016 17:11:45 -0700 Subject: [PATCH 07/14] Moved some Topcoder items down. --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 24d421d..48c5531 100644 --- a/README.md +++ b/README.md @@ -1186,8 +1186,6 @@ You'll get more graph practice in Skiena's book (see Books section below) and th ## Coding Question Practice - [ ] [Great intro (copied from System Design section): Algorithm design:](http://www.hiredintech.com/algorithm-design/) -- [ ] [How to Find a Solution](https://www.topcoder.com/community/data-science/data-science-tutorials/how-to-find-a-solution/) -- [ ] [How to Dissect a Topcoder Problem Statement](https://www.topcoder.com/community/data-science/data-science-tutorials/how-to-dissect-a-topcoder-problem-statement/) - [ ] [Mathematics for Topcoders](https://www.topcoder.com/community/data-science/data-science-tutorials/mathematics-for-topcoders/) - [ ] [Dynamic Programming – From Novice to Advanced](https://www.topcoder.com/community/data-science/data-science-tutorials/dynamic-programming-from-novice-to-advanced/) @@ -1253,6 +1251,9 @@ You'll get more graph practice in Skiena's book (see Books section below) and th Once you've learned your brains out, put those brains to work. Take coding challenges every day, as many as you can. +- [ ] [How to Find a Solution](https://www.topcoder.com/community/data-science/data-science-tutorials/how-to-find-a-solution/) +- [ ] [How to Dissect a Topcoder Problem Statement](https://www.topcoder.com/community/data-science/data-science-tutorials/how-to-dissect-a-topcoder-problem-statement/) + - [LeetCode](https://leetcode.com/) - [TopCoder](https://www.topcoder.com/) - [Project Euler (math-focused)](https://projecteuler.net/index.php?section=problems) From 873b45ed3d0f555417f59ff90fd734abddcf3e10 Mon Sep 17 00:00:00 2001 From: sqrtthree Date: Tue, 11 Oct 2016 17:32:19 +0800 Subject: [PATCH 08/14] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E5=89=A9=E4=BD=99?= =?UTF-8?q?=E7=9A=84=E5=86=85=E5=AE=B9=20+=20=E7=9B=AE=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README-cn.md | 128 +++++++++++++++++++++++++-------------------------- 1 file changed, 64 insertions(+), 64 deletions(-) diff --git a/README-cn.md b/README-cn.md index 08b7965..54072c4 100644 --- a/README-cn.md +++ b/README-cn.md @@ -49,31 +49,31 @@ - [字典树(Tries)](#字典树tries) - [平衡查找树(Balanced search trees)](#平衡查找树balanced-search-trees) - [N 叉树(K 叉树、M 叉树)](#n-叉树k-叉树m-叉树) -- [Sorting](#sorting) -- [Graphs](#graphs) -- [Even More Knowledge](#even-more-knowledge) - - [Recursion](#recursion) - - [动态规划](#dynamic-programming) - - [Combinatorics (n choose k) & Probability](#combinatorics-n-choose-k--probability) - - [NP, NP-Complete and Approximation Algorithms](#np-np-complete-and-approximation-algorithms) - - [Caches](#caches) - - [Processes and Threads](#processes-and-threads) - - [System Design, Scalability, Data Handling](#system-design-scalability-data-handling) - - [Papers](#papers) - - [Testing](#testing) - - [Scheduling](#scheduling) - - [Implement system routines](#implement-system-routines) - - [String searching & manipulations](#string-searching--manipulations) -- [Final Review](#final-review) -- [Books](#books) -- [Coding exercises/challenges](#coding-exerciseschallenges) -- [Once you're closer to the interview](#once-youre-closer-to-the-interview) -- [Your Resume](#your-resume) -- [Be thinking of for when the interview comes](#be-thinking-of-for-when-the-interview-comes) -- [Have questions for the interviewer](#have-questions-for-the-interviewer) -- [Once You've Got The Job](#once-youve-got-the-job) +- [排序](#排序sorting) +- [图(Graphs)](#图graphs) +- [更多知识](#更多知识) + - [递归](#递归recursion) + - [动态规划](#动态规划dynamic-programming) + - [组合 & 概率](#组合combinatorics-n-中选-k-个--概率probability) + - [NP, NP-完全和近似算法](#np-np-完全和近似算法) + - [缓存](#缓存cache) + - [进程和线程](#进程processe和线程thread) + - [系统设计、可伸缩性、数据处理](#系统设计可伸缩性数据处理) + - [论文](#论文) + - [测试](#测试) + - [调度](#调度) + - [实现系统例程](#实现系统例程) + - [字符串搜索和操作](#字符串搜索和操作) +- [终面](#终面) +- [书籍](#书籍) +- [编码练习和挑战](#编码练习和挑战) +- [当你临近面试时](#当你临近面试时) +- [你的简历](#你的简历) +- [当面试来临的时候](#当面试来临的时候) +- [问面试官的问题](#问面试官的问题) +- [当你获得了梦想的职位](#当你获得了梦想的职位) ----------------- Everything below this point is optional ---------------- +---------------- 下面的内容是可选的 ---------------- - [Additional Learning](#additional-learning) - [Unicode](#unicode) @@ -804,7 +804,7 @@ - 尾递归会更好么? - [ ] [什么是尾递归以及为什么它如此糟糕?](https://www.quora.com/What-is-tail-recursion-Why-is-it-so-bad) - [ ] [尾递归 (video)](https://www.youtube.com/watch?v=L1jjXGfxozc) - + - ### 动态规划(Dynamic Programming) - This subject can be pretty difficult, as each DP soluble problem must be defined as a recursion relation, and coming up with it can be tricky. - 这一部分会有点困难,每个可以用动态规划解决的问题都必须先定义出递推关系,要推导出来可能会有点棘手。 @@ -821,7 +821,7 @@ - [ ] [Simonson: 动态规划 II - 课程 12 (video)](https://www.youtube.com/watch?v=v1qiRwuJU7g&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=12) - [ ] 单独的 DP 问题 (每一个视频都很短): [动态规划 (video)](https://www.youtube.com/playlist?list=PLrmLmBdmIlpsHaNTPP_jHHDx_os9ItYXr) - - [ ] Yale 课程笔记: + - [ ] Yale 课程笔记: - [ ] [动态规划](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#dynamicProgramming) - [ ] Coursera 课程: - [ ] [RNA 二级结构问题 (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/80RrW/the-rna-secondary-structure-problem) @@ -934,14 +934,14 @@ - [ ] [上下文切换操作会耗费多少时间?](http://blog.tsunanet.net/2010/11/how-long-does-it-take-to-make-context.html) - [ ] [跨数据中心的事务 (video)](https://www.youtube.com/watch?v=srOgpXECblk) - [ ] [简明 CAP 理论介绍](http://ksat.me/a-plain-english-introduction-to-cap-theorem/) - - [ ] Paxos 一致性算法: + - [ ] Paxos 一致性算法: - [时间很短](https://www.youtube.com/watch?v=s8JqcZtvnsM) - [用例 和 multi-paxos](https://www.youtube.com/watch?v=JEpsBg0AO6o) - [论文](http://research.microsoft.com/en-us/um/people/lamport/pubs/paxos-simple.pdf) - [ ] [一致性哈希](http://www.tom-e-white.com/2007/11/consistent-hashing.html) - [ ] [NoSQL 模式](http://horicky.blogspot.com/2009/11/nosql-patterns.html) - [ ] [OOSE: UML 2.0 系列 (video)](https://www.youtube.com/watch?v=OkC7HKtiZC0&list=PLGLfVvz_LVvQ5G-LdJ8RLqe-ndo7QITYc) - - [ ] OOSE: 使用 UML 和 Java 开发软件 (21 videos): + - [ ] OOSE: 使用 UML 和 Java 开发软件 (21 videos): - 如果你对 OO 都深刻的理解和实践,可以跳过这部分。 - [OOSE: 使用 UML 和 Java 开发软件](https://www.youtube.com/playlist?list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO) - [ ] 面向对象编程的 SOLID 原则: @@ -962,7 +962,7 @@ - [更多](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgMjdlMWIzNGUtZTQ0NC00ZjQ5LTkwYzQtZjRhMDRlNTQ3ZGMz&hl=en) - [ ] 可伸缩性: - [ ] [很棒的概述 (video)](https://www.youtube.com/watch?v=-W9F__D3oY4) - - [ ] 简短系列: + - [ ] 简短系列: - [克隆](http://www.lecloud.net/post/7295452622/scalability-for-dummies-part-1-clones) - [数据库](http://www.lecloud.net/post/7994751381/scalability-for-dummies-part-2-database) - [缓存](http://www.lecloud.net/post/9246290032/scalability-for-dummies-part-3-cache) @@ -1121,7 +1121,7 @@ --- -## 终面 +## 终面 这一部分有一些短视频,你可以快速的观看和复习大多数重要概念。 这对经常性的巩固很有帮助。 @@ -1136,7 +1136,7 @@ #### 排序: - [ ] 归并排序: https://www.youtube.com/watch?v=GCae1WNvnZM - + ## 书籍 @@ -1163,7 +1163,7 @@ - [ ] [Cracking the Coding Interview, 6th Edition](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/) - 如果你看到有人在看 "The Google Resume", 实际上它和 "Cracking the Coding Interview" 是同一个作者写的,而且后者是升级版。 -### 附加书单 +### 附加书单 这些没有被 Google 推荐阅读,不过我因为需要这些背景知识所以也把它们列在了这里。 @@ -1181,7 +1181,7 @@ ### 如果你有时间 - [ ] [Introduction to Algorithms](https://www.amazon.com/Introduction-Algorithms-3rd-MIT-Press/dp/0262033844) - + - [ ] [Elements of Programming Interviews](https://www.amazon.com/Elements-Programming-Interviews-Insiders-Guide/dp/1479274836) - 如果你希望在面试里用 C++ 写代码,这本书的代码全都是 C++ 写的 - 通常情况下能找到解决方案的好书. @@ -1234,7 +1234,7 @@ 随着下面列举的问题思考下你可能会遇到的 20 个面试问题 每个问题准备 2-3 种回答 准备点故事,不要只是摆一些你完成的事情的数据,相信我,人人都喜欢听故事 - + - 你为什么想得到这份工作? - 你解决过的最有难度的问题是什么? - 面对过的最大挑战是什么? @@ -1276,49 +1276,49 @@ ***************************************************************************************************** ***************************************************************************************************** - - Everything below this point is optional. These are my recommendations, not Google's. - By studying these, you'll get greater exposure to more CS concepts, and will be better prepared for - any software engineering job. + + 下面的内容都是可选的。这些是我的推荐,不是 Google 的。 + 通过学习这些内容,你将会得到更多的有关 CS 的概念,并将为所有的软件工程工作做更好的准备。 ***************************************************************************************************** ***************************************************************************************************** --- -## Additional Learning +## 附加的学习 - ### Unicode - - [ ] [The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets]( http://www.joelonsoftware.com/articles/Unicode.html) - - [ ] [What Every Programmer Absolutely, Positively Needs To Know About Encodings And Character Sets To Work With Text](http://kunststube.net/encoding/) + - [ ] [每一个软件开发者的绝对最低限度,必须要知道的关于 Unicode 和字符集知识]( http://www.joelonsoftware.com/articles/Unicode.html) + - [ ] [关于处理文本需要的编码和字符集, 每个程序员绝对需要知道的知识](http://kunststube.net/encoding/) -- ### Endianness - - [ ] [Big And Little Endian](https://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Data/endian.html) - - [ ] [Big Endian Vs Little Endian (video)](https://www.youtube.com/watch?v=JrNF0KRAlyo) - - [ ] [Big And Little Endian Inside/Out (video)](https://www.youtube.com/watch?v=oBSuXP-1Tc0) - - Very technical talk for kernel devs. Don't worry if most is over your head. - - The first half is enough. +- ### 字节顺序 + - [ ] [大、小端字节序](https://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Data/endian.html) + - [ ] [大端字节 Vs 小端字节(视频)](https://www.youtube.com/watch?v=JrNF0KRAlyo) + - [ ] [大、小端字节序的里里外外(Big And Little Endian Inside/Out) (视频)](https://www.youtube.com/watch?v=oBSuXP-1Tc0) + - 内核开发者的讨论非常技术性,如果大多数都超出了你的理解范围,不要太担心。 + - 前半段已经足够了。 - ### Emacs and vi(m) - suggested by Yegge, from an old Amazon recruiting post: Familiarize yourself with a unix-based code editor + - Yegge 的建议,从一个很早以前的亚马逊招聘信息中而来:熟悉基于 unix 的代码编辑器 - vi(m): - - [Editing With vim 01 - Installation, Setup, and The Modes (video)](https://www.youtube.com/watch?v=5givLEMcINQ&index=1&list=PL13bz4SHGmRxlZVmWQ9DvXo1fEg4UdGkr) - - [VIM Adventures](http://vim-adventures.com/) - - set of 4 videos: - - [The vi/vim editor - Lesson 1](https://www.youtube.com/watch?v=SI8TeVMX8pk) - - [The vi/vim editor - Lesson 2](https://www.youtube.com/watch?v=F3OO7ZIOaJE) - - [The vi/vim editor - Lesson 3](https://www.youtube.com/watch?v=ZYEccA_nMaI) - - [The vi/vim editor - Lesson 4](https://www.youtube.com/watch?v=1lYD5gwgZIA) - - [Using Vi Instead of Emacs](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Using_Vi_instead_of_Emacs) + - [使用 vim 进行编辑 01 - 安装, 设置和模式 (视频)](https://www.youtube.com/watch?v=5givLEMcINQ&index=1&list=PL13bz4SHGmRxlZVmWQ9DvXo1fEg4UdGkr) + - [VIM 的冒险之旅](http://vim-adventures.com/) + - 4 个视频集: + - [vi/vim 编辑器 - 课程 1](https://www.youtube.com/watch?v=SI8TeVMX8pk) + - [vi/vim 编辑器 - 课程 2](https://www.youtube.com/watch?v=F3OO7ZIOaJE) + - [vi/vim 编辑器 - 课程 4](https://www.youtube.com/watch?v=1lYD5gwgZIA) + - [vi/vim 编辑器 - 课程 3](https://www.youtube.com/watch?v=ZYEccA_nMaI) + - [使用 Vi 而不是 Emacs](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Using_Vi_instead_of_Emacs) - emacs: - - [Basics Emacs Tutorial (video)](https://www.youtube.com/watch?v=hbmV1bnQ-i0) - - set of 3 (videos): - - [Emacs Tutorial (Beginners) -Part 1- File commands, cut/copy/paste, cursor commands](https://www.youtube.com/watch?v=ujODL7MD04Q) - - [Emacs Tutorial (Beginners) -Part 2- Buffer management, search, M-x grep and rgrep modes](https://www.youtube.com/watch?v=XWpsRupJ4II) - - [Emacs Tutorial (Beginners) -Part 3- Expressions, Statements, ~/.emacs file and packages](https://www.youtube.com/watch?v=paSgzPso-yc) - - [Evil Mode: Or, How I Learned to Stop Worrying and Love Emacs (video)](https://www.youtube.com/watch?v=JWD1Fpdd4Pc) - - [Writing C Programs With Emacs](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Writing_C_programs_with_Emacs) - - [(maybe) Org Mode In Depth: Managing Structure (video)](https://www.youtube.com/watch?v=nsGYet02bEk) + - [基础 Emacs 教程 (视频)](https://www.youtube.com/watch?v=hbmV1bnQ-i0) + - 3 个视频集: + - [Emacs 教程 (初学者) -第 1 部分- 文件命令, 剪切/复制/粘贴, 自定义命令](https://www.youtube.com/watch?v=ujODL7MD04Q) + - [Emacs 教程 (初学者 -第 2 部分- Buffer 管理, 搜索, M-x grep 和 rgrep 模式](https://www.youtube.com/watch?v=XWpsRupJ4II) + - [Emacs 教程 (初学者 -第 3 部分- 表达式, 声明, ~/.emacs 文件和包机制](https://www.youtube.com/watch?v=paSgzPso-yc) + - [Evil 模式: 或许, 我是怎样对 Emacs 路人转粉的 (视频)](https://www.youtube.com/watch?v=JWD1Fpdd4Pc) + - [使用 Emacs 开发 C 程序](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Writing_C_programs_with_Emacs) + - [(或许) 深度组织模式:管理结构 (视频)](https://www.youtube.com/watch?v=nsGYet02bEk) - ### Unix 命令行工具 - 下列内容中的优秀工具由的 Yegge 推荐,Yegge 目前致力于 Amazon 人事招聘处。 @@ -1506,7 +1506,7 @@ - ### Math for Fast Processing - [ ] [Integer Arithmetic, Karatsuba Multiplication (video)](https://www.youtube.com/watch?v=eCaXlAaN2uE&index=11&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb) - [ ] [The Chinese Remainder Theorem (used in cryptography) (video)](https://www.youtube.com/watch?v=ru7mWZJlRQg) - + - ### Treap - Combination of a binary search tree and a heap - [ ] [Treap](https://en.wikipedia.org/wiki/Treap) From 303dbbfe2a9a861af08a8ee081c7ebc10445fa44 Mon Sep 17 00:00:00 2001 From: sqrtthree Date: Tue, 11 Oct 2016 17:34:26 +0800 Subject: [PATCH 09/14] =?UTF-8?q?=E6=9B=B4=E6=AD=A3=E7=9B=AE=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README-cn.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README-cn.md b/README-cn.md index 54072c4..719f9e6 100644 --- a/README-cn.md +++ b/README-cn.md @@ -75,9 +75,9 @@ ---------------- 下面的内容是可选的 ---------------- -- [Additional Learning](#additional-learning) +- [附加的学习](#附加的学习) - [Unicode](#unicode) - - [Endianness](#endianness) + - [字节顺序](#字节顺序) - [Emacs and vi(m)](#emacs-and-vim) - [Unix 命令行工具](#unix-命令行工具) - [信息资源 (视频)](#信息资源-视频) @@ -1299,7 +1299,6 @@ - 前半段已经足够了。 - ### Emacs and vi(m) - - suggested by Yegge, from an old Amazon recruiting post: Familiarize yourself with a unix-based code editor - Yegge 的建议,从一个很早以前的亚马逊招聘信息中而来:熟悉基于 unix 的代码编辑器 - vi(m): - [使用 vim 进行编辑 01 - 安装, 设置和模式 (视频)](https://www.youtube.com/watch?v=5givLEMcINQ&index=1&list=PL13bz4SHGmRxlZVmWQ9DvXo1fEg4UdGkr) From e5f4bd782e387d9df72ebdd67596ee44da4e572f Mon Sep 17 00:00:00 2001 From: sqrtthree Date: Tue, 11 Oct 2016 17:46:26 +0800 Subject: [PATCH 10/14] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E9=81=97=E7=95=99?= =?UTF-8?q?=E7=9A=84=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README-cn.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/README-cn.md b/README-cn.md index 719f9e6..5b0309c 100644 --- a/README-cn.md +++ b/README-cn.md @@ -1502,15 +1502,15 @@ - [ ] [路径压缩](https://www.coursera.org/learn/data-structures/lecture/Q9CVI/path-compression) - [ ] [分析选项](https://www.coursera.org/learn/data-structures/lecture/GQQLN/analysis-optional) -- ### Math for Fast Processing - - [ ] [Integer Arithmetic, Karatsuba Multiplication (video)](https://www.youtube.com/watch?v=eCaXlAaN2uE&index=11&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb) - - [ ] [The Chinese Remainder Theorem (used in cryptography) (video)](https://www.youtube.com/watch?v=ru7mWZJlRQg) +- ### 数学的快速处理 + - [ ] [整数运算, Karatsuba 乘法 (视频)](https://www.youtube.com/watch?v=eCaXlAaN2uE&index=11&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb) + - [ ] [中国剩余定理 (在密码学中的使用) (视频)](https://www.youtube.com/watch?v=ru7mWZJlRQg) -- ### Treap - - Combination of a binary search tree and a heap - - [ ] [Treap](https://en.wikipedia.org/wiki/Treap) - - [ ] [Data Structures: Treaps explained (video)](https://www.youtube.com/watch?v=6podLUYinH8) - - [ ] [Applications in set operations](https://www.cs.cmu.edu/~scandal/papers/treaps-spaa98.pdf) +- ### 树堆 (Treap) + - 一个二叉搜索树和一个堆的组合 + - [ ] [树堆](https://en.wikipedia.org/wiki/Treap) + - [ ] [数据结构:树堆的讲解(video)](https://www.youtube.com/watch?v=6podLUYinH8) + - [ ] [集合操作的应用(Applications in set operations)](https://www.cs.cmu.edu/~scandal/papers/treaps-spaa98.pdf) - ### 线性规划(Linear Programming)(视频) - [ ] [线性规划](https://www.youtube.com/watch?v=M4K6HYLHREQ) From 8925c5c6555a93c4b3ef02aece77d9eb8c4fd406 Mon Sep 17 00:00:00 2001 From: sqrtthree Date: Tue, 11 Oct 2016 17:52:16 +0800 Subject: [PATCH 11/14] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=9B=AE=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README-cn.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/README-cn.md b/README-cn.md index 5b0309c..0136a4a 100644 --- a/README-cn.md +++ b/README-cn.md @@ -98,14 +98,14 @@ - [跳表](#跳表) - [网络流](#网络流) - [不相交集 & 联合查找](#不相交集--联合查找) - - [Math for Fast Processing](#math-for-fast-processing) - - [Treap](#treap) - - [Linear Programming](#linear-programming) - - [Geometry, Convex hull](#geometry-convex-hull) - - [Discrete math](#discrete-math) - - [Machine Learning](#machine-learning) - - [Go](#go) -- [Additional Detail on Some Subjects](#additional-detail-on-some-subjects) + - [快速处理数学](#math-for-fast-processing) + - [树堆 (Treap)](#树堆-treap) + - [线性规划](#线性规划linear-programming视频) + - [几何:凸包(Geometry, Convex hull)](#几何凸包geometry-convex-hull视频) + - [离散数学](#离散数学) + - [机器学习](#机器学习machine-learning) + - [Go 语言](#go-语言) +- [一些主题的额外内容](#一些主题的额外内容) - [视频系列](#视频系列) - [计算机科学课程](#计算机科学课程) @@ -1502,7 +1502,7 @@ - [ ] [路径压缩](https://www.coursera.org/learn/data-structures/lecture/Q9CVI/path-compression) - [ ] [分析选项](https://www.coursera.org/learn/data-structures/lecture/GQQLN/analysis-optional) -- ### 数学的快速处理 +- ### 快速处理数学 - [ ] [整数运算, Karatsuba 乘法 (视频)](https://www.youtube.com/watch?v=eCaXlAaN2uE&index=11&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb) - [ ] [中国剩余定理 (在密码学中的使用) (视频)](https://www.youtube.com/watch?v=ru7mWZJlRQg) From 9ff224d7e33438afde3f8897caf246f6fcff817b Mon Sep 17 00:00:00 2001 From: Glow Chiang Date: Tue, 11 Oct 2016 18:10:26 +0800 Subject: [PATCH 12/14] add Chinese version --- README.md | 50 +++----------------------------------------------- 1 file changed, 3 insertions(+), 47 deletions(-) diff --git a/README.md b/README.md index 2e6a941..4128416 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # Google Interview University +[中文版本](https://github.com/xitu/google-interview-university/blob/master/README-cn.md) + ## What is it? This is my multi-month study plan for going from web developer (self-taught, no CS degree) to Google software engineer. @@ -1654,50 +1656,4 @@ Sit back and enjoy. "netflix and skill" :P - [ ] [Discrete Mathematics (19 videos)](https://www.youtube.com/playlist?list=PL3o9D4Dl2FJ9q0_gtFXPh_H4POI5dK0yG) - [ ] CSE373 - Analysis of Algorithms (25 videos) - - [Skiena lectures from Algorithm Design Manual](https://www.youtube.com/watch?v=ZFjhkohHdAA&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=1) - -- [ ] [UC Berkeley 61B (Spring 2014): Data Structures (25 videos)](https://www.youtube.com/watch?v=mFPmKGIrQs4&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd) - -- [ ] [UC Berkeley 61B (Fall 2006): Data Structures (39 videos)]( https://www.youtube.com/playlist?list=PL4BBB74C7D2A1049C) - -- [ ] [UC Berkeley 61C: Machine Structures (26 videos)](https://www.youtube.com/watch?v=gJJeUFyuvvg&list=PL-XXv-cvA_iCl2-D-FS5mk0jFF6cYSJs_) - -- [ ] [OOSE: Software Dev Using UML and Java (21 videos)](https://www.youtube.com/playlist?list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO) - -- [ ] [UC Berkeley CS 152: Computer Architecture and Engineering (20 videos)](https://www.youtube.com/watch?v=UH0QYvtP7Rk&index=20&list=PLkFD6_40KJIwEiwQx1dACXwh-2Fuo32qr) - -- [ ] [MIT 6.004: Computation Structures (49 videos)](https://www.youtube.com/playlist?list=PLrRW1w6CGAcXbMtDFj205vALOGmiRc82-) - -- [ ] [Carnegie Mellon - Computer Architecture Lectures (39 videos)](https://www.youtube.com/playlist?list=PL5PHm2jkkXmi5CxxI7b3JCL1TWybTDtKq) - -- [ ] [MIT 6.006: Intro to Algorithms (47 videos)](https://www.youtube.com/watch?v=HtSuA80QTyo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&nohtml5=False) - -- [ ] [MIT 6.033: Computer System Engineering (22 videos)](https://www.youtube.com/watch?v=zm2VP0kHl1M&list=PL6535748F59DCA484) - -- [ ] [MIT 6.034 Artificial Intelligence, Fall 2010 (30 videos)](https://www.youtube.com/playlist?list=PLUl4u3cNGP63gFHB6xb-kVBiQHYe_4hSi) - -- [ ] [MIT 6.042J: Mathematics for Computer Science, Fall 2010 (25 videos)](https://www.youtube.com/watch?v=L3LMbpZIKhQ&list=PLB7540DEDD482705B) - -- [ ] [MIT 6.046: Design and Analysis of Algorithms (34 videos)](https://www.youtube.com/watch?v=2P-yW7LQr08&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp) - -- [ ] [MIT 6.050J: Information and Entropy, Spring 2008 (19 videos)](https://www.youtube.com/watch?v=phxsQrZQupo&list=PL_2Bwul6T-A7OldmhGODImZL8KEVE38X7) - -- [ ] [MIT 6.851: Advanced Data Structures (22 videos)](https://www.youtube.com/watch?v=T0yzrZL1py0&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf&index=1) - -- [ ] [MIT 6.854: Advanced Algorithms, Spring 2016 (24 videos)](https://www.youtube.com/playlist?list=PL6ogFv-ieghdoGKGg2Bik3Gl1glBTEu8c) - -- [ ] [MIT 6.858 Computer Systems Security, Fall 2014](https://www.youtube.com/watch?v=GqmQg-cszw4&index=1&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh) - -- [ ] Stanford: Programming Paradigms (17 videos) - - [Course on C and C++](https://www.youtube.com/watch?v=jTSvthW34GU&list=PLC0B8B318B7394B6F&nohtml5=False) - -- [ ] [Introduction to Cryptography](https://www.youtube.com/watch?v=2aHkqB2-46k&feature=youtu.be) - - [more in series (not in order)](https://www.youtube.com/channel/UC1usFRN4LCMcfIV7UjHNuQg) - -- [ ] [Mining Massive Datasets - Stanford University (94 videos)](https://www.youtube.com/playlist?list=PLLssT5z_DsK9JDLcT8T62VtzwyW9LNepV) - -## 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) - + - [Skiena lecture From d6c252bdaedfaf768c8fa71cccc8acd875802bdd Mon Sep 17 00:00:00 2001 From: antonia0912 Date: Tue, 11 Oct 2016 18:17:42 +0800 Subject: [PATCH 13/14] Update README-cn.md --- README-cn.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README-cn.md b/README-cn.md index 017bf55..0e14b6c 100644 --- a/README-cn.md +++ b/README-cn.md @@ -1,4 +1,3 @@ -# Google Interview University - 一套完整的学习手册帮助自己准备 Google 的面试 > * 原文地址:[Google Interview University](https://github.com/jwasham/google-interview-university) * 原文作者:[John Washam](https://github.com/jwasham) From b1dea3635f5ec85a0b7fd8fc114431574b60595b Mon Sep 17 00:00:00 2001 From: Glow Chiang Date: Tue, 11 Oct 2016 18:43:19 +0800 Subject: [PATCH 14/14] =?UTF-8?q?add=20=E4=B8=AD=E6=96=87=E7=89=88?= =?UTF-8?q?=E6=9C=AC=20to=20README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 48c5531..bb373dc 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # Google Interview University +[中文版本](https://github.com/xitu/google-interview-university/blob/master/README-cn.md) + ## What is it? This is my multi-month study plan for going from web developer (self-taught, no CS degree) to Google software engineer.