It has been a few days since my initial kickoff post. Since then I have spent time researching everything I can on the position. Often at this stage I would also be researching the company, but Google hardly needs any introduction and plus I am a big fan and user of many of the products. I learned the developer advocate falls under the larger umbrella of developer relations @ Google. Checkout how Google describes it here: https://developers.google.com/jobs/. The Developer Advocate is a special role because it is so mulch-dimensional. Sometimes the advocate is coding, other times writing, and yet even other times speaking publicly about their technology.
I think the main people who are a part of software
development can be broken into three categories:
1) There are people out there who are pure engineers:
creating algorithms, maximizing efficiency, eking the most performance
possible.
2) The second group are the software developers, these guys (&
gals) are using the frameworks and building the applications on top of the
engineers as well as other higher application interfaces. The devs do think
about the things the software engineers think about, but they are also
concerned with usability, business logic, and overall design.
3) I think the
developer advocates fall into a third category and must be melded from the
other two categories, but their role is to foster communications and be the
glue to help tie the community together.
The interesting part of how Google sees the developer
advocate is they still want them to be very strong in an engineering sense. So
to give myself the best possible shot at the technical interview I have been
brushing up on my computer science notes from college.
First Major Area: Data Structures
I first focused on common data structures and their uses
since this is such a big part of the large web applications that Google
develops. The main ones I focused in on are linked lists, Trees, Heaps, Hash
Tables, Stacks, Trie, and Graphs. Each data structure has a unique behavior and
set of traits. These are the goto tools in the tool belt that software creators
can use to build their creations. I found a great website
http://bigocheatsheet.com/ for a well presented list of each of these tools and
some of the complexity tradeoffs between them.
Next up: Algorithms
Extra Resources:
Scanning the internet I found some related articles
referencing their experience in what I am presently going through:
http://www.globalnerdy.com/2013/10/19/i-has-the-dumb-or-how-i-embarrassed-myself-in-my-interview-with-google/
http://alexbowe.com/failing-at-google-interviews/
http://randommarkers.blogspot.com/