Coding Interview Preparation

방학때는 꽤나 이룬게 많다. TA나 IS는 둘째치고, 개강하면 왠지 코딩공부를 할 시간이 없을 것 같아서 목표는 리트코드 300문제였는데 지금까지 70문제 정도 풀었다. 하루 평균 두문제 정도. 아주 더딘 속도이다. hard나 medium위주로, 그리고 한국에서 가져온 책으로 풀었는데 뭐랄까, 최근에서야 좀 속도가 붙었다고 해야할까.

어차피 하루에 막 몰아서 10문제 이상씩 푸는것은 별 의미가 없다고 본다. 하나를 풀더라도 제대로 풀어야지. 개강하고 나서, 본격적인 Apply가 아마 4-5월 정도 될 것 같다. 그럼 아직 개강해도 적어도 3개월 정도는 여유가 있다. 이력서는 거의 수정 다 했고, 포폴 사이트도 일차적으로 오픈했다. 포폴은 정리중이지만 남은 시간에 충분히 다 완성할 듯 싶다. 코딩은? 3년 전에 그렇게 준비를 했었지만, 지금은 정말 기초부터 다시 쌓고 튼튼하게 만들고 있다.

그런데 요즘 드는 생각은 정말 이런 ‘기초’작업이 필요한가 이다. 뭐랄까, 알고리즘 교재를 처음부터 봐서 지식을 쌓느냐 그런것? 방학이 시작되고 나서 내가 가장 처음 본 것이 자료구조 책이었긴 했다. 정말 나 스스로가 AVL Tree같은것을 from scratch부터 만들 수 있는가, 그리고 그게 필요한가 같은것들. 이런건 사실 파이선 heapq소스만 봐도 C++로 잘 짜여있는데. 시간이 정말 무한하거나, 학부생이었다면 더 공부를 하는건데 (그렇지 못해서 너무 아쉽다.) 실제로 취업을 해서 회사에 나가보면 그런 자료구조를 “활용” 하는 곳은 많지만 이를 정말 속깊게 “튜닝” 하는 경우가 많을까? 내 경험상으로는 크게 많지 않다.

사실 코딩인터뷰에서 DP를 제외하면 대부분이 자료구조와 이에 대한 응용이라고 봐도 과언이 아니다. 게다가 개인적인 경험이지만 Phone Interview는 대부분 그리 어렵지 않게 나온다. 다만 정말 순발력과 깔끔한 설명이 가장 중요한 것 같다. Onsite는 이제 좀 심도있는 질문이 오고가는 것 같다. 시스템 디자인도 그렇고. 결국 기본적인 몇몇 알고리즘만 공부하고 나면, 빈도수가 높은 것들을 보는편이 훨씬 낫다는 생각이다.

남은 3개월동안 어차피 학교 개강하면 좀 바쁘기도 할 것이고, 그래도 하루평균 3문제 정도는 풀고싶다. 욕심일까, 그건 그렇다 치고 이제 Mock Interview를 좀 계속 돌려야 한다는 생각이다. 마침 학교에서 최근 구글에 합격한 친구와 얘기할 기회가 있었다. 내가 Mock Interview상대가 되어달라 하니 흔쾌히 수락. 사실 우리과는 애들이 생각보다 잘 share를 안한다. 글쎄 개강하면 모르겠는데 코로나라서 다들 떨어져 있어서 그런지 아니면 PM구하는 애들이라서 그런것인지 ㅎㅎ

뭐 꼭 우리과가 아니더라도 Pramp, Interviewing.io등 사이트는 많다. 물론 3년전에 Phone Screening은 한 30번 정도 봤긴 했지만.. 그래도 그중에서 10개 정도만 패스했으니, 그 rate를 늘리려면 결국 준비밖에 없다. 토플때도 느꼈지만 평소에 얼마나 준비되었느냐가 답이다. 계속해서 내 머릿속의 사고를 설명하고, 피드백 받지 않으면 공부한게 사실상 다 소용이 없다. 여하튼 9일정도 남은 방학, 쓰기에 따라 달린 것 같다. 우선순위대로, 차근차근만.