[순보의 일기장]
[2010.02.23] 두번째 캠퍼스 취업 인터뷰(on campus interview)
조나단봉
2010. 2. 24. 15:10
이번에는 좀 더 기술 인터뷰(technical interview)로 유명한 회사이다. 간단하게 인터뷰어(interviewer)의 소개로 시작했다. 그런데, 뭘한다는 것인지 모르겠다. 정말 다양한 서비스 이름이 오르내렸다. 나는 그냥 '정말 많은 일을 하고 있군요.'라고 했다.
인터뷰에는 자신이 (1)이루어낸 일(achievement)에 대한 소개, 자신이 한 일 중 (2)실패한 경험(failure)과 그로부터 배운 것 등의 질문 들은 (3)'자신에 대해 소개해 보세요'라는 비교적 포괄적인 질문과 함께 자주 나온다고 한다.
오늘은 내가 프로젝트를 하면서 뭔가를 발전시킨 경험을 이야기해보란다. 이런 질문에 대비하여 억지로 모범 답안을 생각해 둔것을 말했다. 예전에 회사를 다니면서 paging query를 바꿔서 performance를 높힌 이야기를 했다. 그 당시에는 엄청 여러가지로 알아보고 며칠간 고민도 했으니 거짓말은 아니다. 'cool'인지 'great'라고 말해줬지만 미국인 식의 입에 발린 칭찬이란 것쯤은 안다.
그리고 주로 사용하는 언어는 뭐냐고 물어서 주로 C랑 Java라고 했다. C++은 요즘 다시 공부하고 있는데 차마 자주 쓴다고는 말할 수 없었다. 나의 주언어(?) php도 빼놓지 않고 말했지만, 도움이 되지는 않을 듯하다.
개발자라 이런 대화들은 형식적으로 묻는 것 같았다. 바로 본격적으로 technical question으로 들어갔다. 첫번째 문제는 linked list가 있을 때 마지막에서 5번째 노드를 찾는 것에 방법에 대해서 말해보란다. 혹시 알고 있는 문제면 좀더 재미있는 문제를 풀어보자고 했다. 그러나, 모르는 척 해야지. 고민을 하는 척하다가 포인터 2개를 놓고 하나를 먼저 5칸을 보낸 후에 나머지 포인터와 같이 이동시키다가, 첫번째 포인터가 마지막(null)에 도달하면 앞의 포인터가 가리키는 노드가 바로 마지막에서 5번째 노드이다. 그랬더니, 코드로 짜보란다. 슥삭슥삭 나는 코드를 종이에 열심히 쓰고, 인터뷰어는 노트북에 뭐라뭐라 계속 치고 있다. 지난번에 인터뷰 전에 있었던 Info session에서 자기네들이 뭐를 치더라도 개의치 말라고 했으니 개의치 않았다. 코드를 다 짜고 대략 코드를 보며 맞는지 함께 점검해본다. 1
저렇게 했더니 이제 8분이 남았단다. 문제를 더 풀어보잔다. 정렬될 정수형 배열이 있는데 회전되어(rotated) 있다. 이때 회전의 시작점(?)을 찾으라는 문제이다. 아, 전에 문제는 봤는데 풀이방법은 보지 않았던 문제다. 일단 모르면 쉬운 방법부터 말하라는 말을 어디선가 봤다. 무조건 말을 많이 해야 자기가 뭘하는지 안다고 봤다. 그래서 일단 가장 쉬운 방법은 현재 위치의 정수값이 앞 자리 값보다 작으면 그 위치가 바로 우리가 원하는 자리이고 이것은 O(n)이다. 이러면서 대략 중간에 선을 하나 그어서 배열을 두 부분으로 나눠놨다. 2
답을 모르는 문제이고 시간도 얼마 남지 않아 여유가 없다는 생각에 일단 해법이 떠오르지 않았다, 인터뷰어들은 인터뷰하는 사람들이 문제를 풀 수 있도록 도와주는 역할도 한다고 해서 힌트를 달라고 했다. 그랬더니, 내가 그어 놓은 선을 보고는, "왜 저렇게 선을 그어 놨어?"라고 했다. "나는 O(lgn) 알고리즘을 찾으려고... 아하!!!!" 그러고는 풀이가 떠올랐다. 또 코드를 작성하란다. 4분 내로 작성하란다. 압박을 주는건 아니고 다 끝내지 못해도 된다고 했지만 후다닥 코드를 써봤다. 인덱스가 같은 것(i==j)을 표현해야하는 부분에서 배열 값이 같은 것(a[i]==a[j])을 구한다고 잘못 써놓은 부분이 있기는 했지만 바로 잡기는 했다. 시간이 없어서 급하게 잘못 쓴게 명백했다. (나한테는 ㅋㅋ)
마지막에 질문 시간을 줬는데, 문제 풀다가 미리 생각했던 질문을 다 까먹었다. 그래서 정말 초딩같은 질문을 했다. 미국에서는 정말 백발 노인도 개발자를 할 수 있느냐고. 그랬더니 자기는 44세고 여전히 개발자라고 한다. 그래서 내가 그말을 들으니 다행이라고 했다만, 안하느니만 못한 질문이었다.
면접도 한 5번보면 패턴 파악이 다 되고, 하나도 안 두렵지 않을까 생각이 든다. 다만, 면접에 성공한다는 보장은 할 수 없겠지만 말이다. 남들도 이정도 문제 정도는 다 풀었을테니, 또 로또를 기대할 수 밖에. 잘 되면 좋겠다.