فهرست منبع

Clarified *, added more big O

John Washam 9 سال پیش
والد
کامیت
5785455dfb
1فایلهای تغییر یافته به همراه29 افزوده شده و 16 حذف شده
  1. 29 16
      plan.txt

+ 29 - 16
plan.txt

@@ -4,9 +4,10 @@
 
 Everything below is an outline, and you should tackle the items in order from top to bottom.
 
-I put an asterisk * at the beginning of a line when I'm done with it. When all sub-items are done,
+I put an asterisk/star (*) at the beginning of a line when I'm done with it. When all sub-items are done,
 I put a * at the top level, meaning the entire block is done. Sorry you have to remove all my *
 to use this the same way. If you search/replace, there are a couple of places to look out for.
+Sometimes I just put a * at top level if I know I've done all the subtasks, to cut down on * clutter.
 
 ##########################################################################################
 ##  Interview Prep:
@@ -40,6 +41,8 @@ to use this the same way. If you search/replace, there are a couple of places to
 ##  Knowledge:
 ##########################################################################################
 
+This short section were prerequisites/interesting info I wanted to learn before getting started on the daily plan.
+
 You need to know C, C++, or Java to do the coding part of the interview.
 They will sometimes make an exception and let you use Python or some other language, but the language
 must be mainstream and allow you write your code low-level enough to solve the problems.
@@ -56,15 +59,6 @@ Some videos are available only by enrolling in a Coursera or EdX class. It is fr
 * - Computer Arch Intro:
     (first video only - interesting but not required) https://www.youtube.com/watch?v=zLP_X4wyHbY&list=PL5PHm2jkkXmi5CxxI7b3JCL1TWybTDtKq&index=1
 
-* - Parity & Hamming Code:
-    Parity:
-        https://www.youtube.com/watch?v=DdMcAUlxh1M
-    Hamming Code:
-        https://www.youtube.com/watch?v=1A_NcXxdoCc
-        https://www.youtube.com/watch?v=JAMLuxdHH8o
-    Error Checking:
-        https://www.youtube.com/watch?v=wbH2VxzmoZk
-
 * - C
     * - K&R C book (ANSI C)
 - C++
@@ -96,14 +90,16 @@ Some videos are available only by enrolling in a Coursera or EdX class. It is fr
 
 The Daily Plan:
 
+Each subject does not require a whole day to be able to understand it fully, and you can do multiple of these in a day.
+
 Each day I take one subject from the list below, watch videos about that subject, and write an implementation in:
     C - using structs and functions that take a struct * and something else as args.
     C++ - without using built-in types
     C++ - using built-in types, like STL's std::list for a linked list
-    Python - without using built-in types
-    and write tests to ensure I'm doing it right, keep it simple with just assert() statements
+    Python - without using built-in types (to keep practicing Python)
+    and write tests to ensure I'm doing it right, sometimes just using simple assert() statements
     You may do Java or something else, this is just my thing.
-Each subject does not require a whole day to be able to understand it fully.
+
 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))
@@ -124,7 +120,7 @@ Then test it out on a computer to make sure it's not buggy from syntax.
     - 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):
+    - Big O Notation (and Omega and Theta) - best mathematical explanation:
         - https://www.youtube.com/watch?v=ei-A_wy5Yxw&index=2&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN
     - Skiena:
         - video: https://www.youtube.com/watch?v=gSyDMtdPNpU&index=2&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b
@@ -132,8 +128,11 @@ Then test it out on a computer to make sure it's not buggy from syntax.
     - 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
-    - http://bigocheatsheet.com/
+    - Cheat sheet: http://bigocheatsheet.com/
 Arrays
     * - Description:
         - Arrays: https://www.coursera.org/learn/data-structures/lecture/OsBSF/arrays
@@ -222,8 +221,16 @@ Circular buffer/FIFO:
 Bit operations
     - count on bits
         - https://youtu.be/Hzuzo9NJrlc
-    - max run of off bits
+    - max run of on/off bits
     - bit shifting
+* - Parity & Hamming Code:
+    Parity:
+        https://www.youtube.com/watch?v=DdMcAUlxh1M
+    Hamming Code:
+        https://www.youtube.com/watch?v=1A_NcXxdoCc
+        https://www.youtube.com/watch?v=JAMLuxdHH8o
+    Error Checking:
+        https://www.youtube.com/watch?v=wbH2VxzmoZk
 binary search
 Sorting
     - no bubble sort - it's terrible
@@ -375,6 +382,9 @@ Machine Learning:
     - http://www.analyticsvidhya.com/blog/2016/04/neural-networks-python-theano/
     - http://www.dataschool.io/
 
+Parallel Programming:
+    - https://www.coursera.org/learn/parprog1/home/week/1
+
 ------------------------
 
 Be thinking of for when the interview comes:
@@ -423,6 +433,9 @@ Mentioned in Coaching:
     Algorithms and Programming: Problems and Solutions:
         http://www.amazon.com/Algorithms-Programming-Solutions-Alexander-Shen/dp/0817638474
 
+    Once you've understood everything in the daily plan:
+        read and do exercises from the books below. Then move to coding challenges (below)
+
     Read first:
     Programming Interviews Exposed: Secrets to Landing Your Next Job, 2nd Edition:
         http://www.wiley.com/WileyCDA/WileyTitle/productCd-047012167X.html