Clarified *, added more big O
This commit is contained in:
45
plan.txt
45
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
|
||||
|
Reference in New Issue
Block a user