서론

개발자로서 코딩 인터뷰를 공부하는것은 여러 차원에서 이점이 있다. 우선 다른 회사로 이직을 준비한다면 면접 상황에서 큰 도움이 될 것이고, 이직을 준비하지 않는다면 개인의 코딩 지식을 더 단단히 다져나가는데 도움이 될 것이다. 개발의 범위는 너무나 광대하고 끊임없이 공부할 분야들이 새로 생겨나기 때문에 무엇부터 공부해야할지 막막하기 마련이다. 이런 경우에도 하나의 길잡이로서 개발자의 공부 방향을 잡아줄 수 있는 좋은 역할이 될 것이다. 해당 포스팅은 코딩인터뷰 완전 분석이라는 서적을 읽고 개인적으로 정리한 글이기 때문에 대부분의 내용이 참조 되었다.



면접방식은 어떠한가?


  1. 알고리즘 테스트
    • 분석능력:
      최적화를 얼마나 했는지?
      문제푸는데 얼마의 시간이 소요 되었는지?
      디자인/설계를 할 때에 문제의 쳬게를 제대로 세우고 다양한 방법에 대한 장단점을 생각해 보았는지
    • 코딩능력:
      알고리즘을 적절한 코드로 표현할 수 있는지?
      깔끔하게 짰는지?
      에러에 대해 생각해보았는지?
  2. 직무 면접
    • 기술적 지식 및 컴퓨터 과학 기본:
      컴퓨터 과학 및 관련 기술에 대한 기본기가 출중한지?
    • 경험:
      기술적 결정을 해본 경험이 있는지?
      도전적인 프로젝트를 해본 적이 있는지?
      진취성, 결단성, 그 외 다른 중요한 요소를 내보인 적이 있는지?
    • 문화 및 의사소통 능력:
      성격과 가치가 회사와 잘 맞는지, 의사소통은 잘 되는지

이러한 면접 평가가 필요한 이유는 ?

  1. 기초적인 자료구조와 알고리즘 지식은 유용하다. 트리,그래프, 리스트, 정렬, 다양한 지식은 쓸 곳이 은근히 많다. 자료구조와 알고리즘 없이 문제풀이 능력을 측정할 수 있는 문제가 거의 없기 때문에 이들을 바탕으로 많이 생성되어 있다.

  2. 화이트보드 손코딩 ? 화이트 보드의 장점은 큰 그림을 그리는데 도움을 준다. 자잘한 컴파일 오류를 신경쓰기 보다는 핵심에만 집중하면 된다.

  3. 어떤 문제를 출제하는가? 최근 기출을 보는 것은 크게 도움이 안될 수도 있다. 면접관에 따라 질문지가 완전히 다르기 때문이다. 알고리즘 문제는 어느 회사나 전체적으로 비슷하다. -> 핵심적인 알고리즘 유형만 공부해 놓으면 회사별로 준비하지 않더라도 좋은 결과를 낼 수 있다.

면접 프로세스는 어떠한가?

  1. 사전 면접 (screening interview) 보통 전화로 진행될 경우가 많고 코딩이나 알고리즘 관련 질문들이 나오는 경우가 많고, 생각보다 난이도도 까다로운 편이다.

  2. 대면 면접 보통 세번에서 6번 정도의 대면 면접이 실시될 수 있다. 보통 기술적인 질문들이나 코딩,알고리즘, 디자인/설계, 경력 등에 대해 물어보는 편이다.



책에서는 계속해서 각 글로벌IT기업별로 대비해야하는 특징들에 대해 다루고 있고, 이력서 등을 쓰는 요령에 대해서도 설명이 나와있다. 이 부분은 실제 이직을 앞둔 사람들이 보면 유용할 것으로 보인다. 다음에 이어서는 IT기술과 관련된 내용들을 하나씩 정리해보도록 한다.



참고문헌


코딩인터뷰 완전 분석 - 게일 라크만 맥도웰