浏览代码

Added gauntlet notes.

John Washam 9 年之前
父节点
当前提交
22b74937b5
共有 1 个文件被更改,包括 32 次插入8 次删除
  1. 32 8
      plan.txt

+ 32 - 8
plan.txt

@@ -35,24 +35,42 @@
     * - Efficiency with Algorithms, Performance with Data Structures: https://youtu.be/fHNmRkzxHWs
     - review: https://www.youtube.com/watch?v=Rub-JsjMhWY
 
-compilers:
+* - compilers:
     * - https://class.coursera.org/compilers-004/lecture/1
     * - https://class.coursera.org/compilers-004/lecture/2
     * - C++: https://www.youtube.com/watch?v=twodd1KFfGk
     * - Understanding Compiler Optimization (C++): https://www.youtube.com/watch?v=FnGCDLhaxKU
 
-how computers process a program:
-    - https://www.youtube.com/watch?v=42KTvGYQYnA
-    - https://www.youtube.com/watch?v=Mv2XQgpbTNE
-    - https://www.youtube.com/watch?v=h8T3PWauYF4
+* - how computers process a program:
+    * - https://www.youtube.com/watch?v=42KTvGYQYnA
+    * - https://www.youtube.com/watch?v=Mv2XQgpbTNE
+
+----------------------------------------------------------------
+
+The Gauntlet:
+Each day I take one subject from the list below, watch videos about that subject, and write an implementation in:
+    C
+    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
+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 (without garbage collection (except Python))
+    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)
+
+----------------------------------------------------------------
 
 linked lists
-    - https://www.coursera.org/learn/data-structures/lecture/OsBSF/arrays
     - singly-linked
-        - https://www.coursera.org/learn/data-structures/lecture/kHhgK/singly-linked-lists
+        * - Description: https://www.coursera.org/learn/data-structures/lecture/kHhgK/singly-linked-lists
+        * - C Code (can jump to 6 minutes in): https://www.youtube.com/watch?v=KjtPAW5jyo8
+        - Java Code: https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/uwobd/core-java-code-for-a-linked-list
     - doubly-linked
-        - https://www.coursera.org/learn/data-structures/lecture/jpGKD/doubly-linked-lists
+        - Description: https://www.coursera.org/learn/data-structures/lecture/jpGKD/doubly-linked-lists
     - reverse a singly-linked list
+    - why you should avoid linked lists:
+        - https://www.youtube.com/watch?v=YQs6IC-vgmo
 stacks
     - see: https://class.coursera.org/algs4partI-010/lecture
     - https://www.coursera.org/learn/data-structures/lecture/UdKzQ/stacks
@@ -62,6 +80,12 @@ queues
 arrays
     - https://www.coursera.org/learn/data-structures/lecture/OsBSF/arrays
     - https://www.coursera.org/learn/data-structures/lecture/EwbnV/dynamic-arrays
+    - Time
+        - O(1) to add/remove at end (amortized for allocations for more space), index, or update
+        - O(n) to insert/remove elsewhere
+    - Space
+        - contiguous in memory, so proximity helps performance
+        - space needed = size of object * number of items to store
 Vectors
     - Vector calculus ?
 heaps