전자공학을 전공한 나는 비교적 늦게 알고리즘 코딩 인터뷰를 접하게 됐다.
대학을 막 졸업했을 때였다. 동아리 선배가 링크 하나를 보냈는데, 심심하면 나보고 풀어보라고 했다. 처음 접한 알고리즘 문제는 내가 공대에서 접했던 문제들과는 매우 달랐다.
보통 공대 수업에선 어려운 수식을 이끌어 내고 이 수식을 이용해 주어진 문제 또는 상황에서의 분석 또는 이해를 요구한다. 이런 문제 풀이 방식에 너무 익숙해서였을까, 알고리즘 코딩 문제는 게 정말 어색하게 느껴졌다. 선배가 공유해 준 문제가 무엇이었는지 정확히 기억나진 않지만, 새벽까지 정답을 제출하지 못하고 얼굴이 빨개진 채로 잠들었던 게 기억난다. 다행히도 다음 날 제출할 수 있었지만, 도무지 이걸 왜 하는지 이해하지 못했다.
시간이 흘러 나는 미국에서 취직을 준비하기 시작했다. 한국과는 다른 채용 방식에 어려움을 겪었는데, 그중에서 가장 어려웠던 건 코딩 인터뷰였다. 가고 싶던 거의 모든 회사가 몇 차례의 코딩 인터뷰를 요구했고, 준비가 안 됐던 나는 당연하게도 계속 떨어졌다. 매일 코딩 인터뷰를 연습했지만, 코딩 인터뷰 플랫폼에 있는 수백 개의 풀어야 할 알고리즘 문제와 기발한 최적화 솔루션을 보면 한숨만 나왔다. 변화가 필요했다.
나는 우선 하나의 프로그래밍 언어의 이해도를 높이기로 했다. 매일 코딩 인터뷰 문제 푸는 걸 잠시 멈췄다. 대신 학교 수업에서 과제로 제출한 내 코드와 솔루션 속 코드를 비교해 봤다. 익숙하지 않은 문법들을 많이 볼 수 있었고, 과제로 제출했던 문제의 코드를 다시 작성해 보면 특정 언어의 기초 문법의 이해도를 높일 수 있었다. 내가 생각을 프로그래밍 언어로 구현할 수 있을 때, 코딩을 즐기고 있는 나 자신을 발견할 수 있었다. 여전히 중급, 고급 문제는 풀지 못했지만, 이젠 초급 문제에 내가 작성한 코드에 생각의 흐름이 언뜻 보이는 것 같아서 뿌듯했다. 심화 문제를 계속 푸는 대신 쉬운 문제를 다양한 방법으로 풀어보고 설명할 수 있도록 연습했다.
많은 사람들의 도움으로 운이 좋게 미국에서 직장을 얻고 개발자로 일할 수 있게 됐고, 이젠 왜 코딩 인터뷰를 바라보는 시각도 많이 바뀌었다. 많은 문제를 풀고 연습하여, 최적화된 솔루션을 제시할 수 있으면 좋다. 하지만 너무 조급해하지 말자. 상대방에게 내 생각을 차분하게 설명해 보자. 설명한 내용을 깔끔하게 구현하고 면접관을 납득시키면 인터뷰에서 좋은 인상을 줄 수 있지 않을까.
'배움 > 개발' 카테고리의 다른 글
[30대 개발자] 프로그래밍을 배우는 다양한 방법들 (0) | 2023.01.08 |
---|