합격은 몰라도 탈락시키는 공식은 정해져 있다.
부트캠프의 끝자락, 팀 프로젝트를 진행하던 시기에 적극적으로 다양한 기업들에 이력서를 넣기 시작했다. 가능하면 과정이 끝나기 전에 취업을 하고 싶었고, 당시에는 무슨 뽕에 취해서였는지 무엇이든 할 수 있다는 자신감과 패기도 넘쳤다.
실제로 이력서를 잘 꾸며서 많이 뿌린 덕분에 여러 기업에서 면접을 볼 기회가 왔는데, 막상 면접을 시작하니 넘치던 패기는 면접관의 날카로운 질문과 비판에 비참하게 무너졌다. 그리고 여러 번 면접에서 고배를 마시고 피드백을 받으면서, 내가 면접에서 탈락하는 패턴을 발견하게 되었다. 많은 노력 끝에 이 문제의 패턴들을 개선시키고 면접에 임했더니, 최종 면접까지 가면서 오퍼를 받을 수 있게 되었다.
그리고 이때 깨달았다. 면접에 합격을 하는 이유는 다양하지만, 탈락을 시키는 공식은 정해져 있다는 것을. 그래서 이번 글에서는 부트캠프 개발자들이 면접에서 탈락하는 패턴 세 가지와 이를 해결하는 방법을 제시하려 한다.
개발 경력이 현업에서 1년도 채 되지 않았는데, 이력서에 AWS, Docker, Kubernetes, Elasticsearch 같은 부트캠프에서 한번 만져본 스택들이 잔뜩 적혀있다. 그리고 막상 면접관이 그 스택에 대해 물어보기 시작하면 기초적인 수준 외에는 대답을 하지 못한다. 나 같은 경우 어떤 스택을 선택한 구체적인 이유가 있냐는 질문에 멘털이 나갔던 기억이 있다.
> 핵심 기술만 밀고 가자
개발자들은 이론만 알고 있는 것은 안다고 하지 않고, 들어만 봤다 정도로 표현한다. 차라리 모르면 모른다고 하는 게 개발분야에서는 이득이 된다. 본인이 자신 있게 대답할 수 있는 핵심 기술, 즉 개발을 하면서 가장 고군분투 경험이 있는 스택들을 이력서에 포함시키자. 많아 봤자 하나에서 둘 정도 나올 것이다. 그리고 차라리 면접관이 다른 스택은 아는 게 없냐고 물어보면 프로젝트에서 만져봤던 스택들을 나누면 오히려 득이 될 가능성이 높다. 회사들이 주니어 개발자에게 기대하는 것은 '한 가지라도 잘하는가'이다. 잘할 수 있는 것 하나에 집중하자.
개발회사에 면접을 보러 가는데 Big-O, 알고리즘, 자료구조에 대한 지식을 전혀 갖추지 않고 면접에 나온다. 그리고 면접관이 시나리오를 주고 문제를 어떻게 해결하겠냐고 질문하면 그냥 머리에 떠오르는 대로 대답을 하거나 대답을 아예 못한다. 부끄러운 이야기지만 나의 경우 특정 시나리오에 스택(Stack)이 적합한지 큐(Queue)가 적합한지까지 힌트까지 줬는데도 대답을 못했던 기억이 있다.
> 개발자 커리어에서 CS 지식은 끊임없이 갈고닦아야 한다. 부트캠프 졸업생도 예외는 없다.
Big-O, 알고리즘, 자료구조의 개념은 소프트웨어 개발에 필요한 기초 지식이다. 단기간에 완벽하게 이해할 수 없더라도 개념정리와 간단한 패턴들은 발견할 수 있어야 한다. 상대적으로 교육기간이 짧은 부트캠프 졸업생에게는 CS 지식을 물어보는 이유는, '개발에 진심이냐'라는 질문과도 비슷하다. 참고로 현업 개발자들도 실력이 녹슬지 않기 위해 주기적으로 CS 지식 공부를 한다.
어디서부터 시작해야 할지 모르겠다면, 게일 라크만 맥도웰의 '코딩인터뷰 완전분석'을 구매해서 읽어보는 것을 추천한다. 코딩테스트를 보는 기업에 지원했다면 최소한 LeetCode 75 문제를 풀어본 뒤 면접을 보자.
부트캠프에서 배운 것 외에 개인적으로 시간을 투자하는 분야가 없다.
면접관이 개인적으로 관심을 가지고 공부하고 있는 분야가 있냐고 하면 자신 있게 대답하지 못한다. 나 역시 '이제까지 부트캠프 수업도 겨우 머리에 채웠는데 무슨 공부를 한단 말이지?'라고 생각을 했었다.
> 개발자는 스스로 찾아서 공부하는 훈련이 필요하다.
부트캠프는 취업 연계를 목표로 하기 때문에, 현업에서 인기가 좋은 스택들을 선별하여 커리큘럼에 담는다. 단시간에 집중적으로 필요한 기술들을 배우는 것이 장점이라면, 수강생이 주체적으로 공부를 하지 못한다는 단점이 있다. 현업에서 개발자가 되기 위해서는 알아서 새로운 기술들을 시도하고 공부하는 습관이 필요하다. 그리고 면접에서 통과하기 위해서는 자신의 이런 관심과 노력을 증명할 수 있어야 한다.
시작하기 막막하다면 위에 언급한 CS 기술들로 시작해 보는 것도 좋다. 아니면 테크 기업에서 운영하는 블로그들을 찾아가서 읽어보자. 대표적으로 네이버 D2, 우아한 형제들 기술블로그, 당근마켓 팀블로그 등이 있다. 2주일 이상 매일 시간투자를 하고 배워보겠다는 생각으로 접근을 해보자.
아, 머리로만 공부한 내용은 잘 기억하지 못하니 이왕이면 GitHub에 커밋하여 잔디까지 심자.
면접 보러 오라고 한 첫 회사에서 신랄하게 까이고 돌아왔던 기억이 난다. 그리고 연속으로 면접에서 탈락을 하니 자존감이 바닥을 쳤다. 그렇지만 면접 끝에 피드백과 조언을 해주는 고마운 분들이 있었고, 실패를 여러 번 한 덕분에 탈락한 이유를 발견할 수 있었다. 그래서 합격보다는 탈락하는 패턴이라는 주제로 접근해 보았다.
끝으로 탈락하지 않으면 합격에 가깝다는 이야기를 전하고 싶다. 개발자 면접에서 장점을 보이는 것도 중요하지만, 허점이 보이지 않는 것이 더 중요하다. 개발자 면접을 준비하고 있다면, 내가 경험했던 실패 패턴들을 잘 살펴보고 참고하여 개발자 취업에 꼭 성공할 수 있기를 바란다.
제 글을 읽어주셔서 감사합니다.
글의 내용이 도움이 되었다면 지인들에게 공유를 부탁드리고, 이견이나 개선점이 있으시면 댓글 부탁드립니다.