알고리즘 코딩 테스트 책 출간 안내

《파이썬 알고리즘 인터뷰》 출간에 부쳐, 지난 일 년여 간의 집필을 마무리하며 소회를 남겨봅니다.

2020년 7월 19일 과정 업데이트
2020년 7월 8일 초안 작성

들어가며

2017년 8월, 카카오는 흥미로운 실험을 진행했습니다. 신입 개발자 채용을 이름과 연락처만 제시하면 누구나 지원할 수 있는 블라인드 방식의 공개 채용으로 진행한 것입니다. 과감한 시도였고 당시 IT 업계에서조차 보기 드문 사례였습니다.

좋은 개발자를 선발하기 위한 출제 위원회의 움직임도 바빠졌습니다. 주요 알고리즘을 녹여 내면서도 응시자들에게 친근하게 다가서기 위해 카카오 캐릭터를 이용한 수십 항목의 문제를 만들었고, 출제 위원들이 각자 돌아가며 꼼꼼히 문제를 풀이해 나갔습니다. 피어 리뷰를 통해 충분히 논의를 진행했고, 다수결로 출제 여부를 확정했습니다. 지루한 절차가 반복됐지만 꼭 필요하고도 합리적인 과정이었습니다. 그렇게 여러 단계를 거쳐 최종적으로 총 7개 문제를 엄선했고, 이 문제들은 지금까지도 좋은 평가를 받으며 블라인드 채용의 모범 사례가 되었습니다. 당시의 성공 덕분에 이후에도 블라인드 채용은 계속 이어지고 있으며 다른 기업의 채용에까지 영향을 미쳤으니, 돌이켜 보면 그 자랑스러운 역사의 현장에 일원으로서 함께할 수 있었다는 사실이 그저 영광스러울 따름입니다.

좋은 개발자란 어떤 개발자인가 라는 주제는 오랜 저의 고민이기도 합니다.

지난 몇 년간은 좋은 개발자를 채용하기 위해 누구보다 노력해왔으며, 또한 제 자신이 여전히 현업에 종사하는 개발자로서 더 좋은 개발자가 되기 위해 꾸준히 노력해왔습니다. 이 책에는 수많은 면접자들을 대상으로 코딩 테스트를 출제한 경험, 기술 인터뷰를 수행한 경험, 그리고 면접을 더 잘하기 위해 수많은 회사의 코딩 면접, 기술 면접 과정을 면밀히 살펴본 경험을 담았습니다. 그리고 이를 바탕으로, 저 또한 이직을 시도하면서 겪은 여러 가지 다양한 경험까지도 녹여내어 종합했습니다. 면접관으로서, 또는 면접자로서 겪은 다양한 경험은 한동안 면접관의 입장에서는 미처 느끼지 못했던 잘못된 관행들을 다시금 면접자의 입장에서 깨닫게 되는 좋은 계기가 됐고, 이직 후에는 더 좋은 면접관으로 거듭나게 됐으며, 이 책을 통해 그간의 경험들을 모두 잘 정리해 담아냈음은 물론입니다.

이 책에는 다음 마인드맵과 같이 파이썬, 자료구조, 알고리즘, 크게 세 가지 주제로 분류하고 각각 풍부한 설명과 함께 기업에서 기술 인터뷰시 가장 선호하는 문제를 추려내 관련된 리트코드 문제를 풀이했습니다. 지난 카카오 공채 문제를 포함해 총 95문제를 각각 풀이하였습니다.

마인드맵

이 책은 기본적으로 코딩 인터뷰를 위한 책이지만 코딩 테스트는 물론, 알고리즘을 익혀 문제 풀이 능력을 키우고 싶은 모든 개발자를 위한 책이기도 합니다.

“코딩 인터뷰를 준비하는 개발자나 채용 담당자는 물론, 문제 해결력을 키우려는 개발자에게 유용하며, 코딩을 취미로 삼은 모든 코딩 덕후에게 즐거움을 줄 책이다.”

“코딩 테스트를 직접 만들고 진행한 저자의 경험과 지식을 바탕으로 핵심 내용을 잘 짚어주므로, IT 기업을 희망하는 분들께 많은 도움이 될 것이다. 비단 지원자뿐만 아니라 컴퓨터를 활용해 문제를 해결하고 싶은 모든 분께 이 책을 추천한다.”

