|
@@ -24,15 +24,17 @@ to use this the same way. If you search/replace, there are a couple of places to
|
|
|
* - (very dated) http://dondodge.typepad.com/the_next_big_thing/2010/09/how-to-get-a-job-at-google-interview-questions-hiring-process.html
|
|
|
* - http://sites.google.com/site/steveyegge2/five-essential-phone-screen-questions
|
|
|
|
|
|
-Additional (not suggested by Google but I added):
|
|
|
+* - Additional (not suggested by Google but I added):
|
|
|
* - https://medium.com/always-be-coding/abc-always-be-coding-d5f8051afce2#.4heg8zvm4
|
|
|
* - https://medium.com/always-be-coding/four-steps-to-google-without-a-degree-8f381aa6bd5e#.asalo1vfx
|
|
|
* - https://medium.com/@dpup/whiteboarding-4df873dbba2e#.hf6jn45g1
|
|
|
* - http://www.kpcb.com/blog/lessons-learned-how-google-thinks-about-hiring-management-and-culture
|
|
|
* - http://www.coderust.com/blog/2014/04/10/effective-whiteboarding-during-programming-interviews/
|
|
|
- - Gayle L McDowell - Cracking The Coding Interview: https://www.youtube.com/watch?v=rEJzOhC5ZtQ
|
|
|
- - Cracking the Coding Interview: https://www.youtube.com/watch?v=aClxtDcdpsQ
|
|
|
- * - How to Get a Job at the Big 4: https://www.youtube.com/watch?v=YJZCUhxNCv8
|
|
|
+ * - Cracking The Coding Interview Set 1:
|
|
|
+ * - https://www.youtube.com/watch?v=rEJzOhC5ZtQ
|
|
|
+ * - https://www.youtube.com/watch?v=aClxtDcdpsQ
|
|
|
+ * - How to Get a Job at the Big 4:
|
|
|
+ * - https://www.youtube.com/watch?v=YJZCUhxNCv8
|
|
|
|
|
|
##########################################################################################
|
|
|
## Knowledge:
|
|
@@ -77,9 +79,9 @@ There are a few books involved, see the bottom
|
|
|
* - functors: http://www.cprogramming.com/tutorial/functors-function-objects-in-c++.html
|
|
|
* - C++ at Google: https://www.youtube.com/watch?v=NOCElcMcFik
|
|
|
* - Google C++ Style Guide: https://google.github.io/styleguide/cppguide.html
|
|
|
- - Google uses clang-format (Google setting)
|
|
|
- - C++ Core Guidelines: http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines
|
|
|
+ * - Google uses clang-format (there is a command line "style" argument: -style=google)
|
|
|
* - Efficiency with Algorithms, Performance with Data Structures: https://youtu.be/fHNmRkzxHWs
|
|
|
+ - C++ Core Guidelines: http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines
|
|
|
- review of C++ concepts: https://www.youtube.com/watch?v=Rub-JsjMhWY
|
|
|
|
|
|
* - compilers:
|
|
@@ -98,12 +100,18 @@ Each day I take one subject from the list below, watch videos about that subject
|
|
|
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
|
|
|
+ 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))
|
|
|
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)
|
|
|
|
|
|
+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.
|
|
|
+
|
|
|
----------------------------------------------------------------
|
|
|
|
|
|
arrays
|
|
@@ -112,7 +120,7 @@ arrays
|
|
|
- https://www.coursera.org/learn/data-structures/lecture/OsBSF/arrays
|
|
|
- https://www.coursera.org/learn/data-structures/lecture/EwbnV/dynamic-arrays
|
|
|
- Implement:
|
|
|
- - Practice coding using arrays and pointers, and pointer math to jump to an index instead of using indexing.
|
|
|
+ * - Practice coding using arrays and pointers, and pointer math to jump to an index instead of using indexing.
|
|
|
* - new raw data array with allocated memory (can allocate int array under the hood, just not use its features)
|
|
|
* - size() - number of items
|
|
|
* - capacity() - number of items it can hold
|
|
@@ -254,6 +262,8 @@ Other data structures:
|
|
|
Recursion
|
|
|
- when it is appropriate to use it
|
|
|
Algorithmic complexity
|
|
|
+ - http://discrete.gr/complexity/
|
|
|
+ - http://bigocheatsheet.com/
|
|
|
open-ended problems
|
|
|
- manipulate strings
|
|
|
- manipulate patterns
|
|
@@ -318,6 +328,14 @@ Testing
|
|
|
|
|
|
-------------------------------------------------------------------
|
|
|
|
|
|
+Once you're closer to the interview:
|
|
|
+ - Cracking The Coding Interview Set 2:
|
|
|
+ - https://www.youtube.com/watch?v=4NIb9l3imAo
|
|
|
+ - https://www.youtube.com/watch?v=Eg5-tdAwclo
|
|
|
+ - https://www.youtube.com/watch?v=1fqxMuPmGak
|
|
|
+
|
|
|
+-------------------------------------------------------------------
|
|
|
+
|
|
|
Extras that can't hurt:
|
|
|
|
|
|
Information theory:
|
|
@@ -338,12 +356,11 @@ C (for basis of C)
|
|
|
C++ (for interview answers)
|
|
|
|
|
|
Machine Learning:
|
|
|
+ - great course: https://www.coursera.org/learn/machine-learning
|
|
|
- http://www.analyticsvidhya.com/blog/2016/04/neural-networks-python-theano/
|
|
|
- - review videos
|
|
|
- - intro in Goodreader on iPad
|
|
|
- http://www.dataschool.io/
|
|
|
|
|
|
----
|
|
|
+------------------------
|
|
|
|
|
|
Be thinking of for when the interview comes:
|
|
|
|
|
@@ -353,11 +370,28 @@ Have a story, not just data, about something you accomplished
|
|
|
|
|
|
Why do you want this job?
|
|
|
What's a tough problem you've solved?
|
|
|
-Biggest challenges faced
|
|
|
-Best/worst designs seen
|
|
|
-Ideas for improving an existing Google product
|
|
|
+Biggest challenges faced?
|
|
|
+Best/worst designs seen?
|
|
|
+Ideas for improving an existing Google product.
|
|
|
How do you work best, as an individual and as part of a team?
|
|
|
Which of your skills or experiences would be assets in the role and why?
|
|
|
+What did you most enjoy at [job x / project y]?
|
|
|
+What was the biggest challenge you faced at [job x / project y]?
|
|
|
+What was the hardest bug you faced at [job x / project y]?
|
|
|
+What did you learn at [job x / project y]?
|
|
|
+What would you have done better at [job x / project y]?
|
|
|
+
|
|
|
+---------------------------
|
|
|
+
|
|
|
+Have questions for the interviewer.
|
|
|
+
|
|
|
+Some of mine (I already may know answer to but want their opinion or team perspective):
|
|
|
+ - How large is your team?
|
|
|
+ - What is your dev cycle look like? Do you do sprints/agile?
|
|
|
+ - How are decisions made in your team?
|
|
|
+ - What are you working on?
|
|
|
+ - What do you like about it?
|
|
|
+ - What is the work life like?
|
|
|
|
|
|
##########################################################################################
|
|
|
## Videos:
|