프로그래밍/프로그래밍 문제 해결

구글 검색을 하다보면 주어지는 구글 입사기회

김재택 2022. 3. 1. 22:15

  구글에서 개발과 관련된 검색을 열심히 하다보면 구글이 입사기회를 준다는 사실을 알고 계셨나요? 저도 뜬소문으로만 들어 봤었는데요. 최근에 운이 좋게 직접 경험해볼 수 있는 기회가 생겨서 한 번 참여해봤습니다.

Google Foo Bar

  이 채용 절차의 공식 명칭은 "Google Foo Bar" 입니다. "Foobar Challenge"로도 많이 불립니다. 구글 검색 기록을 바탕으로, 구글이 원하는 유형의 사람이라고 내부적으로 판단하게되면 구글 화면이 갈라지면서 아래와 같은 방식으로 시작됩니다. 이 챌린지를 진행하다보면 지인을 추천할 수 있는 초대장을 주는데, 이 추천 코드를 통해서도 접근할 수 있게 됩니다. 아쉽게도 제가 직접 구글의 간택을 받은 것은 아니고, 지인의 추천 코드를 통해 접근권한을 얻었습니다.

지인이 직접 마주한 챌린지 초대 화면

  권한을 가진 채로 푸바 챌린지 페이지에 접속하게되면 터미널이 참가자를 반겨줍니다. help명령어를 통해 기본적인 가이드를 얻을 수 있고, 가이드를 따라가게되면 문제없이 챌린지를 진행할 수 있습니다. 챌린지는 기본적으로 여타의 코딩테스트와 비슷한 형식의 문제를 푸는 것이 주요 골자입니다. 귀여운 스토리를 따라가며 문제가 주어지기 때문에 동화책의 주인공이 되어 모험을 하는 기분이 들기도 합니다.

 

  푸바 챌린지에는 총 5개의 레벨이 존재합니다. 저는 현재 레벨 3까지 완료하였는데요, 레벨마다 문제 수가 달라서 3레벨까지는 각각 1, 2, 3개의 문제를 풀어야 레벨을 완료할 수 있습니다. 문제는 참가자가 요청할 때마다 주어지고, 제한시간이 있습니다. 레벨 3까지는 전부 168시간이었습니다. 사용가능한 언어는 Python, Java입니다. 저는 파이썬을 사용했습니다.

 

  레벨2를 완료하면 앞서 말씀 드렸던 추천코드를 획득할 수 있습니다. 또, 레벨3을 완료하면 구글 채용 담당자에게 본인의 연락처와 이력서, 포트폴리오 등을 보낼 수 있는 기회가 주어집니다. 적절한 포지션이 있다면 리크루터가 연락을 준다고 합니다.

 

로그인 하지 않으면 이런 화면만 뜰 뿐입니다.

미리 알면 좋은 것들

1. 개인 계정 사용

  접속 권한이 구글 계정에 귀속되므로, 회사 계정과 같이 본인의 의사와 관계없이 접근권한이 사라질 수 있는 계정이 아니라 개인 계정에 사용하는 편이 좋습니다. 실제로 챌린지를 끝내지 못했는데 퇴사를 하게 되었다고 다른 계정에 옮길 수 없냐는 질문글이 인터넷에 있기도 합니다.

2. 터미널 환경 친숙도

  유닉스 계열의 OS에서 사용하는 터미널 환경에 익숙하면 좋습니다. 실제로 가상의 터미널 환경에서 작업이 이루어지기 때문입니다.

3. 시간제한 고려

  ​시간제한이 있으니, 바빠서 못푸는 일이 없도록 제한시간이 임박한 시점이 여유로울 때 시작하면 좋을 것 같습니다. 예를들면 일주일 시간제한이라면 일요일 오후에 시작해서 문제를 살펴보고, 주중에 틈틈히 고민한 뒤 그다음 토요일부터 열심히 문제를 풀어서 제출하는 것이죠.​

4. 이력서

  푸바 챌린지를 진짜 입사 기회로 사용하고 싶으시다면, 이력서와 포트폴리오를 미리 준비하세요. 레벨3을 완료하고 나면, 구글 리크루터에게 본인의 정보를 넘길 것인지 물어옵니다. 이 때, 이름과 연락처 뿐 아니라 나를 설명할 수 있는 기타 자료들을 링크로 첨부할 수 있습니다. 예를 들면 링크드인 프로필, 깃헙 프로필, 이력서 주소 등을요. 이런것들을 좀 더 잘 준비해둔다면 확률을 조금이라도 더 높일 수 있지 않을까요?

 

현재 저는 3단계까지 완료했습니다.

소감 (약 스포 주의)

  여러분의 즐거운 도전을 방해하지 않기 위해 어떤 문제가 나왔는지는 적지 않겠지만, 어떤 개념들을 활용했는지는 나올 수 있으니 스포를 원치 않으시면 여기까지만 읽어주세요. 그리고 제게 코드를 전해준 지인과 이야기해보니 문제의 순서와 내용은 참가자 별로 다를 수 있는 것 같습니다. 때문에 아래의 내용이 항상 적용된다고 볼 수는 없습니다.

 

  레벨 3까지는 그렇게 크게 복잡한 알고리즘을 요구하지는 않았습니다. DFS, DP 정도의 기본적인 내용들로 해결할 수 있는 문제들이었습니다. 저는 최근에 LeetCode의 daily challenge를 통해 문제풀이를 연습하고 있는데요. 이 부분에 많은 도움이 되었던 것 같습니다.

 

  그러나 약간의 수학적 지식은 필요할 수 있습니다. 저의 경우 간단한 정수론적인 아이디어가 도움이 된 문제도 있고, 선형대수적인 지식이 필수적으로 요구되는 문제도 있었습니다. 이 부분들은 수업시간에 배웠던 수학적인 지식들과, Project Euler 문제들을 풀었던 것이 많은 도움이 되었습니다.

 

  특히 선형대수가 필요했던 문제를 푸는 과정이 참 즐거웠습니다. 사실 파이썬을 사용하는 데는 파이썬의 풍부한 라이브러리 생태계가 한 몫을 하는만큼 선형대수에 등장하는 개념들을 실제로 구현할 일은 없다고 봐도 무방할 겁니다. Numpy를 쓰면 되니까요. 하지만 외부 라이브러리를 사용할 수 없는 챌린지의 특성상, 넘파이에서 쉽게쉽게 가져다 쓰던 것들을 구현해야했는데요. 이 과정에서 나름대로 깔끔하게 해당 내용들을 구현하려고 노력하면서 소소한 즐거움을 느꼈습니다.

 

  레벨4와 5의 경우에는 지금 당장 도전하기보다는 조금 여유롭게 접근할 생각입니다. 아직 제 문제해결 능력이 많이 부족하다고 느꼈거든요. 올 한 해 동안 Project Euler와 LeetCode 등을 통해 문제해결 능력을 조금 더 키운 뒤, 연말 쯤 다시 한 번 도전해 보겠습니다.