AIdrifter
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights New
    • Engagement control
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Note Insights Versions and GitHub Sync Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Engagement control Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       Owned this note    Owned this note      
    Published Linked with GitHub
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    # [AIdrifter CS 浮生筆錄](https://hackmd.io/s/rypeUnYSb) <br> Google Interviews Process ## What to expect... The interview will last around 45 minutes. It will be conducted by a Google Software Engineer who will ask you to solve a number of problems which will test your data structure knowledge, algorithms and coding skills. You will be given a problem or puzzle to solve and you’ll need to talk about your approach and discuss the complexity of the solutions you are proposing. You will then need to code up your solution. You may want to practice whiteboard coding with the first 100-150 unsorted problems on LeetCode with pen and paper. The interview will be technical but we are very interested in your thought process, reasoning behind your answers and how you work to get to an efficient and accurate solution. IMPORTANT NOTE: You’ll need a computer with Internet access for this interview so that you can do some coding exercises with your interviewer on a Google Doc. The coordination team will guide you through this once your interview timing has been confirmed. A headset may be useful as you will be talking and coding at the same time. The best advice I can give is to talk through your solution, explain any trade offs you are making between time and memory and ask any questions you need to clarify the question. It is worthwhile to talk about your initial thoughts to a question, though a brute force solution will be received less well than taking time to compose a more efficient solution. Additional tips: 1. Since we can’t have you write 100 lines of code or solve NLP problems in a 45 minute interview, we focus on the basics. 2. Know your basic algorithms and data structures - these are the building blocks to smart coding. Your first data structure / algorithms course is your best friend here. Some examples are big O notation, basic search algorithms, hash tables, queues, stacks, summation of a series, etc. You should not only know these, but understand them - why/when are they good - what are the drawbacks. It’s unlikely you’ll get a question like “name 3 search algorithms and tell me their running time”, but these are the tools you’re going to use in the analytical questions. Make sure you have a good toolkit with you! 3. Communication: Ask questions, discuss your thoughts, raise any problems you're having. Engineering is collaborative - so is the interview. 4. Be Calm: Don't be nervous if an interview challenges your answer. Review your work and be certain or take up his/her hint on the interview. Suggested time allocation: (Not compulsory) What would you need to do first before you dive into your solution? (Clarify the problem). 1 minute After you received additional information needed, what would happen next? (Define the approach). 5 minutes - Verbal discussion of idea After you come up with your approach, there will most likely be additional parameters given for the problem. Now what would be your next step? (Proposed alternative solution) Give yourself 5 minutes to come up with a new solution If you are not sure if your preparation is on track, you can quickly take a look at the checklist below. >> Highly important!! ### Step 1. Understand Google Interview Process Connect with Taiwan Google (Interview tips): https://www.youtube.com/watch?v=ceycGad3x7o Interview tips from Google Software Engineers (English) : https://www.youtube.com/watch?v=XOtrOSatBoY&feature=youtu.be Ask a Google Engineer — What is the Interview Process at Google? : https://www.youtube.com/watch?v=IWIi3C8Md_E Hangouts On Air: Google Recruiters Share Technical Interview Tips : https://www.youtube.com/watch?v=qc1owf2-220 Google Technical Interview Workshop - Singapore : https://www.youtube.com/watch?feature=youtu.be&v=MyFxMpKn7yk&app=desktop How to: Work at Google — Candidate Coaching Session for Technical Interviewing : https://www.youtube.com/watch?v=oWbUtlUhwa8 Read through attached Interview preparation guides : ### Step 2. Refresh yourself with CS fundamentals Your old books! **Cracking the Coding Interview**: This is one of the most helpful book you may find!! We do expect you to know a lot about algorithms and data structures and to be able to implement them into your solutions - there is a great [bigocheatsheet](http://bigocheatsheet.com/) that may also help you! C++/Python Style Guide: http://code.google.com/p/google-styleguide/ Java Style Guide: https://google.github.io/styleguide/javaguide.html Introduction to Algorithms : 404 not found [Algorithm Design Manua](https://github.com/addyrookie/Depot-App/blob/master/gmail/The%20Algorithm%20Design%20Manual%202ed%20%20by%20Steven%20S.%20Skiena.pdf) ### Step 3. Coding Practice + CS review Websites such as [www.hackerrank.com](https://www.hackerrank.com/) and coding competition type of questions ([Project Euler](https://projecteuler.net/), [Topcoder](https://www.topcoder.com/), ACM - ICPC) Cracked 50 questions? Cracked 100 questions? ### Step 4. System Design Preparation [Building large-scale distributed systems (video version)](http://static.googleusercontent.com/media/research.google.com/en//people/jeff/stanford-295-talk.pdf) [The Google File System](https://ai.google/research/pubs/pub51) [Bigtable: A Distributed Storage System for Structured Data](https://ai.google/research/pubs/pub27898) [Systems design](https://github.com/checkcheckzz/system-design-interview) Want to get a glimpse of Google coding and algorithm questions? You can practice your coding skill by using [Code Jam](https://code.google.com/codejam/contest/3254486/dashboard#s=a) Kickstart Platform! Code Jam hosts online [Kickstart](https://codingcompetitions.withgoogle.com/kickstart/schedule#kickstart) rounds that give participants the opportunity to test and grow their coding abilities! Participate in one—or join them all! You can also learn how to solve those problems by reading our analysis. Ask yourself! Do you feel confident with CS fundamentals? Do you listen well? Do you know what to ask to clarify the questions? Do you feel confident with CS fundamentals? Can you find the optimal solution to complicated coding/algorithm problems, present it in a very efficient/clean coding (no/less bug) manner, and share your thoughts logically? Is your problem solving and coding speedy and efficient? About the Role Google’s software engineers develop the next-generation technologies that change how millions interact, making accessible and useful the world’s information, and our ambitions reach far beyond just Search. Learn [more about Google's Engineering roles](https://algorithm.yuanbin.me/zh-tw/) here ### Hiring Process A preview of how the recruitment process would work, as mentioned: Recruiter Prescreen → Phone Interview (1~2 sessions) → Onsite Interview (5 sessions) → Project Fit Talk* → Hiring Committee Review → Offer Review → Offer Delivery (Yippee!) *We will work together with you to decide project allocation based on your background, interest and company hiring needs after interview stage. ## Google Phone Interview The phone screen usually last between 30 and 60 minutes. Your phone interview will cover data structures and algorithms. Be prepared to write around 20-30 lines of code in your strongest language. This should be clean, rich, robust code. Your interviewer will ask one or two coding questions with lots of follow up questions. Be prepared to talk through your thought process while writing code in a `Google Doc` that you’ll share with your interviewer. We recommend using a hands-free headset or speakerphone so you can type freely. - You will be asked an open ended question. Ask clarifying questions, devise requirements. - You will be asked to explain it in an algorithm. Convert it to a workable code. - (Hint: Don't worry about getting it perfect because time is limited. Write what comes but then refine it later. Also make sure you consider `corner cases` and `edge cases`, production ready.) - Optimize the code, follow it with test cases and find any bugs. ## Google Onsite Interview This is it! You've passed the phone interviews and now you have received an onsite interview invitation. Onsite interview is the most important process of a Google interview, and your ability to receive an offer will largely depend on your performance during onsite interviews. Traditionally, the percentage of candidates who will receive an offer after onsite interview is about **1 of 5 to 1 of 7**. You'll usually meet with five Googlers for about `30` to `45` minutes each, and one of them will be your `lunch interviewer` who does not submit interview feedback, so take this opportunity to freely ask questions. All candidates will have the chance to highlight strengths in four different areas: - **General cognitive ability**: Open-ended questions are asked to learn how you approach and solve problems. And there’s no one right answer—your ability to explain your thought process and how you use data to inform decisions is what’s most important. - **Leadership**: Be prepared to discuss how you have used your communication and decision-making skills to `mobilize` others. This might be by stepping up to a leadership role at work or with an organization, or by helping a team succeed even when you weren’t `officially` the leader. - **Role-related knowledge**: Google is interested in how your individual strengths combine with your experience to drive impact. Google don’t just look for how you can contribute today, but how you can grow into different roles—including ones that haven’t even been invented yet. - **Googleyness**: Share how you work individually and on a team, how you help others, how you `navigate ambiguity`, and how you push yourself to grow outside of your comfort zone. Note that Google put heavy emphasis on your analytical ability regardless of your job experience. Be prepared to showcase solid understanding of data structures and algorithms. If you have years of experiences in the industry and are `rusty` in your Computer Science fundamentals, invest more time in `brushing up` your basic CS fundamental skills. Otherwise, you may end up being rejected like [Max Howell](https://www.quora.com/Whats-the-logic-behind-Google-rejecting-Max-Howell-the-author-of-Homebrew-for-not-being-able-to-invert-a-binary-tree/answer/Max-Howell) for not able to [invert a binary tree](https://leetcode.com/problems/invert-binary-tree/). Google wants to understand your coding skills and technical areas of expertise, including tools or programming languages and general knowledge on topics like data structures and algorithms. There's generally some back and forth in these discussions, just like there is on the job to push each other's thinking and learn about different approaches. So be prepared to talk through your solutions in depth. Push your own boundaries and find the best answer—that’s probably how you work anyway. Technical onsite interviews at Google were historically conducted on whiteboards, but to provide a more `authentic` coding experience that’s less time-consuming, Google has started to offer laptops for coding interviews in some sites. These **chromebooks** have an **interview app** that let's you choose a coding language of your preference. Throughout the interview process, feel free to ask your interviewers for clarification to make sure you **fully understand their questions**. ## Google Hiring Committee After the onsite interview, each of your interviewers (except the lunch interviewer) will have to submit detailed interview feedback. Each interviewer's feedback is kept hidden from other interviewers to ensure one's feedback does not influence the others. Each interviewer will assign a `score` and make a Hire / No Hire decision. Assume the scores from the feedback are good enough, your whole packet will be moved forward to the hiring committee for review. The hiring committee will review all submitted feedback thoroughly and make a hire / no hire recommendation. For more details about this process, you can [read here](https://www.quora.com/What-happens-during-a-Google-hiring-committee-meeting). ## Google Offer Review If Hiring Committee recommends hire, congratulations! You have arrived at the final stage of the process. There are about [10-12% candidates not extended offers at this stage](https://www.quora.com/My-Google-recruiter-has-asked-me-about-my-current-compensation-and-external-references-Whats-the-probability-of-not-getting-an-offer-from-this-point/answer/Bob-See). `Recruiter` requests for External References and Compensation History, conducts reference checks, and prepares a packet for the Offer Review Process. The Offer Review process: - Pre-Review Committee - Compensation Committee Review - Senior VP Review There is a small percentage chance of [the offer not getting approved at the final SVP review](https://www.quora.com/Why-would-one-be-rejected-at-the-final-stage-at-Google/answer/Bob-See).

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully