“개발자에게 알고리즘 공부가 필요한가?”라는 질문은 익명 커뮤니티의 단골 토론 주제다. 누구는 현업에서 그리 필요하지는 않다고 말하고 누구는 기본기(基本技)로서 소양을 갖춰야 한다고 말한다. 다만 누구도 부인할 수 없는 점은 소위 FAANG(페이스북, 아마존, 애플, 넷플릭스, 구글)과 네카라(네이버, 카카오, 라인)에 개발자로 입사하고 싶다면, 알고리즘 인터뷰는 선택이 아닌 필수라는 사실이다. 여러분이 주니어라면 더더욱 그렇다.
국내에 개발자 코딩 테스트가 처음 도입된 시기는 대략 2005년 무렵이다. 저자와 함께 다음커뮤니케이션에 재직하던 당시, 마이크로소프트와 야후! 등의 개발자 인터뷰 모델을 기반으로 알고리즘을 이용한 문제 해결 능력을 측정하는 코딩 테스트를 시작했다. 대규모 사용자 트래픽을 처리하는 인터넷 포털의 입장에서 전혀 예상하지 못했던 문제를 늘 맞닥뜨리게 되는데, 이를 해결하기 위해서는 기본적인 알고리즘 능력이 필수였기 때문이다.
『파이썬 알고리즘 인터뷰』는 알고리즘을 이용한 문제 해결 능력을 키우는 탄탄한 기본기를 더하는 데 전혀 부족함이 없다. 물론 이 책에 나온 알고리즘 예제들이 입사 시 치르는 모든 코딩 테스트에 완벽하게 대비해주지는 못할 수도 있다. 하지만 분명히 주니어 개발자에게는 학교에서 배운 개념을 실제 문제로 대입하는 능력을 키워주고, 시니어 개발자에게는 그동안 잊고 있던 알고리즘을 다시 복습하면서 필요하다면 좀 더 나은 경력과 이직을 위한 출발점이 되어줄 것이다. 만약 입사 시 코딩 테스트를 안 하는 회사가 있다면 ‘프로그래머 채용 인터뷰 때 코딩 테스트를 합니까?’라는 조엘 테스트 11번 항목을 위반하는 회사니 걸러도 된다.
저자는 과거 유명 블로거로서 많은 기술 정보를 공유하면서도 현업 개발자로서 다양한 경험을 겸비하고 있다. 700페이지에 달하는 분량의 꼼꼼한 설명과 문제 풀이가 이를 보여준다. 필요에 따라 알고리즘을 써야 할 때 예제로서 활용하기도 좋고, 2-3년에 한 번씩 슬럼프가 찾아올 때 이직 인터뷰를 준비하면서 마음을 다잡는 계기로 삼을 수 있기에 여러분의 책장 한편에 두시라 추천하는 데 전혀 손색이 없다.
- 윤석찬 (아마존 웹 서비스(AWS) 수석 테크 에반젤리스트)
지금 당장 취업이나 이직을 생각하지 않더라도 미리 읽어보고 참고해볼 만한, 개발자들을 위한 책이 나왔습니다. 구직, 이직은 개발자들 모두에게 중요한 일인데 의외로 이에 관한 책은 많지 않았습니다. 이 책에서는 저자의 오랜 사회생활 경험에 기반해 취업과 이직이 어떻게 이뤄지는지, 개발자들이 어떤 점을 알아 둬야 하고 또 유의해야 하는지 등을 특히 실제 사례들에 비춰 잘 이야기해줍니다. 그중에서도 가장 큰 부분을 차지하는 코딩 테스트에 관한 자세한 내용을 매우 보기 쉽고 짜임새 있으며 정성스럽게 담아냈습니다. 주요 자료구조나 알고리즘 그 자체를 공부하고 실습해보기 위한 자료로서도 매우 유용합니다.
- 권순선 (구글 글로벌 ML 에코 시스템 프로그램 리드, KLDP 창시자)
『파이썬 알고리즘 인터뷰』는 상당히 보기 드문 종합 코딩 인터뷰 준비 서적입니다. 먼저, 기초 컴퓨터과학 지식에 대한 간결하지만 깊이 있는 설명, 그리고 파이썬에 대한 수준 높은 정보가 담겨 있습니다. 이 책에서 다루는 문제는 실제 인터뷰에서 출제되는 인기 문제입니다. 가장 돋보이는 것은 현업에 계신 저자가 손수 작성하신 프로 수준의 풀이입니다. 번역서가 아니라 직접 집필한 국내서라는 점, 눈에 쏙 들어오는 멋진 그림은 이 책의 가치를 더욱 높여줍니다. 면접관 입장에서도 정말 재미있게 읽고, 큰 공부가 된 책이었습니다.
- 김민장 (페이스북 본사 소프트웨어 엔지니어)
요즘 실리콘밸리에서는, 리트코드 문제를 300개 정도는 풀어야 최고 수준 회사들의 면접을 통과할 수 있다는 말이 심심찮게 나온다. 그만큼 알고리즘 문제 풀이는 대부분의 IT 회사에서 여전히 중요한 입사 전형 중 하나다. 이 책을 리뷰하며, 개발자로 이직을 준비 중인 멘티에게 가장 먼저 추천하고 싶다는 생각이 들었다. 문제 풀이뿐만 아니라, 파이썬의 동작 원리를 이해하고 친절히 설명하는 저자의 끈기와 집요함이 한 단계 더 높은 수준의 학습을 가능하게 한다.
- 민창현 (아마존 본사 소프트웨어 엔지니어)
이 책에서는 알고리즘 영역마다 좋은 문제를 선별해 설명하고, 여러 가지 접근 방법을 이용한 깔끔한 코드를 제시한다. 여기에 그치지 않고 파이썬 라이브러리와 코딩 시 유의할 점 등을 다루는 부분도 크게 도움이 된다. 코딩 인터뷰를 준비하는 분들께, 저자의 경험이 녹아 있는 좋은 교재로 추천 드린다.
- 서민구 (구글 테크 리드 매니저)
일찍이 정규 교육이 기업에서 원하는 인재를 배출하는 데 실패했다고 판단한 IT 기업들은 직접 개발자의 역량을 평가할 방법을 모색 중이며, 코딩 인터뷰는 이런 노력의 중심에 있다. 코딩 인터뷰는 유용하지만, 나는 폭넓고 복잡한 개발자 역량을 알고리즘 위주의 코딩 능력만으로 평가하는 것에 완전히 동의하진 않는다. 그럼에도 이 책을 강력히 추천하지 않을 수 없다. 정성들여 만들어진 이 책은 단순한 문제 나열이 아닌 코딩 인터뷰를 둘러싼 다양한 주제를 섬세하게 다루며, 저자의 깊은 고민도 느껴진다. 또, 흥미로운 내용으로 가득하고 심지어 재미있다. 국내서로 이런 좋은 책이 나왔다니 참 감사한 일이다. 코딩 인터뷰를 준비하는 개발자나 채용 담당자는 물론, 문제 해결력을 키우려는 개발자에게 유용하며, 코딩을 취미로 삼은 모든 코딩 덕후에게 즐거움을 줄 책이다.
- 박성철 (우아한형제들 딜리버리프로덕트실 실장)
IT 분야에서 알고리즘이란 어떤 문제를 해결하기 위해 데이터 구조를 만들고 이를 CPU/메모리/디스크 같은 자원을 활용해 계산해내는 것이다. 코딩 인터뷰는 지원자가 정해진 시간 내에 이런 알고리즘들을 작성하는지를 보면서, 회사에 적합한지를 가늠해보는 여러 방법 중 하나다. 과하지만 않다면, 많은 면을 단기간에 볼 수 있는 좋은 방법이다. 이 책은 파이썬으로 알고리즘을 구현하는 방법을 차근차근 깊이있게 설명한다. 선도 IT 기업에서 코딩 테스트를 직접 만들고 진행한 저자의 경험과 지식을 바탕으로 핵심 내용을 잘 짚어주므로, IT 기업을 희망하는 분들께 많은 도움이 될 것이다. 비단 지원자뿐만 아니라 컴퓨터를 활용해 문제를 해결하고 싶은 모든 분께 이 책을 추천한다.
- 공용준 (카카오 클라우드기술팀 팀장)
이 책은 단순히 알고리즘 풀이에서 그치는 것이 아니라, 파이썬이라는 언어의 특징을 살려서 좀 더 효과적으로 문제를 풀 수 있는 방법, 실전 인터뷰 상황에서 유익한 노하우, 그리고 깊이 파고들지 않는 이상 알기 어려운 내용까지도 꼼꼼하게 다룬다. 엄선된 알고리즘 문제들을 푸는 과정 중에, 그간 이해하기 어려웠거나 헷갈리던 부분이 마치 가려운 부분을 긁어주는 것처럼 그림과 함께 자세히 설명되어 있어 좋았다. 앞으로 코딩 인터뷰를 준비하는 많은 이에게 도움을 줄 수 있을 것으로 기대된다.
- 김민혜 (페이스북 싱가포르 파트너 엔지니어)
국내 유수 기업들에서 코딩 인터뷰 면접관이자 출제위원으로 활동해온 저자의 경험이 녹아 있는 책입니다. 파이썬으로 설명하지만, 파이썬을 처음 경험하는 사람이라도 충분히 학습할 수 있도록 잘 구성되어 있습니다. 알고리즘 이론을 너무 가볍지도, 또 너무 과하지도 않게 실전 코딩 인터뷰에 딱 필요한 만큼 서술하고 문제풀이도 매우 친절하여, 알고리즘과 친하지 않은 사람도 부담없이 읽을 수 있습니다. 이처럼 알고리즘 내용도 훌륭하지만, 코딩 인터뷰를 준비하며 놓치기 쉬운 중요한 팁들까지 잘 정리되어 있어, IT 기업 입사를 준비하는 학생이나 이직을 준비하는 개발자분들에게 적극적으로 추천해주고 싶습니다.
- 나동희 (CPython 공식 커미터, 카카오 소프트웨어 엔지니어)
화이트보드 앞에 선 나 자신을 상상하면 늘 입이 마른다. 이 책은 기본을 강조하면서도 알고리즘 테스트나 인터뷰를 준비하는 사람들이 궁금해 할 몹시 사소한 부분까지 잊지 않고 세심하게 챙겨준다. (저자와 느슨하지만 꽤 오래 안 사이 같은데, 이렇게 친절한 분인지 미처 몰랐다!) 리트코드 문제를 풀라고 하니 풀긴 하는데 딱히 나아지는 것 같지 않고, 인터뷰 때마다 긴장하고 준비가 부족했다고 느껴본 사람들에게 이 책을 추천하고 싶다. 누구든 시험이 끼지 않는 공부는 어지간하면 재미있기 마련이니, 다들 취직/이직에 필요하다 스트레스 받지 않고 이 책과 함께 즐겁게 공부할 수 있다면 좋겠다.
- 한성은 (조지아텍(Georgia Tech) 컴퓨터 사이언스 석사과정)