본문 바로가기
플랫폼 작업노트

페이스북 면접 준비하기 및 후기

by 친절한 재민 2019. 11. 13.

 페이스북은 구글, 마이크로소프트, AWS 와 함께 빅4 라고 불리울 수 있는 글로벌 IT 회사이다. IT 엔지니어라면 누구나 취업을 꿈꾸는 회사이다. 불가피하게 이직을 고민하던 시기에 페이스북의 엔지니어 포지션이 있는 것을 확인하고 일단 손을 들어 보았다. 사실 그동안 바쁘게 실무를 하며 기술과 사업의 영역을 오가고 있었기 때문에 엔지니어 포지션에서 약간 거리가 떨어진 면이 있었지만 바짝 준비하면 되리라는 생각으로 손을 들었는데 마침 싱가폴의 인사 담당자를 통해 온라인 코딩면접 제의 받게 되었다. 온라인을 지나면 온사이트에서 코딩을 하는 2개의 과정이 있다는 것도 이번에 처음 알게 되었다. 채용 사이트를 보니 동일 지원자에 대해서 3번의 도전 기회를 제공하는 것 같다. 여기도 삼세번의 개념을 신봉하는 것인가... ㅎㅎ

 최근 업데이트 한 파이썬 코딩 역량을 가지고 도전 하기로 하였다. 그런데 여기서 잘못 생각한 것은 준비 기간을 너무 짧게 잡았다. 알고리즘의 최신 트렌드를 업데이트 하기에 1주일도 안되는 시간을 잡은 것은 역시 무리수가 있었다. 파이썬으로 기본 알고리즘을 업데이트 해야겠다는 생각으로 관련 자료들을 검토 하였는데 수년 사이에 정말 많은 알고리즘 문제들이 업데이트 되어 있었다. 

https://www.facebook.com/careers/life/sample_interview_questions/?redirect_id=Af9GOhtIuJ8X6YPNEpLfbZ9E_T0aZpcGH0DXebJNIpo4qQdujvJtTpZaGuJg3zIbcJk&loop_id=Af8F1C2pjPtSFUfYjKlEBFQ2pUbLFhTEHXWvbyB1d7HbmRU6T6IDk-zYJmaaPHKvlGw

 

Facebook에 로그인 | Facebook

메뉴를 열려면 alt + / 키 조합을 누르세요

www.facebook.com

 채용 담당자가 샘플로 테스트를 해보라고 공유해준 내용들을 보니 문제에 대한 느낌은 오는 것 같다. 1시간 내의 온라인 인터뷰에서 복잡한 내용의 알고리즘을 푸는 것은 성향에 맞지 않다고 본다. 그렇기 때문에 비교적 가볍고 생각할 수 있는 문제들이 출제되는 느낌이다. 해커톤이나 코딩 대회에서 나올 만한 문제들을 인터뷰 시간안에 모두 다루기 어렵다는 것을 생각해 보면 좋을 것 같다. 

 해당 샘플 문제들을 최대한 다루는 사이트를 검토하니  leetcode 가 가장 접근하기 쉬운 것 같았다. 준비 시간이 짧기 때문에 선택과 집중으로 승부를 보는 것이 필요했다. 문제들을 리뷰하면서 4일 정도 되는 시간에 50문제 정도는 풀어낼 수 있는 수준이 된 것 같았다. 학교에서는 C 나 C++ 로만 다루던 알고리즘을 파이썬으로 다루니 생소한 면도 있지만 파이썬이 직관적으로 다루기 쉬운 면이 있어서 빠르게 습득할 수 있는 장점도 있었다.

 다음과 같은 개념들에 익숙해져야 한다. 데이터 스트럭쳐는 HashMap, LinkedList, Queue, Stacks, Trees, Heaps, Tries, Graphs 을 언급하고 있고 정렬과 검색은 QuickSort, MergeSort, BinarySearch, DFS(depth first search), BFS(breath first search) 을 언급한다. 학교에서는 선택, 버블 이런 개념도 배우지만 시간 복잡도가 높거나 불필요한 부분은 싹 빼고 언급하고 있다. 굳이 불필요한 것들을 인터뷰할 일은 없는 것이다... 해당 개념들을 명확히 이해할 수 있도록 문제를 풀고 응용할 수 있도록 하자. 

https://leetcode.com/

 

LeetCode - The World's Leading Online Programming Learning Platform

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

 코드를 풀고 복습을 하기 위해서 일일이 사이트에 들어가고 하는 작업들이 너무 번거롭기 때문에 나는 codeskulptor 같은 스크래치 도구를 통해서 빠르게 실행하고 복습할 수 있는 환경을 구성하였다. 참고로 아래 문제가 제출되었다. 

https://py3.codeskulptor.org/#user304_A1ZzbSGgIo_0.py

 

CodeSkulptor3

 

