다가오는 Google 인터뷰, 준비 조언 찾기 [닫기]


29

글쎄, 나는 내가 할 수있는 곳마다 책을 쳤다. 소프트웨어 엔지니어 직책을 위해 전화를 통한 첫 번째 인터뷰가 나옵니다. 나는 모든 블로그 게시물을 읽었고, 인터뷰의 모든 계정 (일부 꽤 오래된)을 읽었으며 Google 자체도 책 목록을 제안했지만 아무도 그중 누구도 놀라지 않을 것입니다. 그럼에도 불구하고 준비를 한 후에도, 나는 덮을 큰 땅이 있다는 느낌을 떨칠 수 없으며 깊이와 폭으로 갈 것인지 확신 할 수 없습니다. 나는 다른 분야로 넘어갈 때 가장 세부적인 부분 만 잊어 버리는 것만으로도 전체 영역의 재 학습을 발견했습니다.

따라서이 질문에 대한 좋은 대답이 있는지는 모르겠지만 인터뷰 전에 남은 몇 주를 해결하는 방법에 대한 실용적인 조언을 찾고 있습니다. 내 뇌의 일부는 충격에 지쳤으며 물론 나머지는 현재 직장에서 어려운 문제에 이용되어야합니다.


3
careeroverflow.com IMHO에 더 적합 할 수 있습니다. 또한 초보자, 시니어 등의 직위와 배경을 말하지 않고 가정을 많이 남겨 둡니다.
vpit3833

3
@Fast Fish : 차가워 요. IQ 테스트를 치르십시오. Google에서 135 개 이상의 점수를 얻거나 Google이없는 경우 시험을 볼 수 있습니다.
Fanatic23

9
프로그래머에 관한 것이기 때문에 여기서 훌륭합니다. ?? 담당자가 높은 사람들이 쿼크까지 분류하고 정리하는 것을 왜 좋아합니까?
조나단.

3
면접 질문이 이미 많이 있습니다. 질문이 어떻게 다른가요? 귀하의 답변이 "Google"인 경우 바로 여기에 있지 않습니다. Google 인터뷰를 다루는 수많은 사이트가 있으며, 많은 사이트가이 사이트보다 더 나은 정보를 얻을 수 있습니다.
니콜

2
그리고 당신은 다가오는 면접관이 P.SE에 숨어 있지 않다고 가정합니까? :)
haylem

답변:


30

알아야 할 것들

  • 구글이 당신을 고용하고 싶어합니다!

    모든 소프트웨어 회사의 핵심은 직원이며 Google도 마찬가지입니다. 그것은 최선을 다하고 가장 밝게 고용하고 인터뷰를하는 사람들은 당신이하는 것처럼 당신이 성공하기를 원합니다.

  • Google은 최대한 정확하게 귀하를 평가하는 것이 가장 좋습니다. 그들의 직업입니다.

    Google은 데이터 중심 회사입니다. 채용 결정은 관리자 피아트에 의해 결정되지 않습니다. 대신, 각 면접관은 면담 중에 방대한 메모를 작성하여 패킷으로 결합합니다. 그 패킷은 별도의위원회에 의해 검토되어 궁극적으로 결정을 내립니다. 그래서 당신이 면접관 중 한 명과 '젤링'하지 않았다면 걱정하지 마십시오! 중요한 것은 인터뷰에서 얼마나 잘 수행 하는가입니다.

당신이 가져야 할 기술

