# Google | 인터뷰 과정
### 1) Technical Phone Screen (Google Hangout, Google Docs)
#### Round 1
- 첫 **10분~15분**은 자신의 tech experience 와 skill, project 에 대한 질의를 한다.
- 그 다음, **2~4 문제 정도 DSA** (Data Structure & Algorithm) 에 대한 문제를 leet code에 나올 법한 문제들로 낸다. 대개 10~15분에 20~30줄 내로 짤 수 있는 간단한 문제인 경우가 많다.
- 지원자의 프로그래밍 언어에 대한 proficiency를 측정하고, 프로그래밍 기본 능력을 바탕으로 하여 간단한 코딩 문제를 해결할 수 있는지에 대한 능력을 측정한다.
- 측정 능력
- Computer science principle and applications
- Soft skill, desired role
#### Round 2
- 그 다음에 두번째 tech interviewer 가 들어온다. 문제 난이도는 Round1보다 더 어려운 문제를 낸다. Interviewer가 보고 싶은 것은 **나의 사고 과정 (process) 과 논리 (reasoning)** 를 보고 싶어한다.
#### 마무리
- 마지막 5분정도는 interviewer 에게 질문할 시간을 준다.
### 2) On-site (요즘은 virtual?)
- 3~5 round 가 있고, coding, system design, behavioral 에 대한 인터뷰를 진행한다.
- Coding: DSA 문제. Leet code 기준 medium-hard 문제를 제한된 시간에 푸는 연습을 하자. Max 30분.
- System Design: 상상의 서비스를 개발/개선할 때, 어떻게 시스템을 설계하고 있을까? 예를 들어, monolithic 구조를 어떻게 하면 micro 구조로 변경시킬 수 있을까?
- Behavioral: 지원자의 future performance를 측정하기 위해 다양한 상황을 주어주고 과거에 어떤 판단을 내리고 어떤 행동을 했는지에 대해서 물어봄. *과거에 있었던 경험을 토대로 기술하는 방식이 포인트*
- 지원자의 problem solving skill, DSA, system design 에 대한 proficiency 를 측정한다.
구글 인터뷰 전 읽어야 할 자료 (이메일 자료)
---
- Coding practice (https://codingcompetitions.withgoogle.com/codejam/archive)
- Grow Your Technical Skills with Google – Tech Dev Guide (https://techdevguide.withgoogle.com/)
- The ‘Google Students’ and ‘Life at Google’ channels on YouTube‘How to Prepare for a Technical Interview at Google’ (https://www.youtube.com/watch?v=OMkfujDPpwc)
- ‘See Yourself at Google’ (https://www.youtube.com/user/GoogleStudents)
- ‘How We Hire at Google’ (https://www.youtube.com/user/lifeatgoogle)
- ‘Example of a Coding Interview at Google’ (https://www.youtube.com/watch?v=XKu_SEDAykw&t=508s)
- Project Euler (https://projecteuler.net/)
Recruiter 가 공부하라고 하는 주제
---
#### Data Structure
- You'll be expected to know and apply: **lists, maps, stacks, priority queues, binary trees, graphs, bags, and sets.**
- You'll need to to talk about how they're implemented and why you would choose one implementation or data structure instead of another.
#### Algorithm
- **greedy algorithms, divide and conquer, dynamic programming, recursion, and brute force search.**
#### 주의사항
- DO NOT JUMP STRAIGHT INTO CODING
- clarifying questions to understand the question
- narrow it down or gather additional information
- problems are underspecified because our engineers are looking to see how you engage the problem
- Discuss your solution with your interviewer
- Explain briefly how you plan to approach the problem
- go through your solution at high level
- Talk through your thought process while coding too.
- the interviewer can follow your progress
- Think about ways to improve the solution you'll present
인터뷰 예시
---
- 최근 Google 인터뷰: https://www.geeksforgeeks.org/tag/google/
- Google Technical Phone Screen 질문들: https://www.interviewkickstart.com/interview-questions/google-phone-screen-interview-questions
참고할만한 링크
---
- 구글 인터뷰 대비하는 방법
- https://www.interviewbit.com/google-interview-questions/
- https://www.glassdoor.com/Interview/Google-Interview-Questions-E9079.htm?sort.sortType=RD&sort.ascending=false
- 파이썬 관련 인터뷰 질문 대비하는 방법
- https://www.interviewbit.com/python-interview-questions/
출처
---
1. https://www.interviewkickstart.com/interview-questions/google-coding-interview-questions
2. https://www.interviewkickstart.com/blog/understanding-the-google-interview-process
3. https://www.interviewkickstart.com/blog/understanding-the-google-interview-process