이를 통해 현업에서 문제 해결 능력을 높이고, 궁극적으로 더 좋은 개발자가 되기 위한 길잡이를 제시합니다.

이 책을 위해 지난 일 년여 간은 거의 매일 밤 알고리즘 문제를 풀이해 왔습니다. 이 책은 매 주말 집필에 몰두해온 노력과 고민의 결실입니다. 뿐만 아니라 이 책은 IT 업계 최고의 개발자들인 많은 분들이 공헌해주신 결실이기도 합니다. 그간 오랜 여정에 도움을 주신 많은 분들께 진심으로 감사의 말씀을 전합니다.

과정

그간 알고리즘 인터뷰를 진행해오면서 배우고 싶을 정도로 뛰어난 분들도 있었지만, 아예 손도 못대고 서로 어색한 시간만 보내는 경우도 적지 않았습니다. 무엇이 문제이길래 구글, 페이스북은 그렇게 잘 한다는 알고리즘을 우리는 손도 못대고 있는 것일까요.

물론 알고리즘 인터뷰에 대한 반박은 잘 알고 있습니다. 당장 실무에 필요한 역량이 훨씬 더 중요하다는 점도 충분히 잘 알고 있습니다. 그러나 좋은 식당에 가장 중요한 것은 기본기 라고 백종원은 늘 강조합니다. 좋은 개발자에게 가장 중요한 역량 또한 기본기 라고 저는 생각합니다. 알고리즘은 기초이자 곧 기본입니다. 기본기가 튼튼해야 훌륭한 제품을 만들 수 있습니다. 마이크로소프트가 수십 년간 최고의 자리를 지킬 수 있었던 것도, 구글, 페이스북이 계속해서 좋은 제품으로 시장을 선도하는 이유도, 튼튼한 기본기 때문이라고 믿어 의심치 않습니다.

우리말로 된 가이드를 제시하고 싶었습니다. 영어책과 겨뤄도 손색이 없을만한 우리말로 된 코딩 인터뷰 책을 만들고 싶었습니다. 줄곧 알고리즘 인터뷰를 진행하며 느꼈던 기쁨과 슬픔의 경험들은, 최고의 알고리즘 책을 위한 밑거름이 될거라 확신했습니다. 해마다 꾸준히 독서를 하며 쌓아올린 좋은 책의 기준과 눈높이는 스스로에게도 동일하게 적용할 수 있을거라 생각했습니다.

알고리즘 인터뷰를 진행한 날에는 밤 늦게까지 사무실에 남아 그 날의 인터뷰 문제를 다시 한 번 풀이해보면서 복기하고, 어떤 점이 좋았고 어떤 부분이 잘못되었는가를 꼼꼼히 기록해두곤 했습니다.

주말에는 오롯이 집필에 시간을 투자하였습니다. 지난 일 년여 간은 더 좋은 책을 위해 주말을 포기할 수 밖에 없었습니다.

한 문제라도 틀리지 않기 위해 같은 문제도 수십번씩 반복해서 풀이하였습니다.

그림 하나도 허투루 그리고 싶지 않았습니다. 유료앱도 구매하고, 유료 그림 강좌도 수강해보았지만 아쉽게도 그림은 결과가 좋지 못했습니다.

다행인 것은 최고의 작가를 알고 있었다는 점이었고, 제가 그린 똥손 그림은 전문가의 손길을 통해 작품으로 거듭날 수 있었습니다.

그 결과, 책에는 최고의 모습으로 실릴 수 있게 되었습니다.

탈고를 하면 모든게 끝인줄 알았습니다. 그러나 마지막까지 치열한 교정 작업을 거쳐야만 했습니다. 이 과정에서 전체 문제를 다시 한 번 풀이하고, 틀린 부분이 없나 꼼꼼히 살펴보았습니다.

드디어 인쇄 작업에 들어가는 모습입니다.

이제 이쁜 모습으로 책으로 탄생할 준비를 하고 있습니다.

