작년 여름 미국 실리콘 밸리 A사에서 SWE 인턴으로 3개월 근무 후 23년 5월 시작일자로 정규직 오퍼를 받았지만 최근 미국의 빅 텤 기업 대규모 정리해고 사태로 인해 미국의 거시경제빔 (^^) 을 직격타로 맞고 다시 취준을 하고 있는 요즘이다. FAANG + 트위터, 마소에서만 4만명이 하루아침에 해고되었기에 그만큼 신입 개발자 취준이 엄청 치열해진 상황이다. 하지만 멘탈을 잡고 1월부터 무지성 지원을 시작했으며, 슬슬 면접이 잡히고 있는 요즘이다.
휴학 2년 + 대학교 3,4학년을 포함해 이제는 취준생 N년차가 되어버렸기에 누구보다 기술면접 속성 준비(벼락치기)에 짬이 찼다고 생각한다. 어떤 플랫폼에서 어떤 방법으로 코딩테스트와 기술 면접과 코딩테스트를 준비할 수 있는지 공유해보도록 하겠다.
* 해당 방법은 이미 풀어본 문제를 빠르게 리뷰하고 개념을 리프레시하는 팁이 중점적이기에, 이미 자료구조와 기본 알고리즘에 대한 기초가 있는 분들, 미국 기업 기술 면접을 앞두고 있는 분들께 추천드린다.
Blind 75 N회독은 선택이 아닌 필수
Blind 75는 블라인드에서 선정된 Leetcode 문제 75선으로, 기업 면접에서 출제 빈도수가 가장 높은 문제 리스트다.
Grind 75라는 웹 사이트에서 쉽게 문제들을 풀어볼 수 있다.
이런식으로 준비 기간, 일주일에 투자할 수 있는 시간, 난이도, 자료구조 등을 customize 할 수 있다. 기술 면접이 잡히면 보통 짧으면 1주일, 길면 3주일 정도의 준비 기간이 있었던 것 같다. 특히나 요즘 같은 때에는 headcount가 빨리 차기 때문에 면접에서 좋은 결과가 있어도 오퍼를 못받는 경우가 엄청 많다. 가능한 날짜 중에 가장 이른 날짜로 면접을 잡는 것을 추천한다. 면접이 잡힌 날부터 Blind 75에 들어가서 닥치는대로 문제를 풀기 시작한다.
준비 기간이 촉박하기 때문에, 평소 알고리즘 문제를 공부할 때처럼 풀면 안되고, 속성으로 개념들을 리뷰하는 방법을 따라야 한다.
알고리즘 문제 빠르고 효과적으로 리뷰하기
한 문제 당 10분의 타이머를 설정해놓고, 내 Approach를 IDE내에 마크다운으로 정리해본다. 어떤 자료구조와 알고리즘을 사용할지 적어보고, 이 때의 Time Complexity와 메모리도 계산한다.
그 후, 바로 구현에 들어가지 않고 Solution 탭에 들어간다. 리트코드 프리미엄을 사용한다면 오피셜 솔루션도 볼 수 있지만, Upvote순으로 정렬 해놓은 사람들의 풀이로도 충분하다. 솔루션을 확인하는것이 필수적인 이유는, 문제가 요구하는 방식의 풀이를 놓칠 수도 있고, 항상 나보다 효율적인 approach로 문제를 푸는 사람들이 있기 때문이다. 지금 당장에 내가 이 문제를 풀 수 있어도, approach가 틀렸다면 말짱 꽝이다. 인터뷰어는 내가 이 문제를 풀 수 있는지 궁금해 하는 것이 아니라, 어떤 방식으로 접근하는지를 더 중점적으로 본다.
이런식으로 다양한 테스트 케이스, 에지 케이스와 함께 풀이가 적혀있다. 이런 솔루션들을 읽어보면, 면접에서 어떤 식으로 인터뷰어한테 내 접근을 설명할지 감을 잡을 수 있다. 이런 솔루션들을 읽어보고, 내가 100% 이해할 수 있는 접근을 선택해서 풀이를 외워(?)보자.
다시 IDE로 돌아와서 내가 이해한 접근 방식으로 솔루션을 정리해보고 코드로 구현한다.
여기서 한 단계 더 나아가고 싶다면, 문제 별로 나만의 풀이를 마크다운으로 정리한다. 나중에 다시 봤을 때, 아 이 문제 이렇게 풀었었지?가 바로 떠오를 수 있을 정도로 간단하고 직관적으로 정리한다.
아무래도 짧은 기간 내에 많은 문제를 풀다보면 풀이랑 접근 방법이 뒤섞이기 마련이다. 이 방법을 찾고 peace of mind를 찾았다 (J의 고질병)
엑셀보다는 더 간단하게 내 프로그래스를 트래킹 하고 싶다면 Neetcode를 매우 추천한다!
이런식으로 한 문제당 한시간 이상 쓰지 않도록 한다.
또 너무 한 자료구조에 꽂히지 않도록 주의한다. 오늘은 Array에서 두문제를 풀었다면, DP 문제도 두개를 푼다. 이런식으로 병렬적으로 문제를 풀다보면 다양한 자료구조 개념을 지속적으로 리프레쉬 할 수 있고, 시간이 촉박해 자료구조 개념 몇개를 통으로 리뷰하지 못하고 인터뷰에 들어가게 되는 불상사를 면할 수 있다.
Leetcode Tagged Questions 상위 20문제 풀어보기
미국의 큰 기업들은 리트코드에서 코딩 면접 기출 문제를 볼 수 있다. 리트코드 프리미엄에서 제공하는 feature지만, 구글 검색으로도 충분히 리스트를 뽑아올 수 있다.
이런 태그된 문제들도 상위 20개 정도는 풀어보는 것이 좋다. 기업마다 내는 문제들의 특성이 다르기 때문에 이 리스트를 리뷰하고 가는 것도 매우 중요하다. 하루에 Blind 75 문제 4개 + 기업 태그 문제 4개 이렇게 풀어보는 것을 추천한다.
이 외의 자잘한 팁들
면접시 사용되는 코딩 플랫폼 숙지
보통 면접 때 사용되는 코딩 플랫폼은 Codility, Hackerrank, CoderPad이다. 면접 안내 이메일에서 알려줄 때도 있고, 간단한 구글링을 해보면 해당 기업은 어떤 플랫폼을 사용하는지 찾아볼 수 있다. 플랫폼마다 IDE도 다르게 생겼고, 코드를 컴파일 하는 방법도 다르기 때문에 미리 해당 플랫폼을 써보는 것을 추천한다.
Glassdoor 면접 후기 찾아보기
Glassdoor에서 사람들의 다양한 면접후기를 볼 수 있다. 면접이 어떤 식으로 진행되는지, 주로 어떤 종류의 알고리즘/자료구조를 물어보는지 감을 잡을 수 있다.
LinkedIn에서 인터뷰어 찾아보기
인터뷰어의 정보를 알 수 있다면 링크드인에서 스토킹 해본다(ㅋ). 엄청 중요한 팁은 아니지만, 나 같은 경우에는 링크드인에서 그 사람을 찾아보고 그 사람의 백그라운드는 숙지하고 들어간다. 스몰토크 거리가 생길 수도 있다.
참고하면 좋은 알고리즘 & 자료구조 칫싯
면접은 봐도봐도 떨리는건 매한가지인 것 같다. 각박한 취준시장이지만 꾸준히 하다보면 좋은 결과가 있을 것이다 :)
'Insights > 미국 근무 일지' 카테고리의 다른 글
샌프란시스코 2023 테크크런치 Disrupt 행사 참가 후기 + 몇 가지 인사이트 (0) | 2023.10.20 |
---|---|
2021년 하반기 회고 - 복학, 미국 생활, 인턴 취준과 취업성공(!) (1) | 2022.02.06 |