py3.codeskulptor.org

 인터뷰를 준비하는 가장 최선의 방법은 역시 열심히 준비하는 것이다. 면접 당일에는 시간에 맞추어 화상채팅을 진행하고 Coderpad 를 통해 온라인으로 화면을 공유하며 알고리즘을 논의하고 코딩을 작성한다. 참고로 프로그램을 실행할 수는 없다. 오로지 작성만 할 수 있다. 테스트란 개념은 없다. 인터뷰 담당자와 대화를 통해 문제를 풀어간다고 보면 된다. 물론 소통은 영어로 해야한다. 싱가폴 엔지니어와 진행하였다. 글로벌 회사들 면접을 위해서는 영어로 대화가 되어야 한다. 나는 현재 외국계 회사를 위해 일 하고 있기 때문에 영어로 대화하는 것에 큰 문제는 없었다. 약간의 디테일한 의사전달에서 부족함이 있기는 했지만 대부분은 소통이 잘 되었다.

 문제는 문제를 풀어내는 수준의 인터뷰가 아니라는 것이다. 문제에 대한 변칙적인 질문이 던져진다. 시간 복잡도를 줄일 수 있는 방법에 대하여 논하거나 그 알고리즘은 어떤 것들이 있는지를 알고 있어야 한다. 문제를 다른 방식으로 풀어내는 방법을 한두가지는 더 얘기해 줄 수 있어야 한다. 예상이 되는 부분이기도 했지만 짧은 시간 안에 준비하는 부분이어서 모든 문제에 대해서 깊게 생각을 미리 해보지 못했던 것이 아쉬움으로 남는다. 이럴줄 알았으면 평소에 시간 날 때에 알고리즘을 꾸준히 업데이트 해둘 것이라는 후회가 남는 부분이다. 아무튼 한두번 말문이 막혔지만  대화를 잘 이어나가고 문제의 답도 도출 하였지만 결과는 좋지 않았다.

 시험 본 당일에 인사 담당자한테 결과를 알려달려고 하였는데 바로 답을 주었다... 답변을 조금 기다릴까하는 생각이 드는 대목이었다. 너무 재촉한 느낌이 있었다. 인터뷰 때문에 시간을 끌고 준비하는 것이 실무에 정말 도움이 안된다고 생각하는 면이 있기 때문에 이런 긴장감은 빨리 털어버리고 싶은 마음으로 문의한 것인데 여하튼 결과가 좋지 않았다. 문제를 풀면서 살짝 막혔던 부분이 아무래도 감점 요인인 것 같다. 청산유수와 같이 알고리즘을 풀어내는 능숙함이 필요하다는 생각이 든다. 

 2주 정도의 시간을 주면 정말 완벽하게 준비할 수 있을 것 같다는 생각이 들지만 다시 도전할 수 있는 기회는 아껴두기로 하겠다. 엔지니어 포지션만 있는 것은 아니니까... 다만 엔지니어 포지션과 코딩 시험을 준비하시는 분들에게 경험을 공유하면 몇가지 생각해볼 것들이 있다.

1. 알고리즘 코딩에 익숙해져라. 특히 시간, 공간 복잡도는 잘 이해하고 있어야 한다. 

2. 평소에 영어로 코딩에 대해서 커뮤니케이션 할 수 있을 정도의 준비를 하라. 영어에 익숙하신 분들은 당연히 잘 하시리라 본다. 그러나 나와 같은 토종 한국인들은 영어를 평소에 준비해야 한다.

3. 알고리즘 코딩을 2가지 이상 방법으로 접근해라. 특히 시간, 공간 복잡도를 교차하는 알고리즘을 숙지해야 한다. 

 내가 생각할 때에 기본적인 경력이 있다면 2주 정도 바짝 준비하면 위의 여건들을 마련할 수 있을 것이라고 생각한다. 영어에 관련된 부분은 편차가 있겠지만 기술적인 부분만 본다면 충분히 준비할 수 있을 것 같다. 온라인 코딩은 그래도 쉬운 편이라고 생각한다 온사이트 미팅으로 넘어가면 아래 참고한 글에서와 같이 5번 정도의 인터뷰를 하는 것 같은데 여기서도 코딩과 함께 디자인에 관련된 부분도 논의해야하니 자기 분야에 기술적 백그라운드와 디자인에 대한 업데이트를 하는 것도 필요해 보인다. 

 그동안 여러 프로젝트를 통해 지인들의 추천을 받아 이직을 했었기 때문에 쉽게 이직을 했었는데 최상급의 회사들은 역시 넘어야할 벽이 있다는 것을 실감하게 된다. 기본에 더 익숙해져야하고 영어를 더 능숙하게 구사해야 좀 더 뚜렷한 성공이 보일 것이라 생각한다. 평소에 leetcode 와 같은 사이트를 통해 알고리즘을 이리 굴리고 저리 굴려서 가지고 놀 수 있는 역량이 깔려 있고 풀스택과 디자인에 대한 나름의 경험과 철학이 있다면 다시 도전 해 볼 만하다고 생각한다. 커리어를 엔지니어로 계속 업데이트 한다면...

https://medium.com/@XiaohanZeng/i-interviewed-at-five-top-companies-in-silicon-valley-in-five-days-and-luckily-got-five-job-offers-25178cf74e0f

 

I interviewed at five top companies in Silicon Valley in five days, and luckily got five job offers

Here’s how I did it and what I thought

medium.com

https://medium.com/@jubileekim/%EC%8B%A4%EB%A6%AC%EC%BD%98%EB%B0%B8%EB%A6%AC-top5-%ED%9A%8C%EC%82%AC-%ED%95%A9%EA%B2%A9-%ED%9B%84%EA%B8%B0-c50640b26eab

 

실리콘밸리 top5 회사 합격 후기

Xiaohan Zeng의 ‘I interviewed at five top companies in Silicon Valley in five days, and luckily got five job offers’ 번역본입니다. 디자이너가 아닌 개발자…

medium.com

https://steemit.com/kr/@asbear/2

 

페이스북 면접, 두번의 실패 #2 — Steemit

첫번째 글은 아래 링크에서 읽으실 수 있습니다. 올해 1월, 런던의 페이스북으로부터 지원할생각 있냐는 연락을 받았습니다. 스타트업으로 옮긴지 1년밖에 안된 시점인지라 매우 신중했지만, 가장 가고싶은… by asbear

steemit.com

 

댓글