I still have a few days in the learning phase (finishing up this crazy list), and starting next week all
I'll be doing is programming questions all day long. That will continue for a few weeks, and then I'll
apply through a referral I've been holding onto since February (yes, February).
In a couple of days I'll remove the checks from all the checkboxes. This started out as just a simple to-do list. :)
## Follow Along with Me
I'm on the journey, too. Follow along on my blog at [GoogleyAsHeck.com](https://googleyasheck.com/)
@ -269,23 +276,29 @@ You'll see some C, C++, and Python learning included below, because I'm learning
## 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 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 might take a few days.
**Note: These languages listed below are not all necessary**, but I wanted to learn and experiment in these. You need only one language for the interview, so make it one you're comfortable with.
More here: [Important: Pick One Language for the Google Interview](https://googleyasheck.com/important-pick-one-language-for-the-google-interview/)
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 - 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.
- Python - using built-in types, and sometimes array.array and bit vectors
- 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*
- 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.
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))
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)
- 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))
- 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)
I may not have time to do all of these for every subject, but I'll try.