요약
- 면접 과정
- 분석, 코딩, 기술적 지식, 컴퓨터 과학 기본, 경험, 문화, 의사소통 능력을 봄.
- 부정 오류는 괜찮다.
- 실력이 좋은 사람을 원한다.
- 실력이 좋지 않은 사람을 뽑는 것을 두려워 함.
- 문제풀이 능력이 좋은 사람을 원함
- 기초적인 자료구조 알고리즘 지식은 유용함
- 회사별 면접 과정
- 마이크로 소프트
- 아마존
- 구글
- 애플
- 페이스북
- 기업가 정신을 가진 개발자를 원함
- 어떤 언어든 확장 가능한 시스템을 만들어나갈 개발자를 원함
- 팰런티어
메모
1. 면접 과정
- 다음의 과정을 통해 성과가 평가될 것임
- 분석 능력
- 코딩 능력
- 기술적 지식 및 컴퓨터 과학 기본
- 경험
- 문화와 얼마나 맞는지
- 의사 소통 능력
- 이 중, 어디에 더 비중을 둬야 하는지는 문제, 면접관, 직무, 팀, 회사에 따라 다름
- 일반적인 알고리즘 문제를 풀 때는 처음 세 가지 능력이 중요함.
면접의 방식은 왜 이래야 하는가
- 면접에 대한 지원자들의 불평은 아래와 같음.
- 많은 수의 훌륭한 지원자들은 이런 방식의 면접을 잘 하지 못함
- 이미 나온 문제는 해법을 찾아볼 수 있음.
- 실무에서 이진 탐색 트리와 같은 자료구조를 쓸 일이 거의 없음. 만약 필요하다면 당연히 공부할 것임
- 화이트보드 코딩은 너무 인위적인 환경실무에서 화이트보드에 코딩할 일은 확실히 없음.
- 위 내용이 전부는 아니더라도 어떤 직무에 한해서는 이러한 방식의 면접이 필요함.
- 왜 이러한 문제가 출제되는지 아는 것이 필요함.
- 면접관의 사고 방식을 조금이나마 이해할 수 있기 때문
부정 오류(false negative)도 괜찮다.
- 실제로 참인 것을 거짓으로 잘못 판정하는 오류(부정 오류)가 더 낫다. (ex : 면접은 못봤지만, 실력이 뛰어난 지원자 → 몇 명을 놓치는 것은 받아 들일 수 있다)
- 실제로 거짓인데 참으로 잘못 판정하는게 더 걱정 스럽기 때문 (ex: 면접은 잘 봤지만 실제 업무 능력은 떨어지는 경우)
문제풀이는 꽤 가치있는 능력이다.
- 어려운 문제를 능히 풀어낼 수 있다면, 최적 알고리즘을 개발하는 능력이 뛰어날 가능성이 큼
- 머리가 뛰어나다고 생각할 수 있고, 회사에서 가치있는 인재임
기초적인 자료구조와 알고리즘 지식은 유용함.
- 많은 면접관은 기본적인 컴퓨터 과학 지식이 실제로 유용하다고 주장함.
- 트리, 그래프, 리스트, 정렬, 다양한 지식에 대해 주기적으로 이해해둘 필요가 있음.
- 또 다른 면접관은 자료구조와 알고리즘을 지원자를 평가하기에 괜찮은 ‘프록시’ 라고 함.
- 자료구조와 알고리즘을 안다는 것은 컴퓨터 과학 관련 전공을 통해 폭넓은 기술적 지식을 습득했든, 스스로 공부했다는 의미로 받아들일 수 있음.
- 자료구조, 알고리즘 없이 문제풀이 능력을 측정할 수 있는 문제를 만들기 어려움.
화이트보드가 무엇에 집중해야 하는지 알려줌
- 화이트보드는 하나의 큰 그림을 그리는데 도움을 줌.
- 오직 코드의 ‘핵심’만 신경쓰면 됨.
- 실제로 문제를 풀어내는 함수 부분이 가장 중요함.
- 그렇다고 의사 코드를 면접관이 좋아한다는 건 아님 → 에러가 적은 코드를 적는 걸 좋아함.
어떤 문제를 출제하는가
- 대다수의 회사는 전사 차원에서 면접관이 반드시 던져야 할 질문 목록을 갖고 있진 않음.
- 그래서 ‘최근 구글 면접 문제’ 라는 질문은 의미가 없음.
- 회사마다 차이점이 있음.
- 어떤 회사는 알고리즘 문제에 초점을 두고, 어떤 회사는 지식에 바탕을 둔 질문을 좋아함.
- 물론, 알고리즘 문제는 근본적으로 동일함.
모든 것은 상대적이다.
- 면접관은 같은 문제를 풀었던 다른 지원자들의 역량과 상대적인 비교를 통해 평가를 내림.
- 다른 사람과 비교함으로써 지원자의 역량을 가늠함.
- 따라서, 어려운 문제를 받았다고 낙담할 필요가 없음.
2. 장막 너머
- 면접 대상자로 선정되면 보통 사전 면접을 함.
- 사전 면접이라고 간단하게 생각하면 곤란함.
- 코딩이나 알고리즘 관련 질문들이 나오는 경우도 많음.
- 실제 대면 면접은 주로 코딩, 알고리즘, 디자인/설계, 경력에 대해 물어봄.
- 면접 후, 대부분의 회사는 일주일 안에 지원자에게 연락을 함.
- 연락이 없다고 부정적으로 생각할 필요는 없음.
마이크로소프트 면접
- 똑똑한 사람을 원함.
- 구인 담당자와 짧은 면접을 봄
- 면접관들이 일하는 곳에서 면접을 봄
반드시 대비할 질문
아마존 면접
- 두 번의 전화 사전 면접부터 시작함.
- 면접에서는 공유 문서 편집기로 간단한 코드를 작성해 보라고 함.
- 화이트보드에 코드를 작성하고 코딩 외 다른 기술을 평가하기도 함.
반드시 대비할 질문
- 아마존은 규모 확장성에 신경을 많이씀.
- 분산 시스템 경험이 있어야만 이런 질문에 답할 수 있는 건 아님.
- 객체 지향 디자인에 대해 질문을 많이 하는 경향이 있음.
구글 면접
- 구글 면접은 마이크로소프트나 아마존 면접과 크게 다르지 않음.
- 전화 사전 면접에서 기술적 문제가 까다롭게 나올 것에 대비해야 함.
- 공유 문서 편집기를 이용해서 코딩을 해보라고 시키기도 함.
- 대면 면접에서는 다수의 면접관과 여러 면접을 진행하게 됨.
- 각 면접은 독립적이며 전부 백지 상태에서 시작한다고 믿어도 좋음.
반드시 대비할 질문
- 규모 확장성이 가능한 시스템을 어떻게 설계하느냐의 문제에 관심이 많음.
- 분석(알고리즘) 능력에 큰 비중을 두고 있음.
애플 면접
- 먼저 전화를 통한 사전 면접이 진행됨.
- 면접에서 화이트보드에 코딩할 준비를 해야 함.
- 자신의 생각을 명료하게 전달할 수 있어야 함.
반드시 대비할 질문
- 어떤 팀과 면접을 보게 될지 알고 있다면 그 팀에서 만든 제품들에 대해 공부하길 바람
- 어떤 점이 좋고, 개선해야 될 점은 무엇이고 구체적인 제안을 함으로써 회사에 대한 열정을 어필할 수 있음.
페이스북 면접
- 한두 번의 전화 사전 면접을 거침
- 기술적인 질문 or 온라인 문서 편집기로 코딩을 함
- 이후, 코딩 및 알고리즘 관련된 숙제를 할 수 있음.
- 대면 면접에서는 엔지니어와 채용관리자도 함께 참석함.
- ‘행동(Jedi)’ 면접 : 페이스북 환경에 잘 적응할 수 있는지 평가하는 면접
- 페이스북 문화와 가치가 잘 맞는가?
- 무엇에 흥미를 느끼는가?
- 어떻게 난관을 극복하는가?
- 페이스북을 왜좋아하는가?
- 에 대한 대답을 준비할 것
- 페이스북은 열정적인 사람을 원함
- 이 면접에서 코딩 문제를 질문 받을 수도 있음.
- ‘코딩과 알고리즘(Ninja)’ 면접 : 전형적인 코딩과 알고리즘에 관한 면접
- 문제는 난해하게 설계되어 있음.
- 프로그램 언어에 제약은 없음.
- ‘디자인/설계(Pirate)’ 면접 : 백엔드 엔지니어는 디자인에 관련된 질문을 받을 수도 있음.
- 프론트, 혹은 다른 분야는 해당 분야와 관련된 디자인 질문을 받을 수 있음.
- Ninja 2번, Jedi 한 번 면접을 봄.
- 경력자는 Pirate 면접도 봄.
반드시 대비할 질문
- 젊은 기업인 만큼, 개발자가 기업가 정신을 갖기를 원함.
- 면접을 볼 때 무엇이든 빠르게 결과를 볼 수 있도록 만들기를 좋아한다는 점을 강조해야 함.
- 언어 선택에 구애 받지 않고 확장 가능한 시스템을 함께 만들어갈 수 있는 사람인지 알고 싶어 함.
팰런티어 면접
- ‘통합’ 방식의 면접과 달리, 특정 팀을 위한 면접을 봄.
- 두번의 전화 사전 면접으로 시작함.
- 30 ~ 45분간 기술적인 질문을 함.
- 알고리즘 최적화 및 코딩 능력을 평가하기 위해 HackerRank 코딩 숙제를 제시할 수 있음.
- 대면면접에서는 과거 경력, 관련 분야 지식, 자료구조와 알고리즘, 디자인 내용을 다룸.
- 팰런티어 제품을 시연해 볼 가능성도 있음.
- 괜찮은 질문을 던지고 회사에 대한 열정을 내비치자.
반드시 대비할 질문
- 팰런티어는 뛰어난 사람을 뽑고 싶어 함.
- 구글이나 다른 회사에 비해 문제가 더 어렵다고 말하기도 함.
- 면접관이 어려운 문제를 선호함.
- 핵심 자료구조와 알고리즘을 완벽히 공부한 뒤, 어려운 알고리즘 문제를 집중적으로 풀어봐야 함.
- 백엔드 면접은 시스템 디자인도 훑어봐야 함.
댓글