浏览代码

Added a few more things for asymptotic notation, scalability, and system design.

John Washam 8 年之前
父节点
当前提交
f6ef966773
共有 1 个文件被更改,包括 36 次插入27 次删除
  1. 36 27
      README.md

+ 36 - 27
README.md

@@ -198,23 +198,26 @@ Then test it out on a computer to make sure it's not buggy from syntax.
     - The myth of the Genius Programmer: https://www.youtube.com/watch?v=0SARbwvhupQ
     - The myth of the Genius Programmer: https://www.youtube.com/watch?v=0SARbwvhupQ
     - Google engineers are smart, but many have an insecurity that they aren't smart enough.
     - Google engineers are smart, but many have an insecurity that they aren't smart enough.
 
 
-- [x] **Algorithmic complexity / Big O / Asymptotic analysis**
-    - nothing to implement
-    - Harvard CS50 - Asymptotic Notation: https://www.youtube.com/watch?v=iOq5kSKqeR4
-    - Big O Notations (general quick tutorial) - https://www.youtube.com/watch?v=V6mKVRU1evU
-    - Big O Notation (and Omega and Theta) - best mathematical explanation:
+- [x] **Algorithmic complexity / Big-O / Asymptotic analysis**
+    - [x] nothing to implement
+    - [x] Harvard CS50 - Asymptotic Notation: https://www.youtube.com/watch?v=iOq5kSKqeR4
+    - [x] Big O Notations (general quick tutorial) - https://www.youtube.com/watch?v=V6mKVRU1evU
+    - [ ] TopCoder:
+        - Computational Complexity: Section 1: https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-1/
+        - Computational Complexity: Section 1: https://www.topcoder.com/community/data-science/data-science-tutorials/computational-complexity-section-2/
+    - [x] Big O Notation (and Omega and Theta) - best mathematical explanation:
         - https://www.youtube.com/watch?v=ei-A_wy5Yxw&index=2&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN
         - https://www.youtube.com/watch?v=ei-A_wy5Yxw&index=2&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN
-    - Skiena:
+    - [x] Skiena:
         - video: https://www.youtube.com/watch?v=gSyDMtdPNpU&index=2&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b
         - 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
         - 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: https://class.coursera.org/algorithmicthink1-004/lecture/59
-    - Asymptotics: https://class.coursera.org/algorithmicthink1-004/lecture/61
-    - UC Berkeley Big O: https://youtu.be/VIS4YDpuP98
-    - UC Berkeley Big Omega: https://youtu.be/ca3e7UVmeUc
-    - Amortized Analysis: https://www.youtube.com/watch?v=B3SpQZaAZP4&index=10&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN
-    - Illustrating "Big O": https://class.coursera.org/algorithmicthink1-004/lecture/63
-    - Cheat sheet: http://bigocheatsheet.com/
+    - [x] A Gentle Introduction to Algorithm Complexity Analysis: http://discrete.gr/complexity/
+    - [x] Orders of Growth: https://class.coursera.org/algorithmicthink1-004/lecture/59
+    - [x] Asymptotics: https://class.coursera.org/algorithmicthink1-004/lecture/61
+    - [x] UC Berkeley Big O: https://youtu.be/VIS4YDpuP98
+    - [x] UC Berkeley Big Omega: https://youtu.be/ca3e7UVmeUc
+    - [x] Amortized Analysis: https://www.youtube.com/watch?v=B3SpQZaAZP4&index=10&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN
+    - [x] Illustrating "Big O": https://class.coursera.org/algorithmicthink1-004/lecture/63
+    - [x] Cheat sheet: http://bigocheatsheet.com/
 
 
 
 
     If some of the lectures are too mathy, you can jump down to the bottom and
     If some of the lectures are too mathy, you can jump down to the bottom and
@@ -830,12 +833,19 @@ You'll get more graph practice in Skiena's book (see Books section below) and th
     - Transform one data set to another
     - Transform one data set to another
     - Handling obscenely large amounts of data
     - Handling obscenely large amounts of data
     - [x] Articles & Videos:
     - [x] Articles & Videos:
+        - [x] Great overview: https://www.youtube.com/watch?v=-W9F__D3oY4
+        - [ ] Short series: 
+            - 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
+            - http://www.lecloud.net/post/9699762917/scalability-for-dummies-part-4-asynchronism
         - [x] Scaling mobile games to a global audience using App Engine and Cloud Datastore: https://www.youtube.com/watch?v=9nWyWwY2Onc
         - [x] Scaling mobile games to a global audience using App Engine and Cloud Datastore: https://www.youtube.com/watch?v=9nWyWwY2Onc
         - [x] How Google Does Planet-Scale Engineering for Planet-Scale Infra: https://www.youtube.com/watch?v=H4vMcD7zKM0
         - [x] How Google Does Planet-Scale Engineering for Planet-Scale Infra: https://www.youtube.com/watch?v=H4vMcD7zKM0
         - [x] The Importance of Algorithms: https://www.topcoder.com/community/data-science/data-science-tutorials/the-importance-of-algorithms/
         - [x] The Importance of Algorithms: https://www.topcoder.com/community/data-science/data-science-tutorials/the-importance-of-algorithms/
