코딩을 공부하는 당신이 취준 때 경험할, 내가 그때 알았으면 좋았을 것
아래는 <개발 읽어주는 남자> 시리즈 첫 글이자 목차
원작자의 동의를 받고 아래 글을 번역하였습니다.
부트캠프에 대해서 잘 언급되지 않는 부분은 부트캠프를 마친 후에 당신이 억 단위 연봉 개발자 자리를 찾을 때 일어나는 일들이다.
나는 2016년 7월에 Hack Reactor라는 부트캠프를 마쳤고, 지금 다니는 Radius Intelligence라는 회사의 제안을 수락하기까지 3개월의 시간이 걸렸다. 나는 291개의 회사에 지원했고, 32개의 전화 면접을 봤으며, 16개의 기술 면접, 그리고 13개의 코딩 테스트, 11개의 면대면 면접, 마지막으로 8개의 입사 제안을 받았다. 입사 제안 시 제안 연봉은 프런트엔드 개발자와 풀 스택 개발자의 역할로 미국 전역의 회사에서 한화로 6천만 원에서 1억 3천만 원 사이였다. 최종적으로 전제 입사 지원한 회사 중 2.8%가 최종 입사 제안을 했다.
아래 5가지는 내가 개발자로 구직을 시작할 때, 미리 알았더라면 좋았을 것들이다.
처음으로, 다양한 채널을 통해서(shotgun approach*) 회사에 지원했다. 나는 Indeed.com, AngelList, LinkedIn, StackOverflow, Hacker News, 회사 사이트를 통해 지원했고, 심지어 Craigslist를 통하기도 했다. (역주: shotgun approach 란 마케팅 기법을 설명하는 용어인데, 한 발이 넓게 퍼지는 총기인 샷건의 특성에 비추어 넓은 대상에게 접근하는 방식을 의미함)
전문가의 조언: easy-application repo를 이용하라.
첫 생산성은 좋지 않았다. 5% 미만의 회사들이 나에게 응답했고, 나는 블랙홀에 내 지원서를 던져 넣고 있었다. 모든 것이 바뀌기 시작한 것은 채용 담당자 출신의 지인이 구직을 위한 조언을 해주면서부터 였다. 그는 각 지원서를 실제 사람에게 직접 보내라고 제안했다. 그 대상은 발송된 이메일을 읽기만 한다면 누구든 될 수 있었다. 그때 이후로 지원서를 보낼 때는 항상 링크드인에서 회사를 검색하고, 개발팀이나 인사팀의 사람에게 직접 이메일을 보냈다.
작은 대부분의 회사나 고위직 임원(C-level executives)은 대체로 “이름@회사 도메인” 형태의 이메일을 쓴다.(역주 : CEO, CFO, CPO 등 앞에 C로 시작하는 직급을 C-level executives라고 부른다) 조금 더 큰 회사라면 “이름.성@회사 도메인” 정도가 되겠다. 이 이메일을 확인하기 위해서 나는 Rapportive라는 서비스를 이용해서 그들의 SNS 계정과 확인하는 작업을 거쳤다. 결과는 놀라웠는데, 150개 넘게 보낸 이메일 중에서 회신율은 무려 22%에 달했다. 게다가 실제 사람들의 피드백을 듣는 것은 매우 고무적인 일이었다. 놀랍게도 CEO나 CTO가 직접 답장을 했고, 가끔은 그들이 직접 나를 인터뷰하기도 했다.
당신은 개발을 조금 알기만 하면 되는 IT회사가 아닌 곳에서 면접을 보게 될지도 모른다. (저자에 따르면 Level 1) 이곳의 인터뷰에서는 자바스크립트의 아주 잡다한 지식만 물어볼 거다. 그리고 구글이나 페이스북 같은 곳에서 면접관이 자료구조나 알고리즘에 대해 물어보는 면접도 경험하게 될 거다. (저자에 따르면 Level 9) 나는 낮은 레벨의 면접을 일찍 보고, 높은 레벨의 면접을 나중에 볼 수 있도록 전략적으로 순서를 짰다. 처음에는 경험을 쌓고, 자신감을 기르고, 덜 힘든 인터뷰를 통해 확실한 입사 제안을 얻어냈다. 내가 더 많은 경험을 할수록 나는 “레벨업”을 할 것이고, 그럼 더 높은 기준을 요구하는 회사의 면접에 통과할 수 있는 실력을 얻게 될 것이다. 아래의 그래프를 보면 내가 몇 주차에 어느 정도의 연봉을 제안받았는지 볼 수 있다.
나는 더 어려운 질문에 대답했고, 더 높은 연봉을 얻어냈다. 그리고 결국 입사할 수 있었다.
반드시 기억할 것: 쉬운 인터뷰는 일찍 잡고, 어려운 인터뷰는 나중에 잡을 것
이런 말 하고 싶지는 않지만, 어떤 관점에서 볼 때라도 가장 중요한 것은 공부하고 준비하는 것이다. 왜냐고? 왜냐면 당신이 면접 질문에 대답을 하지 않으면 어떠한 입사 제안도 받을 수 없기 때문이다. 사람들은 당신이 면접에 준비가 되었다고 생각하지 않으면 당신을 추천해주지도 않을 거다. Hack Reactor 부트캠프가 끝나고, 내 약점은 자료구조와 알고리즘이었다. Triplebyte의 연구 결과(A study by Triplebyte)에 따르면 부트캠프 수료자들이 컴퓨터 공학과 졸업생에 비해 이 자료구조와 알고리즘 부분이 약하다는 사실을 잘 보여준다. 그래서 나는 공부했고, 연습했다. 매일 나는 하루 종일 정렬 알고리즘을 공부했다. 다른 때는 인터넷이 어떻게 작동하는지 이해하기 위해 노력했다. 만약 한 개념이 충분히 이해되지 않으면 이해가 될 때까지 유튜브 비디오와 스택오버플로우를 뒤졌다.
내가 찾은 공부하기 좋은 자료들은 아래와 같다.
- InterviewCake: 자료구조와 알고리즘에 대한 가장 좋아하는 자료다. 이 사이트는 해법을 단계별로 나눠서 설명해주고 있어서, 코드 인터뷰에 좋은 준비 방법이 되어준다. (원문 “a great alternative to Cracking the Code Interview (CTCI)”, 역주 : <Cracking the Code Interview>라는 책이 있습니다.) 유일한 아쉬운 점은 문제 숫자가 적다는 거다.
- HiredInTech’s System Design Section: 시스템 디자인 인터뷰에 대한 좋은 가이드를 제공해준다.
- Coderust: 만약 <Cracking the Code Interview>를 공부하고 싶지 않다면 이 사이트를 추천한다. $49이면 거의 모든 언어의 솔루션을 움직이는 그래프를 보며 공부할 수 있다.
- Reddit’s How to Prepare for Tech Interviews: 나는 항상 이것을 통해 내가 얼마나 인터뷰에 준비되었는지를 확인한다.
- Front End Interview Questions: 엄청나게 많은 프런트엔드 관련 질문들
- Leetcode: 알고리즘과 자료구조에 대한 자료를 얻을 수 있다. 회사 별로 검색이 가능한데, 예를 들어 구글이나 우버가 일반적으로 하는 질문 등을 찾을 수 있다.
반드시 기억할 것: 너무 많은 준비라는 건 세상에 없다
한 산업에서 새롭게 시작하는 것은 힘들다. 그리고 당신이 충분히 면접에 준비되어있지 않다면, 최대한 바르게 행동해야 한다. 성공을 위해서 스스로의 대변인이 되는 것이 필요하다.
Hack Reactor 부트캠프에서, 나는 경험 부족을 숨기는 방법을 훈련받았다. 면접 때 자기소개를 할 때, 우리는 의도적으로 부트캠프에서의 교육을 빼고 말했다. 왜냐고? 그렇지 않다면 회사는 바로 우리를 신입 개발자의 역할을 부여하거나 혹은 충분한 경험이 없다는 꼬리표를 붙일 것이 틀림없기 때문이다. 한 스타트업과의 인터뷰에서 내가 부트캠프를 마쳤다는 사실을 밝히자마자 인터뷰는 끝이 나버렸다. 한 회사는 이 사실을 이용해서 신입 개발자에 준하는 6천만 원의 연봉을 제안하기도 했다. 게다가 회사에 내가 그 일을 해낼 수 있다는 사실을 납득시켜야 했다. 그리고 동시에 당신이 스스로 그 일을 할 수 있다는 사실도 납득해야 했다. 당신은 할 수 있다. 당신이 개발을 좋아한다는 사실을 기억해라. 그리고 React와 Nodejs로 당신이 무엇을 만들었는지도 기억해라. 그리고 자바스크립트와 당신이 배웠던 다른 언어에 대한 깊은 이해를 어떻게 표현할 것인지에 집중해라. 오직 이것만이 당신이 그 일을 얻는 것이 합당하다는 것을 입증할 수 있다.
인터뷰는 고용주와 피고용인이 서로가 맞는지를 확인하는 쌍방향 활동이다. 고용주로 하여금 당신을 고용하게 하는 것이 당신의 일이라면, 반대로 그들 역시 당신이 그들의 회사에 일하게끔 설득하는 것이 그들의 일이다. 결코 면접에 들어가서 당신이 그 자리가 얼마나 좋은 자리인지 질문하는 것에 대해서 부끄러워하지 마라. 나는 한 회사에 아주 손톱만큼의 관심이라도 있다면 계속 이야기를 나눴다. 나는 나를 초대한 그 어떤 회사와의 면접에도 응했다. 나는 면접을 통해 계속 질문했고, 개발팀 조직, 기술, 그리고 그들이 사용하는 도구, 회사가 직면한 어려운 점, 시스템 설계에 대해서 계속 지식을 흡수해나갔다.
전문가의 조언: 절대로 스스로를 염가 판매하지 마라. 그리고 이것은 양쪽 모두 서로를 파는 자리라는 것을 기억해라.
어느 날엔 친구들과 공부하기도 했고, 다른 날엔 카페에 가서 혼자 공부하기도 했다. Hack Reactor 부트캠프 사람들과 만나서 어울리기도 했고. 매주 나는 커리어 상담사와 연락해서 나의 진행 상황에 대해 나눴다. 이 과정을 진행하는 동안 지쳐버리기 쉽기 때문에, 잘 먹고, 잘 자고, 운동도 열심히 해야 한다. 외로울 거다. 비슷한 시기를 지나고 있는 친구들과 함께 시간을 보내라.
반드시 기억할 것: 긴 경주를 준비하고 스스로를 잘 챙겨라
- 진짜 사람에게 연락할 것
- 작게 시작하고, 점차 발전시켜 나갈 것
- 미래에 그것이 필요하다는 생각으로 공부할 것
- 좋은 인상을 남길 것
- 이것은 단거리가 아니라 마라톤이라는 것을 기억할 것
취업 준비 과정이 끝이 없어 보일지도 모른다. 그러나 당신은 반드시 이뤄낼 것이다. 계속해서 시간을 쏟고, 지원서를 보내고, 그리고 당신을 아껴줘라. 이 모든 것이 결국에는 보상받을 거다.
비전공자 출신 개발자에게 회사 다니면서 코딩 배워보고 싶으신가요?