[코딩인터뷰 완전분석] 개발자 면접 전에 준비해야 하는 것들

이 글은 게일 라크만 맥도웰 저자의 ‘코딩인터뷰 완전분석’을 읽으며, 깨달은 사실과 내용을 정리하는 글입니다.
자세한 내용이 궁금하다면 http://www.yes24.com/Product/Goods/44305533 에서 책을 구매하시면 좋겠습니다.


면접을 성공적으로 통과하기 위해서는 적어도 1년 전부터 준비해야한다는 것을 깨달았습니다.

면접을 본격적으로 준비하기 위해선, 먼저 이력서를 제출하고 합격해야할 것입니다.

‘코딩인터뷰 완전분석’에서 다루는, 면접 전 준비 절차에 대해서 알아보겠습니다.



이력서에 넣을 적절한 경험 쌓기

면접을 위한 첫 단추는 훌륭한 경험을 쌓는 것입니다.

현재 상황에 따라, 추천되는 경험을 정리해봤습니다.


학생인 경우

  • 큰 규모의 프로젝트 수업을 들으라
    • 실전과 가까운 경험을 쌓는 것이 중요합니다.
  • 인턴 자리를 알아보라
    • 빅테크 기업들의 인턴 프로그램도 좋지만, 스타트업에서의 기회가 더 클수도 있습니다.
  • 뭔가를 하라
    • 개인 프로젝트를 하거나, 해커톤, 오픈 소스 등에 참여하는 것이 권장됩니다.
    • 다만 어떤 것을 하느냐가 중요한 것이 아니라, 코딩을 한다는 자체가 중요합니다.


더 높은 수준의 기업으로 이직을 희망하는 경우

  • 코딩을 많이 할 수 있는 업무를 하라
  • 저녁과 주말을 활용하라
    • 개인 프로젝트를 진행해보세요.
    • 재미 삼아 만들어 본 경험이 있다면, 면접관에게 깊은 인상을 심어줄 수 있습니다.



탄탄한 이력서 작성하기

이력서에 들어갈 적절한 경험을 얻었다면, 어떤 식으로 이력서를 작성하면 좋을지 정리해보겠습니다.


적절한 이력서 길이

미국에서는 경력이 십 년 미만인 경우, 이력서를 한 페이지로 만들도록 권장한다고 합니다.

한국의 여러 시니어 개발자 인터뷰 영상과 아티클을 참고했을 때, 한국에서도 예외는 아닌 것 같습니다.

그렇다면 왜 그래야 할까요?

  • 구인 담당자는 이력서를 볼 때, 기껏해야 10초 정도 쓴다.
    • 인상적인 항목만 적혀 있다면 반드시 볼 것이다.
  • 어떤 사람은 긴 이력서를 아예 무시하기도 한다.


인상적인 글의 구조

자신이 달성하거나 성취한 내용을 반드시 이력서에 적습니다.

이때 읽는 사람에게 강한 인상을 줄 수 있는 문장 구조는 아래와 같습니다.

”Y를 구현해서 (WHAT) X를 성취했고 (RESULT), 그 결과 Z를 이루었다. (EFFECT)”

책에서 나온 예시를 볼까요?

  • “분산 캐시를 구현해서 오브젝트 렌더링 시간을 75% 줄였고, 그 결과 로그인 시간을 10% 경감할 수 있었다.”
  • “windiff에 기반한 새로운 비교 알고리즘을 구현한 결과, 평균 비교 정확도를 1.2에서 1.5로 개선했다.”

즉, WHAT(무엇을 했는지) + RESULT(어떤 성과를 이뤘는지) + EFFECT(그 효과로 무엇이 있었는지) 를 나타내는 것이 중요합니다.

개인적으로는 짧게나마 HOW(어떻게 했는지) 도 들어갈 수 있다면 좋겠다고 생각합니다.

그리고 결과는 측정 가능한 형태로 제시하는 것 역시 중요합니다. (수치 등)


프로젝트 경험

프로젝트 경험은 이력서에 2~4개 정도 넣는 것이 좋습니다.

들어갈 내용으로는 무슨 프로젝트인지 , 어떤 언어와 기술을 사용했는지 가 중요합니다.