인터뷰 전에 다음 기술 / 기술을 연마하십시오. 당신이 이것들에 대해 직접 질문을받지 않더라도, 그것들을 검토하는 것은 확실히 당신의 머리를 올바른 사고 방식으로 이끌 수 있습니다.

  • 데이터 구조

    배열과 연결 목록의 차이점은 무엇입니까? 나무와 그래프? 언제 다른 것을 사용 하시겠습니까? 이것이 속도 / 메모리 트레이드 오프에 어떤 영향을 미칩니 까?

    인터뷰 질문은 효과적인 해결책으로 끝나지 않습니다. 접근법의 실행 시간과 어떤 종류의 트레이드 오프를 설명 할 수 있어야합니다. 예를 들어, "모든 것을 캐시하면 X 기가 바이트의 RAM이 필요하지만 ... 또는 "이진 트리를 정렬 된 상태로 유지하면서 작업 X를 느리게하면 Y가 빨라질 것입니다."

  • 알고리즘

    기본 그래프 순회 알고리즘, 트리 순회 알고리즘 및 숫자 정렬을위한 두 가지 좋은 접근 방식.

    동적 프로그래밍을 사용하여 사소한 문제 해결을 연습하십시오. 그것은 어려운 인터뷰 질문에 관해서는 구멍에 에이스입니다!

  • 해시 테이블

    이것은 크다. 직접 구현할 수있는 것부터 해싱 함수에 대한 지식, 버킷 수가 소수 여야하는 이유에 이르기까지 해시 테이블에 대해 알아야 할 모든 내용을 알고 있어야합니다. 해시 테이블과 관련된 개념은 컴퓨터 과학의 거의 모든 영역과 관련이 있습니다.

  • 자신에 대한 이야기

    면접관과 처음으로 대화하는 것은 몇 가지 경험을 설명하는 중요한 시간입니다. 관련 프로젝트, 중요한 기술적 성과 등. 인터뷰를하는 사람은 당신과 같은 수백 명의 똑똑한 사람들이 아니라면 수십 명을 인터뷰했습니다. 그렇다면 놀랍게 말할 수있는 것은 무엇입니까?

    예를 들어, 인터뷰에서 나는 대학에서 바둑 게임을하기 위해 쓴 프로그램에 대해 면접관에게 말했다. Go 게임을 위해 AI를 작성하는 것은 매우 어렵고 그것을 증명할 끔찍한 Go-bot이 있습니다! 결론은 프로그래밍 방법을 아는 똑똑한 사람이 아니라 자신입니다.

너무 강조하지 마십시오. 다른 인터뷰와 같습니다. 맨홀 뚜껑이나 후지산에 대해 어리석은 질문을하는 사람은 아무도 없습니다. 후지


7

편하게 하다

면접관이 내 면접관과 같은 것이면 면접관이 응시자를 제출하지 않고 어떻게 생각하는지 볼 수 있습니다 .

편집 : 이것은 단지 최초의 전화 인터뷰였습니다. 나는 그 이상을 알지 못합니다 ... 내가 아마 당신에게 어쨌든 말할 수 없었습니다!


2
직업을 얻었습니까?
Manoj R

1
@Manoj : lol-아뇨,하지만 요점이 아닙니다. 나는 그들이 인터뷰 한 직업을 실제로 원하지 않았지만 그 과정과 기회가 무엇인지 궁금했습니다. 캘리포니아로 이사 할 의사가 없었습니다!
Steven A. Lowe

2

http://get-that-job-at-google.blogspot.in/ 에서 다음 기사를 빌 렸습니다.

코딩 지식 C / C ++ 및 Java는 Google 면접관이 선호하는 프로그래밍 언어입니다. 당신은 그들 중 적어도 하나를 정말로 잘 알아야합니다. 전화 화면 인터뷰와 현장 인터뷰에도 코드를 작성해야합니다.

CS 인터뷰 추천 도서 : 알고리즘 소개-코멘

프로그래밍 인터뷰

코딩 인터뷰 균열

인터뷰 알고리즘

코딩 연습을위한 권장 웹 사이트 : InterviewStreet, Topcoder

Big-O 이것이 알고리즘 인터뷰를 준비하는 출발점이되어야합니다. 기본 복잡성 분석은 고용되지 않도록 보장하므로 어려움을 겪지 않아야합니다. O, Θ 및 Ω 표기법을 숙지하고 이해해야합니다. Data Structures and Algorithms 책의 복잡성 분석 섹션을 읽는 것이 좋습니다.

