|
@@ -26,6 +26,7 @@ sometimes word-for-word in Google's coaching notes.
|
|
- [About Video Resources](#about-video-resources)
|
|
- [About Video Resources](#about-video-resources)
|
|
- [Interview Process & General Interview Prep](#interview-process--general-interview-prep)
|
|
- [Interview Process & General Interview Prep](#interview-process--general-interview-prep)
|
|
- [Pick One Language for the Interview](#pick-one-language-for-the-interview)
|
|
- [Pick One Language for the Interview](#pick-one-language-for-the-interview)
|
|
|
|
+- [Before you Get Started](#before-you-get-started)
|
|
- [Prerequisite Knowledge](#prerequisite-knowledge)
|
|
- [Prerequisite Knowledge](#prerequisite-knowledge)
|
|
- [The Daily Plan](#the-daily-plan)
|
|
- [The Daily Plan](#the-daily-plan)
|
|
- [Algorithmic complexity / Big-O / Asymptotic analysis](#algorithmic-complexity--big-o--asymptotic-analysis)
|
|
- [Algorithmic complexity / Big-O / Asymptotic analysis](#algorithmic-complexity--big-o--asymptotic-analysis)
|
|
@@ -179,9 +180,11 @@ I'm on the journey, too. Follow along on my blog at [GoogleyAsHeck.com](https://
|
|
|
|
|
|
## About Video Resources
|
|
## About Video Resources
|
|
|
|
|
|
-Some videos are available only by enrolling in a Coursera or EdX class. It is free to do so, but sometimes the classes
|
|
|
|
-are no longer in session so you have to wait a couple of months, so you have no access. I'm going to be adding more videos
|
|
|
|
-from public sources and replacing the online course videos over time. I like using university lectures.
|
|
|
|
|
|
+Some videos are available only by enrolling in a Coursera, EdX, or Lynda.com class. These are called MOOCs.
|
|
|
|
+It is free to do so, but sometimes the classes are not in session so you have to wait a couple of months, so you have no access.
|
|
|
|
+
|
|
|
|
+ I'd appreciate your help converting the MOOC video links to public sources to replace the online course videos over time. I like using university lectures.
|
|
|
|
+
|
|
|
|
|
|
## Interview Process & General Interview Prep
|
|
## Interview Process & General Interview Prep
|
|
|
|
|
|
@@ -210,7 +213,6 @@ from public sources and replacing the online course videos over time. I like usi
|
|
- [ ] ['How to Get a Job at the Big 4 - Amazon, Facebook, Google & Microsoft' (video)](https://www.youtube.com/watch?v=YJZCUhxNCv8)
|
|
- [ ] ['How to Get a Job at the Big 4 - Amazon, Facebook, Google & Microsoft' (video)](https://www.youtube.com/watch?v=YJZCUhxNCv8)
|
|
- [ ] [Failing at Google Interviews](http://alexbowe.com/failing-at-google-interviews/)
|
|
- [ ] [Failing at Google Interviews](http://alexbowe.com/failing-at-google-interviews/)
|
|
|
|
|
|
-
|
|
|
|
## Pick One Language for the Interview
|
|
## Pick One Language for the Interview
|
|
|
|
|
|
I wrote this short article about it: [Important: Pick One Language for the Google Interview](https://googleyasheck.com/important-pick-one-language-for-the-google-interview/)
|
|
I wrote this short article about it: [Important: Pick One Language for the Google Interview](https://googleyasheck.com/important-pick-one-language-for-the-google-interview/)
|
|
@@ -237,27 +239,43 @@ Read more about choices:
|
|
|
|
|
|
You'll see some C, C++, and Python learning included below, because I'm learning. There are a few books involved, see the bottom.
|
|
You'll see some C, C++, and Python learning included below, because I'm learning. There are a few books involved, see the bottom.
|
|
|
|
|
|
-## Prerequisite Knowledge
|
|
|
|
|
|
+## Before you Get Started
|
|
|
|
|
|
-- [ ] **How computers process a program:**
|
|
|
|
- - [ ] [How does CPU execute program (video)](https://www.youtube.com/watch?v=42KTvGYQYnA)
|
|
|
|
- - [ ] [Machine Code Instructions (video)](https://www.youtube.com/watch?v=Mv2XQgpbTNE)
|
|
|
|
|
|
+This list grew over many months, and yes, it kind of got out of hand.
|
|
|
|
|
|
-- [ ] **How floating point numbers are stored:**
|
|
|
|
- - [ ] simple 8-bit: [Fractions in binary? (video)](http://math.stackexchange.com/questions/301435/fractions-in-binary)
|
|
|
|
- - [ ] 32 bit: [Representation of Floating Point Numbers - 1 (video)](https://www.youtube.com/watch?v=ji3SfClm8TU)
|
|
|
|
- - [ ] 64 bit: [IEEE754 32-bit floating point binary (video)](https://www.youtube.com/watch?v=50ZYcZebIec)
|
|
|
|
|
|
+Here are some mistakes I made so you'll have a better experience.
|
|
|
|
|
|
-- [ ] **Computer Arch Intro:**
|
|
|
|
- (first video only - interesting but not required) [Introduction and Basics - Carnegie Mellon - Computer Architecture](https://www.youtube.com/watch?v=zLP_X4wyHbY&list=PL5PHm2jkkXmi5CxxI7b3JCL1TWybTDtKq&index=1)
|
|
|
|
|
|
+### 1. You Won't Remember it All
|
|
|
|
|
|
-- [ ] **Compilers**
|
|
|
|
- - [ ] [C++ (video)](https://www.youtube.com/watch?v=twodd1KFfGk)
|
|
|
|
- - [ ] [Understanding Compiler Optimization (C++) (video)](https://www.youtube.com/watch?v=FnGCDLhaxKU)
|
|
|
|
|
|
+I watched hours of videos and took copious notes, and months later there was much I didn't remember. I spent 3 days going
|
|
|
|
+through my notes and making flashcards so I could review (see below).
|
|
|
|
+
|
|
|
|
+### 2. Use Flashcards
|
|
|
|
+
|
|
|
|
+To solve the problem, I made a little flashcards site where I could add flashcards of 2 types: general and code.
|
|
|
|
+Each card has different formatting.
|
|
|
|
+
|
|
|
|
+I made a mobile-first website so I could review on my phone and tablet, whereever I am.
|
|
|
|
+
|
|
|
|
+Make your own for free:
|
|
|
|
+
|
|
|
|
+[Flashcards site repo](https://github.com/jwasham/computer-science-flash-cards)
|
|
|
|
+
|
|
|
|
+I'll add my set of flashcards to that repo soon so you have access to a lot of cards.
|
|
|
|
+
|
|
|
|
+**Note on flashcards:** The first time you recognize you know the answer, don't mark it as known. You have to see the
|
|
|
|
+same card and answer it several times correctly before you really know it. Repetition will put that knowledge deeper in
|
|
|
|
+your brain.
|
|
|
|
+
|
|
|
|
+### 3. Review, review, review
|
|
|
|
+
|
|
|
|
+I keep a set of cheatsheets on ASCII, OSI stack, Big-O notations, and more. I study them when I have some spare time.
|
|
|
|
+
|
|
|
|
+Take a break from programming problems for a half hour and go through your flashcards.
|
|
|
|
|
|
## The Daily Plan
|
|
## 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.
|
|
|
|
|
|
+Some subjects take one day, and some will take multiple days. Some are just learning with nothing to implement.
|
|
|
|
|
|
Each day I take one subject from the list below, watch videos about that subject, and write an implementation in:
|
|
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 - using structs and functions that take a struct * and something else as args.
|
|
@@ -281,8 +299,25 @@ You can see my code here:
|
|
|
|
|
|
You don't need to memorize the guts of every algorithm.
|
|
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 to make sure it's not buggy from syntax.
|
|
|
|
|
|
+Write code on a whiteboard, not a computer. Test with some sample inputs. Then test it out on a computer.
|
|
|
|
+
|
|
|
|
+## Prerequisite Knowledge
|
|
|
|
+
|
|
|
|
+- [ ] **How computers process a program:**
|
|
|
|
+ - [ ] [How does CPU execute program (video)](https://www.youtube.com/watch?v=42KTvGYQYnA)
|
|
|
|
+ - [ ] [Machine Code Instructions (video)](https://www.youtube.com/watch?v=Mv2XQgpbTNE)
|
|
|
|
+
|
|
|
|
+- [ ] **How floating point numbers are stored:**
|
|
|
|
+ - [ ] simple 8-bit: [Fractions in binary? (video)](http://math.stackexchange.com/questions/301435/fractions-in-binary)
|
|
|
|
+ - [ ] 32 bit: [Representation of Floating Point Numbers - 1 (video)](https://www.youtube.com/watch?v=ji3SfClm8TU)
|
|
|
|
+ - [ ] 64 bit: [IEEE754 32-bit floating point binary (video)](https://www.youtube.com/watch?v=50ZYcZebIec)
|
|
|
|
+
|
|
|
|
+- [ ] **Computer Arch Intro:**
|
|
|
|
+ (first video only - interesting but not required) [Introduction and Basics - Carnegie Mellon - Computer Architecture](https://www.youtube.com/watch?v=zLP_X4wyHbY&list=PL5PHm2jkkXmi5CxxI7b3JCL1TWybTDtKq&index=1)
|
|
|
|
+
|
|
|
|
+- [ ] **Compilers**
|
|
|
|
+ - [ ] [C++ (video)](https://www.youtube.com/watch?v=twodd1KFfGk)
|
|
|
|
+ - [ ] [Understanding Compiler Optimization (C++) (video)](https://www.youtube.com/watch?v=FnGCDLhaxKU)
|
|
|
|
|
|
## Algorithmic complexity / Big-O / Asymptotic analysis
|
|
## Algorithmic complexity / Big-O / Asymptotic analysis
|
|
- nothing to implement
|
|
- nothing to implement
|