-        - [ ] Scale at Facebook: https://www.infoq.com/presentations/Scale-at-Facebook
-        - [ ] Velocity 2012: Jay Parikh, "Building for a Billion Users": https://www.youtube.com/watch?v=oodS71YtkGU
-        - [ ] Engineering for the Long Game - Astrid Atkinson Keynote: https://www.youtube.com/watch?v=p0jGmgIrf_M&list=PLRXxvay_m8gqVlExPC5DG3TGWJTaBgqSA&index=4
+        - [ ] Sharding: http://highscalability.com/blog/2009/8/6/an-unorthodox-approach-to-database-design-the-coming-of-the.html
+        - [x] Scale at Facebook (2009): https://www.infoq.com/presentations/Scale-at-Facebook
+        - [x] Scale at Facebook (2012), "Building for a Billion Users": https://www.youtube.com/watch?v=oodS71YtkGU
+        - [x] Engineering for the Long Game - Astrid Atkinson Keynote: https://www.youtube.com/watch?v=p0jGmgIrf_M&list=PLRXxvay_m8gqVlExPC5DG3TGWJTaBgqSA&index=4
         - [x] 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
         - [x] 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
             - video: https://www.youtube.com/watch?v=G-lGCC4KKok
             - video: https://www.youtube.com/watch?v=G-lGCC4KKok
         - [x] How PayPal Scaled To Billions Of Transactions Daily Using Just 8VMs: http://highscalability.com/blog/2016/8/15/how-paypal-scaled-to-billions-of-transactions-daily-using-ju.html
         - [x] How PayPal Scaled To Billions Of Transactions Daily Using Just 8VMs: http://highscalability.com/blog/2016/8/15/how-paypal-scaled-to-billions-of-transactions-daily-using-ju.html
@@ -895,7 +905,7 @@ You'll get more graph practice in Skiena's book (see Books section below) and th
 
 
 - [ ] **System design**
 - [ ] **System design**
     There are subjects here that overlap with scalability. So some of this is software design and some is systems design.
     There are subjects here that overlap with scalability. So some of this is software design and some is systems design.
-    I moved the scalabilty stuff to the Scalability section.
+    I moved the scalability stuff to the Scalability section.
         - features sets
         - features sets
         - interfaces
         - interfaces
         - class hierarchies
         - class hierarchies
@@ -904,10 +914,9 @@ You'll get more graph practice in Skiena's book (see Books section below) and th
         - tradeoffs
         - tradeoffs
         - performance analysis and optimization
         - performance analysis and optimization
     - [x] https://www.quora.com/How-do-I-prepare-to-answer-design-questions-in-a-technical-interview?redirected_qid=1500023
     - [x] https://www.quora.com/How-do-I-prepare-to-answer-design-questions-in-a-technical-interview?redirected_qid=1500023
-    - [ ] System Design: http://www.hiredintech.com/system-design/
-    - [ ] Algorithm design: http://www.hiredintech.com/algorithm-design/
+    - [x] System Design: http://www.hiredintech.com/system-design/
+    - [x] Algorithm design: http://www.hiredintech.com/algorithm-design/
     - [ ] https://github.com/checkcheckzz/system-design-interview
     - [ ] https://github.com/checkcheckzz/system-design-interview
-    - [ ] http://www.lecloud.net/post/7295452622/scalability-for-dummies-part-1-clones
     - [ ] http://blog.gainlo.co/index.php/2015/10/22/8-things-you-need-to-know-before-system-design-interviews/
     - [ ] http://blog.gainlo.co/index.php/2015/10/22/8-things-you-need-to-know-before-system-design-interviews/
     - [ ] Lecture Videos - can skip through some if you already have a good OO background
     - [ ] Lecture Videos - can skip through some if you already have a good OO background
         - [ ] Chapter 1 - Software and Software Engineering: https://www.youtube.com/watch?v=maE3PxV4mk0
         - [ ] Chapter 1 - Software and Software Engineering: https://www.youtube.com/watch?v=maE3PxV4mk0
@@ -1102,17 +1111,17 @@ If you have time:
 Once you've learned your brains out, put those brains to work.
 Once you've learned your brains out, put those brains to work.
 Take coding challenges every day, as many as you can.
 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/ 
-- 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/
-
+- [ ] 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/
 
 
 - https://courses.csail.mit.edu/iap/interview/materials.php
 - https://courses.csail.mit.edu/iap/interview/materials.php
 
 
     - LeetCode: https://leetcode.com/
     - LeetCode: https://leetcode.com/
-    - Project Euler: https://projecteuler.net/index.php?section=problems
     - TopCoder: https://www.topcoder.com/
     - TopCoder: https://www.topcoder.com/
+    - Project Euler (math-focused): https://projecteuler.net/index.php?section=problems
     - HackerRank: https://www.hackerrank.com/
     - HackerRank: https://www.hackerrank.com/
     - Codility: https://codility.com/programmers/
     - Codility: https://codility.com/programmers/
     - InterviewCake: https://www.interviewcake.com/
     - InterviewCake: https://www.interviewcake.com/