원본: https://writing.pupius.co.uk/whiteboarding-4df873dbba2e
Whiteboarding
만약 당신이 개발자 면접을 본다고 하면 화이트보드에 코딩하는 것을 피하기는 어려울 것이다. 이러한 관행에 대한 비판은 있지만 구글, 페이스북, MS, 아마존 같은 큰 기업들이 사용하고 있는 방법이다.
이 포스팅에서는 이러한 인터뷰 방식이 옳은지에 대한 언급은 하지 않겠다.(나는 이 방법이 면접자들이 문제를 해결하는 능력을 볼 수 있는 좋은 방법이라고 생각한다.) 하지만 테크기업들이 인터뷰하는 방식이라는 점에서 피할 수 있는 몇가지 일반적인 함정에 대해서 얘기해보겠다.
배경
이야기에 앞서, 나는 6년간 구글에서 일했고 200번의 면접을 했다. 구글 면접은 어렵기로 악명이 높으며, 면접 피드백에 코드가 없으면 채용위원회에서 면접관에게 연락한다.
나는 가치있는 업적을 이룬 사람들을 인터뷰했다. 그리고 또한 자격을 갖추지 못한 사람들도 인터뷰했다. 항상 가장 힘든 유형은 그 중간 어디쯤에 있는 사람들을 평가하는 것이다.
그리고 올해 초 나는 직업을 바꾸고 몇몇 실리콘밸리의 기업이나 스타트업에서 면접을 보았다. 그래서 채용과정의 대상이 될 기회도 갖게 되었다.
기술회사들은 채용의 false-postiive 를 피하기 위해 적당한 지원자를 채용을 하지 않는 실수를 하게 되는 것을 감수한다.
침착하라
침착하고, 냉정하고 가능한 깔끔하게 쓰도록 노력해라. 당신의 집중력에 도움이 될 것이고 면접관이 코드를 이해하는데 도움이 될 것이다.
질문하라
대부분 면접 질문들은 의도적으로 모호하다. 면접관은 명확하지 않은 문제에 대해 어떻게 다루고 가정하는지 보고 싶어한다. 알고리즘을 구현한다면 제약사항이 무엇인가? 메모리? 실행시간? 입력크기? 기타 등등
질문에 답하면서 당신이 무얼 하고 있는지 생각의 과정은 어떤지 알 수 있게 얘기하라. 면접의 목적은 정답도 있지만 정답만큼이나 당신이 어떻게 정답을 이끌어내는지의 과정을 보는 것이다.
Code how you’d normally code
내가 봤던 가장 일반적인 실수는 면접자들이 그들 정답에서 길을 잃어버리는 것이다. 실제상황에서 50라인 이상의 함수를 쓰기 않기를 바라며 면접에서 그러지 마라. 복사, 붙여넣기를 쓸 수 없고, 면접의 긴장속에서 흐름을 놓치기 쉽다.
Check your work
끝났다고 생각이 들면, 했던 것을 체크하라.
대부분의 에러가 마무리 단계에서 일어난다. 좋은 방법은 몇가지 샘플 입력을 돌려보는 것이다. 케이스 하나를 놓치거나 에러 하나를 발견해도 걱정하지 마라 면접관은 이를 고치기 위해 드는 시간을 아까워 하지 않는다.
그리고 엣지케이스나 일반적이지 않은 입력에 대해서도 체크하라. 유닛테스트를 어떻게 할 것인지 생각해보고 적어봐라.
Practice
인터뷰를 준비할 때 알고리즘을 다시 살펴보고 최신 기술과 모범사례를 읽어볼 것이다. 이런 코드를 손으로 직접 적어보는 것을 추천한다.
JQuery helper 나 메서드를 가장 잘하는 언어의 표준 라이브러리로 구현해보는 것을 생각해보라. manhole cover에 대해서 언급하는 사이트를 무시하는 샘플 문제를 검색해보라 (역: 이 문장은 무슨 뜻인지 모르겠음)
자기 자신이 준비가 되었다고 생각하면, 코드가 실제로 동작하는지 실행해보라. 동작하지 않으면 다시 학습하라.
Research
아마도 당신은 면접을 보는 회사에서 일하고 싶어할 것이다. 그러니 그들이 하는 일에 관심을 갖고 열정적으로 보이도록 노력하라.
당신은 의심의 여지없이 그 회사의 제품에 대한 질문을 받을 것이고 "왜 여기에서 일하고 싶나?" 라는 질문도 받을 것이다. 좋은 대답을 하기는 힘들겠지만 회사에 대한 조사와 질문에 대한 대답을 준비하라.
Have fun
무엇보다, 즐기려고 하라. 호기심을 갖고 도전하라. 당신은 이러한 과정에서 더 많은 것을 얻을 것이고 더 잘 알게 될것이다. 면접에서는 당신이 능력이 있는지 보는 것 뿐만 아니라 당신과 같이 일하고 싶은지도 같이 보고 있다.
이러한 것이 명백하고 단순할수도 있다. 그리고 면접자의 가능성에 영향을 미치는 것이 부당하다고 느껴질 수도 있다. 하지만 전혀 코딩을 못하는 사람과 화이트보드에서만 코딩을 못하는 사람을 구분해내기는 어렵다. 그러니 최선을 다해 자신에게 유리한 점을 돋보이게하고 화이트보드가 방해가 되지 않도록하라.