정렬 QuickSort 및 MergeSort와 같은 알고리즘 O (n * lgn)을 쉽게 작성할 수 있어야합니다. 최고, 최악 및 평균 사례 복잡성을 비교하고 이해합니다. 위키에서이 테이블이 매우 편리하다는 것을 알았습니다. 모든 정렬 알고리즘의 중요한 속성을 나열합니다. 다른 알고리즘은이를 개선하기 때문에 Bubble sort 또는 Insertion sort와 같은 기본 O (n ^ 2) 알고리즘을 무시하지 마십시오. 인터뷰는 기본 아이디어를 개선하는 데 관한 것이므로 정렬 알고리즘이이 프로세스에 도움이됩니다.

해시 테이블 의심 스러운 경우 해시 테이블을 생각하십시오. 그것들은 대부분의 문제에 유용하며 종종 결과를 캐싱하여 일부 문제의 시간 복잡성을 개선하는 데 도움이됩니다.

트리 기본 트리 구성, 순회 및 조작 알고리즘을 거칩니다. 이진 검색 트리를 기반으로 알고리즘을 구현할 수 있어야합니다. AVL 트리, 레드-블랙 트리, Trie, n-ary 트리 등 인터뷰에서 코드를 작성할 것으로 예상되지는 않지만 균형 잡힌 트리에 익숙해야합니다. 순서, 포스트 오더 및 사전 오더 순회에 대한 철저한 지식이 필요합니다. 이러한 순회 중 하나를 간단하게 수정하여 많은 트리 문제를 해결할 수 있습니다.

그래프 그래프는 컴퓨터 과학에서 매우 중요한 개념입니다. 그래프 (오브젝트 및 포인터, 행렬 및 인접성 목록)의 세 가지 기본 표현을 연습하고 장단점을 익히십시오. 인터뷰하는 동안 시간이 많지 않으므로 매우 복잡한 것을 기 대해서는 안됩니다. 그러나 기본 그래프 탐색 알고리즘 (DFS 및 BFS)은 필수이므로 모든 기본 표현으로 구현해야합니다. 최소 스패닝 트리 알고리즘 (Kruskal 및 Prim)뿐만 아니라 Dijkstra 또는 Floyd-Warshall 알고리즘을 구현할 수 있어야합니다. 많은 정렬 문제에 놀랍도록 매우 유용하기 때문에 토폴로지 정렬에 대해 배웁니다.

동적 프로그래밍 구현이 작기 때문에 아마도 가장 중요한 주제 일 것입니다. 35-40 분 동안 2-3 개의 동적 알고리즘을 구현할 수 있어야합니다. 이 블로그 나 웹에서 리소스를 확인할 때 인터뷰 당 최소 하나의 동적 프로그래밍 질문이 있어야한다는 것을 알게 될 것입니다.

운영 체제 프로세스, 스레드 및 동시성 문제에 대해 학습합니다. 뮤텍스, 세마포어, 모니터 및 작동 방식에 대해 알고 있어야합니다. 교착 상태 및 라이브 록이 무엇이며이를 방지하는 방법을 이해하십시오. 컨텍스트 전환, 스케줄링 등에 대해 알아보십시오.

수학 계산, 조합 및 확률에 익숙해 져야합니다.

Google 간행물 시간이 있으면 아래에 나열된 Google의 최신 간행물을 읽으십시오. 구글 파일 시스템

구글 빅 테이블

구글 맵리 듀스


관련 텍스트를 여기에 게시하고 링크 로트를 피해야합니다.
치명적인

죄송합니다.이 포럼을 처음 사용합니다. 답변을 개선했습니다
chinmay

1
"... Java ... Google에 선호하는 프로그래밍 언어"나는 몰랐습니다. Chrome에서 다른 브라우저로 3 배의 리소스를 사용하는 이유를 설명합니다. (노크 노크. 누군지? ... 긴 일시 중지 ... 자바!)
Josh Campbell

1

커리어 컵에서 지난 몇 달을 보냈다면 휴식을 취할 수 있습니다. 인터뷰에서 그 순간에 일어나는 일을 계획 할 수는 없지만 편안하게 휴식을 취하고 라운드를 지속 할 에너지를 얻습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.