티스토리 뷰

728x90
SMALL

https://zublog.wordpress.com/2011/12/29/%EA%B5%AC%EA%B8%80%EC%9D%B4-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EB%A5%BC-%EB%BD%91%EB%8A%94-%EB%B2%95/

 

구글이 프로그래머를 뽑는 법…

<이 글은 제 개인적인 의견으로 구글의 공식적인 입장을 대변하지 않습니다.> 입사하기 전 인터뷰(면접)를 할 때부터 구글은 뭔가 다른 회사라는 것을 알 수 있었습니다. 10년 쯤 전이긴 하지만,

zublog.wordpress.com

  • integer operation으로 log를 구현하려면 어떻게 하는가? 이경우 총 연산의 수는?
  • 두개의 sort된 행렬을 merge하려면 어떻게 하는가? 이 경우 complexity는 어떻게 되는가?
  • C++ class의 static variable은 어떤 의미가 있고 어떻게 쓰이는가?

4. On-site 인터뷰: 직접 구글 사무실에 가서 5시간 정도 인터뷰를 합니다. 중간에 인터뷰에 포함 안되는 점심시간이 있지만, 거의 쉴 새 없이 엄청난 체력전으로 치러 집니다. 모든 인터뷰는 technical한 내용만 합니다. 5명의 면접관이 한 명씩 면접실에 들어와 한 사람당 45분가량 인터뷰를 합니다. 인터뷰 내용은 전화면접과 비슷한데 programming의 기초에 대한 질문들을 간단히 물어 보고는 위의 행렬 merge 같은 문제를 냅니다. 문제를 풀면 제시한 해답의 complexity를 물어 보고는 이를 칠판에다 손으로 써서 구현하라고 합니다.

그런데 인터뷰의 핵심은 사실 정답을 맞추느냐를 보는 것이 아니라 문제를 푸는 과정을 보는 것입니다. 처음부터 잘 define되지 않은 문제를 주어 면접자의 문제를 정의하는 능력을 보고 또 면접자가 헤메고 있으면 면접관이 옆에서 도와 주며 푸는 과정을 보고, 해답을 제시하면 이보다 더 optimal한 방법은 없을지 찾아 보라고 합니다. 사실 정답이 하나가 아닌 문제들이기 때문에 이렇게 intensive하게, interactive하게 인터뷰를 하면 면접자의 실력이 드러날 수 밖에 없습니다.

구글은 사실 잘나가는 회사이기 때문에 구글의 philosophy는 긴가민가하는 사람은 안 뽑는게 낫다입니다. 못하는 사람을 뽑는 것보다는 잘하는 사람을 놓치는 게 낫다는 거죠 (사람을 해고하기 가장 좋은 시기는 채용하기 전이라는 격언도 있습니다 ^^). 하지만(!) 면접에서 한 번 떨어 진다고 하더라도 6개월만 지나면 다시 지원할 수 있도록 기회를 열어 주고 또 다시 지원하기를 권합니다. 저도 사실 인터뷰에서 떨어진 경험이 있습니다 ^^;

제 경험으로는 한국의 회사들이 구글처럼 공들여 사람을 뽑지는 않는 것 같습니다. 구글 수준의 엘리트들을 뽑는 것은 아니더라도 기본적인 data structure에 대한 이해가 있는지를 알아 보는 것은 중요하고 또 눈 앞에서 칠판에다가 코딩을 해 보라고 하는 것 역시 아주 중요합니다. (미국의) 작은 회사에서 인터뷰를 해 본 어떤 사람이 스펙이 꽤 좋은 사람 중에서도 아주 기본적인 수열 문제조차도 제대로 코딩하지 못하는 경우를 많이 봤다고 합니다. 물론 이를 위해서는 면접관의 능력 역시 중요하죠. 그래서 구글에서는 면접관에 대한 training 역시 따로 합니다.

[뽑은 이후…]

구글의 좋은 점은 좋은 사람을 뽑은 후에 이들이 잘 성장할 수 있는 기회를 많이 준다는 것입니다. 프로그래밍에 대한 training도 많고 여러가지 교육의 기회를 줍니다. 또 유명한 80-20을 통해 자신이 하고싶은 일에 20%의 시간을 투자할 수 있게 해 줍니다.

제가 한국에 있는 회사에서 작성한 코드를 한 번 본 적이 있습니다. 그런데 코딩에 대한 회사차원의 체계가 전혀 없었고 프로그래머는 아니었어도 전산과 출신 직원이 작성한 코드였지는 간단한 optimization에 대한 이해도 없이.  지금 학교에서의 coding 교육이 어떤지는 잘 모르지만, 사실 깔끔한 코딩은 회사에서 체계적인 교육 및 시스템으로 뒷바침하지 않으면 나오기가 쉽지 않습니다.

한가지 더, 한국은 코딩에 대한 인식이 낮고 또 모든 분야에서 어느 정도 경력이 쌓이면 관리직으로 물러나거나 시스템 디자인에만 관여하는 것이 일반적이라 (개인적으로는 아주 큰 문제라고 생각합니다) 소프트웨어 회사에서 좋은 코드를 만들기 위한 체계적인 노력이 부족합니다. 한국회사에서보다는 미국회사에서 일반적인 미국회사에서보다는 구글에서 60세된 프로그래머를 더 쉽게 찾아 볼 수 있습니다.

앞으로 회사를 다니며 더 많이 배우겠지만… 사람을 공들여 뽑고 또 뽑은 사람에게 발전의 기회를 제공할 때에, 또 전산학의 기초와 좋은 코딩을 중요하게 생각할 때에 좋은 소프트웨어가 나온다는 생각입니다.

https://medium.com/@_chyotsuba/%EA%B5%AC%EA%B8%80-%EC%9D%B8%ED%84%B0%EB%B7%B0%EB%A5%BC-%EB%B3%B4%EB%A0%A4%EA%B3%A0-8%EA%B0%9C%EC%9B%94%EA%B0%84-%ED%92%80%ED%83%80%EC%9E%84%EC%9C%BC%EB%A1%9C-%EA%B3%B5%EB%B6%80%ED%95%9C-%EC%9D%B4%EC%9C%A0-d6ce5faff5a7

 

구글 인터뷰를 보려고 8개월간 풀타임으로 공부한 이유

사실이다. 수천 시간을 책을 읽고 코드를 작성하고 컴퓨터 공학 강좌를 보는 데 썼고, 이 모든 건 구글 소프트웨어 엔지니어 인터뷰를 위한 준비였다.

medium.com

https://github.com/jwasham/coding-interview-university

 

GitHub - jwasham/coding-interview-university: A complete computer science study plan to become a software engineer.

A complete computer science study plan to become a software engineer. - GitHub - jwasham/coding-interview-university: A complete computer science study plan to become a software engineer.

github.com

728x90
LIST

'취준은 끝이 없지 > 코딩테스트 준비' 카테고리의 다른 글

2022-03-15 코테  (0) 2022.03.15
코테 공부 시작  (0) 2022.03.15