추가적으로 어떤 업무를 수행했는지 도 들어가야겠습니다.

수업 프로젝트보단 자주성을 나타낼 수 있는 주체적으로 진행한 프로젝트가 좋습니다.


기술 나열

MS 오피스같은 도구 소프트웨어는 기재하지 않는 것이 좋습니다.

그렇게 큰 의미가 없기 때문이죠.

이클립스나 VSCode 같은 IDE 도 마찬가지입니다!

이것들이 배우기 어려운지 생각해보면, 왜 빼야하는지 알 수 있습니다.


프로그래밍 언어같은 경우에는 신입의 경우 가장 자신있는 언어 1~2개가 적당하다고 봅니다.

책에서는 활용가능한 언어를 모두 적고, 그 수준을 (전문가, 능숙, 경험있음 등으로) 나타내라고 하지만, 신입의 경우 그 수준을 판단하기 어렵습니다.



면접까지의 로드맵

책에서 나온 로드맵을 한번 살펴보겠습니다.

이 로드맵을 활용해서, 자신에게 필요한 과정을 수행하면 딱 좋겠습니다.


면접까지 1년 이상 남은 경우

  1. 학교나 회사 외적으로 프로젝트를 진행하라
  2. 다양한 프로그래밍 언어를 공부하라
  3. 인맥을 확대하라
  4. 어떤 경험을 했는지 보여주는 웹사이트나 포트폴리오를 구성하라
  5. 학생이라면 인턴으로 일할 기회나 대규모 프로젝트 기회를 잡아라
  6. 직장인이라면 얻을 게 많은 프로젝트에 집중하라


면접까지 3~12개월 남은 경우

  1. 프로젝트에 계속 참여하라, 새로운 프로젝트에 참여하기 위해 애쓰라
  2. 이력서 초안을 만들고 다른 사람들과 함께 검토하라
  3. 응시할 회사의 목록을 만들라
  4. ‘코딩인터뷰 완전분석’ 책의 1~130쪽을 읽으면서 면접 준비를 시작하라
  5. big-O 개념을 완전히 숙달하라
  6. 자료구조와 알고리즘을 처음부터 다시 구현하라
  7. 친구와 팀을 짜서 가상 면접 연습을 하라


면접까지 1~3개월 남은 경우

  1. 핵심 개념에 대한 이해도를 높일 수 있는 작은 프로젝트를 수행하라
  2. 가상 면접을 몇 차례 진행하라
  3. 면접 문제들을 계속 연습하라
  4. 문제를 풀다 생긴 실수 목록을 만들라


면접까지 4주 전

  1. 면접 대비표를 작성하라 (‘코딩인터뷰 완전분석’ 50페이지)
  2. 이력서를 재검토하고 수정하라
  3. 회사에 실제로 지원하라
  4. ‘코딩인터뷰 완전분석’ 책의 1~130쪽을 다시 읽으라 (특히 ‘행동문제’와 ‘기술적 문제’ 챕터)
  5. 가상 면접을 한번 더 하라
  6. 계속 문제를 연습하고, 코드를 종이에 작성하는 훈련을 하라


면접까지 1주 전

  1. 최종 가상 면접을 하라
  2. 면접 대비표를 보고 시나리오를 리허설하라 (‘코딩인터뷰 완전분석’ 50페이지)
  3. 책의 ‘알고리즘 접근법’을 다시 읽으라 (‘코딩인터뷰 완전분석’ 100페이지)
  4. big-O 부분을 다시 읽으라 (‘코딩인터뷰 완전분석’ 59페이지)
  5. 면접 문제를 계속 연습하라


면접 전날

  1. 면접 대비표에 적은 모든 시나리오를 리허설하라
  2. 계속 면접 문제를 실습하고, 실수 목록을 재검토하라



정리하며…

이번 글에서 개발자가 면접을 준비할 때 권장되는 절차에 대해 알아봤습니다.

저자가 미국을 기준으로 작성한 것이지만, 분명히 우리나라에도 적용 가능한 이야기가 많을 것 같습니다.

자신에게 필요한 내용을 적용해서 모두 면접까지 성공할 수 있으면 좋겠습니다!