마침내 전국 교보문고 매장에서 만나볼 수 있게 됐습니다. 교보문고 광화문점에 전시되어 있는 모습입니다.

뿐만 아니라 컴퓨터 분야 종합베스트 1위에 올라 교보문고 베스트셀러 코너 1위에 놓여 있습니다.

온라인에서도 4대 서점 판매 1위를 석권하며 순항 중에 있습니다. 여전히 초급 실용서가 판매 순위 상위를 차지하는 국내 도서 시장에서는 매우 고무적인 일입니다. 무엇보다 《파이썬 알고리즘 인터뷰》로 인해 우리나라에 기본기가 튼튼한 좋은 개발자가 더 늘어날 수 있다면 그것으로 소임을 다한 것에 여한이 없습니다. 나아가 이 책이 여러분의 커리어에 좋은 길잡이가 되길 기원합니다.

SNS

《파이썬 알고리즘 인터뷰》를 소개한 SNS 글을 소개합니다.

요즘은 독자분들이 인터넷 서점에는 리뷰를 잘 올리지 않는 것 같습니다. 개인적으로 안타깝게 생각하며, 그러다 보니 몇 안되는 댓글로 인해 잘못된 정보를 접할 수 있어 예스24에 올라온 댓글에 대해 이 자리를 통해 답변을 드립니다. 《파이썬 알고리즘 인터뷰》는 《코딩 인터뷰 완전 분석》을 짜깁기 한 책이 아닙니다. 지난 수 년간 직접 실험하고 풀이한 내용, 그 동안의 면접관으로서의 오랜 경험을 정리하여 직접 집필한 책입니다. 동일한 ‘코딩 인터뷰’를 주제로 했다는 점을 제외하면 《파이썬 알고리즘 인터뷰》는 《코딩 인터뷰 완전 분석》과는 완전히 다른 책이며, 한글로 된 더 좋은 책을 만들기 위해 최선을 다한 책입니다. 몇 페이지만 열어봐도 완전히 다른 책임은 금방 알아차릴 수 있을텐데, 저자와 출판사의 지난 수 년간의 노력을 헛되이 하는 이런 근거 없는 댓글은 매우 안타깝습니다.

판매처

책
《파이썬 알고리즘 인터뷰》는 다음 판매처에서 구매하실 수 있습니다.

및 전국 교보문고 매장

참고

문제 풀이 코드는 깃허브, 책에 대한 상세한 소개는 출판사 블로그를 참고하세요.


GCP  ·  2020 Book Reports  ·  Santander Product Recommendation  ·  PyData  ·  GPU Data Science  ·  Python  ·  Markov Decision Process  ·  통계학  ·  통계학 책  ·  Front-End  ·  머신러닝  ·  Activation, Cost Functions  ·  알고리즘  ·  자료구조  ·  비지니스  ·  Docker  ·  AWS  ·  NLP 링크  ·  알고리즘 링크  ·  머신러닝 링크  ·  사회심리학  ·  Information Retrieval  ·  통계학 응용  ·  OOP  ·  2019 Book Reports  ·  Android Development  ·  데이터 사이언스  ·  인공지능  ·  진화생물학  ·  이산수학  ·  수학  ·  미래학  ·  Project Management  ·  LifeHacks  ·  C++  ·  2017 Book Reports  ·  Decision Tree  ·  LeetCode  ·  TensorRT  ·  NLP  ·  Hadoop, Spark  ·  데이터 마이닝  ·  CNN, RNN  ·  2018 Book Reports  ·  운영체제  ·  머신러닝 분류기  ·  거리  ·  Support Vector Machine  ·  OAuth 2.0  ·  Naive Bayes  ·  Jupyter Notebooks  ·  RSA  ·  컴파일러  ·  딥러닝  ·  Word Embedding  ·  컴퓨터시스템구조  ·  영어  ·  Go  ·  Scikit Learn  ·  XGBoost  ·  Software Deployment  ·  NLP 실험  ·  MySQL  ·  Keras  ·  Java
is a collection of Papers I have written.
© 2000 - Sang-Kil Park Except where otherwise noted, content on this site is licensed under a CC BY 4.0.
This site design was brought from Distill.