기술 면접은 스트레스받는 경험이다. 하지만 준비할 수 있다. 무작정 많은 LeetCode 문제를 푸는 것보다 전략적으로 준비하는 것이 효과적이다.
코딩 인터뷰의 핵심은 문제 해결 과정을 보여주는 것이다. 정답을 바로 말하는 것보다 생각을 말로 설명하는 것이 중요하다. 면접관은 당신이 어떻게 생각하는지 알고 싶어한다.
준비 전략
자료구조와 알고리즘 기초를 탄탄히 하자. 배열, 해시맵, 트리, 그래프, 동적 프로그래밍이 기본이다. 패턴을 익히자. 투 포인터, 슬라이딩 윈도우, BFS/DFS 같은 일반적인 패턴을 알면 새로운 문제에 적용할 수 있다.
시스템 설계 면접도 중요하다. 특히 시니어 포지션에서. 확장성, 데이터 파티셔닝, 캐싱, 로드 밸런싱 개념을 이해하자. 실제 서비스가 어떻게 구축되는지 공부하자.
면접 당일
문제를 받으면 바로 코딩하지 말자. 먼저 문제를 이해하고, 예제를 확인하고, 엣지 케이스를 생각하자. 접근 방법을 설명하고 면접관의 동의를 얻은 후 코딩을 시작하자.
막히면 도움을 요청해도 된다. 완전히 모르겠다고 포기하는 것보다 힌트를 요청하는 것이 낫다. 협업 능력도 평가 항목이다. 혼자 끙끙대다 시간을 다 쓰는 것보다 커뮤니케이션 하면서 진행하자.
실패해도 괜찮다
면접은 확률 게임이다. 운도 작용한다. 하나의 실패가 당신의 능력을 정의하지 않는다. 피드백을 요청하고, 부족한 부분을 보완하고, 다시 도전하자. 연습이 쌓이면 결과도 좋아진다.