【리뷰를 시작하기전】
몇 년 전부터였던가? IT 업계에 대 유행이 시작되었다. 이른바 코딩 테스트. 필자가 알기론 처음 시작은 실리콘밸리였던 것으로알고 있다. 다만 정확히 어느 기업에서 코딩 테스트를 시작하였는지까지는 모른다. 확실한 것은 MS, Facebook 그리고 대망의 Google에 이르기까지 미국의 내로라하는 기업들조차 기본기로 알고리즘 능력을 지원자들에게 상당 수준 요구하고있다는 정도이다.
알고리즘, 참으로 재미있으면서도 난해한 학문이다. 수학 같으면서도 수학 같지 않고 논리 문제 같으면서도 논리 문제 같지 않은 것들이 존재하는 그야말로 아리송한학문이기 때문이다. 그렇기에 학부 CS에 진학하게 되면 많은수의 학생들이 고등학생 학교 때 수포자처럼 알고 못, 알고리즘 포기자가 되는 게 현실이다.
하지만 어렵게 생각하지 않았으면 좋겠다. 1+1 = 2인 것은 누구나아는 사실이다. 여러분은 어떻게 1+1 = 2라는 사실을알게 되었는가? 이유는 단순하다 원리의 기초가 튼튼하기 때문이다. 쉽다고생각지 말라 1만 년 전 사람들, 그리고 조선시대 우리 선조들중 대다수가 1+1 = 2라는 사실도 모르고 평생을 살다가 떠나신 분들이 태반이다. 그만큼 여러분은 똑똑하고 머리가 좋다. 다만 기초가 튼튼하지 못한상태에서 최신의 학문, 그것에서 심화된 학문을 학습하기에 어려움을 느끼고 흥미를 잃고 알고리즘을 잃어버리는것이다.
학습의 모든 기초는 재미가 있어야 한다는 것이다. 재미가 있어야 사람은뭐든 하게 되어있다. 우리의 뇌는 그렇게 설계되어 있고 그래야만 뇌에서 도파민이 분비되어 더욱더 집중하고발전할 수 있게 된다.
알고리즘을 공부하기 전에 단 하나만 기억하도록 하자. 여러분이 알고있는 1 + 1 은 쉬운 논리가 아니었다는 사실을. 1 + 1을할 수 있는 당신은 알고 못이아니고 알고잘 이될 수 있다는 사실을.
자 그러면 '이것이 코딩 테스트다'리뷰를 시작해보겠다.
【어떤 독자를 위한 책인가】
'이것이 코딩 테스트다. with 파이썬' 위 도서는 정말 말 그대로 코딩 테스트를 위한다양한 문제가 수록되어 있는 문제집 같은 책이다. 다만 모든 문제가파이썬으로 설명되고 풀이되어 있다.
또한 이 책은 파이썬을 모르는 분에게 권하고 싶은 책은 아니다. 브록에서어느 정도 알고리즘을 풀 수 있을 정도의 기초적인 파이썬 지식을 설명하고 있긴 하지만, 어디까지나 그정도 수준이다. 즉 이 책을 완벽히 소화해내기 위해서는 반드시파이썬 기초를 알아야만 한다.!
이 책은 국내 기업을 대상으로 쓰인 책이다. 개인적으로 앞장의 예에서라인사, 카카오, 삼성이 언급되어 있는데, 요즘은 네이버도 위의 회사들 못지않게 알고리즘 시험이 강화된 것으로 알고 있다. skt도 어느 정도 알고리즘을 보고 있는 데 위의 회사들보단 어렵지 않은 것으로 알고 있다.
그 외에도 앞장에서는 기술면접 팁이나 인성 면접 등 과연 IT 회사에서구직을 원하는 여러분에게 원하는 것이 무엇인지를 나름 잘 정리해 두었다. 가볍게 한번 읽어보되 마음에세 기어 놓도록 하자.
【책의 구성】 '이것이 코딩 테스트다'의 책의 구성은 어떠한가.
'이것이 코딩 테스트다' 책은 총 4가지 챕터로 구성되어 있다.
Part 01
- 코딩 테스트 준비 과정과 그동안의 국내 기업들의 출재 경향에 대해서간략히 요약하고 있다.
- 면접 절차에서의 팁이 나열되어 있다.
중요하다면 중요한 그렇지 않다면 그렇지 않은 챕터이니 가볍게 읽어보도록 하자.단 실습 환경 구축은 그대로 따라 하면 충분히 구축할 수 있으므로 꼼꼼히 읽고 따라서 구축해보도록 하자.
Part 02
- 유형별 문제 정리와 이론 소개를 위한 장이다. 제일 중요하다. 가장 꼼꼼히 읽어보고 배워야 한다.
- 학부 때 배운 거의 대부분의 이론이 정리되어 있다.
- greedy, implement, dfs/bfs, sort, binarysearch, dynamic programming, shortest path,
- 당연히 위의 것들을 풀기 위해서는 기본적인 container에 관한 지식이 있어야 한다. heap, stack,deque, set, map 등에 관한 지식들이 이에 해당한다.
- 내용이 너무 좋다. 이렇게친절한 책이 없다. 진짜 뻥이 아니다. 단 위에서 언급한것처럼 반드시 python의 기초지식이 있어야 한다. python을모르는 분들께선 사전에 python 공부를 반드시 마친 상태에서 시작하시길 권한다.
- 이 장의 내용을 꼼꼼히 공부하지 않으면 3장의 내용은 당연히 풀 수 없다. 계단을 차례대로 올라가야지 한번에 8개씩 건너뛰어서 올라갈 순 없지 않겠는가? 충분한인내심을 가지고 반복 또 반복해서 자기 것으로 만드는 것이 중요하다.
Part 03
- 이제 반복 연습이다. 이파트는 그런 파트다.
- 각 유형별 괜찮은 문제들만을 정리한 파트이다.
- 여기서는 전장과 전부 유사하지만 설명이 빠져있다. 즉 문제 설명, 입력 조건, 출력조건, 예시들로만 구성되어 있다.
- 물론 아름답고 친절하게도 맨 뒷장에 각 문제별 설명이 잘 정리되어있다.
- 인내심이 중요하다. 반드시본인 힘으로 풀어보도록 하자. 단 문제를 들고 1시간 30분이 넘었다면 힌트 정도로만 답안을 보도록 하자. 1시간 30분이 넘었다는 것은 아예 방향조차 못 잡고 있다는 의미이므로 더 잡고 있으면 시간만 낭비하는 꼴이기 때문이다.
- 알고리즘은 반복이 중요하다. 몸에배어야 한다. 꾸준히 일정 텀을 간격으로 같은 문제를 풀고 또 풀어보자. 다양한 접근법으로 나아가 나만의 접근법으로 말이다.
Part 04
- 이 장은 파이썬 기본 문법, 기타알고리즘 그리고 개발형 코딩 테스트 등이 정리되어 있다. 그리고 가장 중요한 설루션이 함께 있는 장이다.
- 기본 문법, 개발형코딩 테스트는 그냥 참고삼아 한번 읽어보도록 하자
- 기타 알고리즘과 설루션은 제일 중요하다. 책이 헐어버릴 때까지 반복해서 읽어보도록 하자.
기타
- 일단 여기까지 왔다면 여러분께 감사 인사를 드린다. 필자의 긴 리뷰를 보느라 수고가 상당했을 것으로 생각되기 때문이다.
- 따라서 여기까지 읽으신 여러분에게만 드리는 팁이다.
- 이 책은 무려! 각기업별(카카오, 삼성전자)기출문제가 따로 정리된 리스트가 있다! 따라서 해당 기업에 취업하고 싶은 사람은꼭 해당 문제들을 10번 이상은 풀어보도록 하자. 아니다그냥 모든 문제를 10번 이상씩 풀어보도록 하자.
【이것이 코딩 테스트다를읽으며…….】
자랑이라면 자랑이고 자랑이 아니라면 자랑이 아닐 수 있다. 필자는 그동안 아마존, 구글, 카카오, 네이버, skt에 이르기까지 전 세계 시총 1~3 위인 회사와 한국계 IT 시총 1~3위인 회사에서 모든 코딩 테스트 최종 면접까지 가봤다. 물론결과는 비밀이다. 왜냐고? 필자의 개인 정보는 소중하기 때문이다.
다만 한국의 알고리즘 테스트 정도와 외국계의 알고리즘 테스트 정도는 차이가 있다. 다시 말해 나라별 면접을 통해 인터뷰어가 평가하는 항목이 다르다는 점이다.
한국계에서는 알고리즘 링크를 전달해 주고 그것으로 1차 필터링을 하고 2차에서 문제를 푸는 경우도 있고 안 푸는 경우도 있는 것으로 알고 있다. 또한문제를 발전시켜가며 푸는 수준이 이제는 어느 정도 외국계 기업 이상으로 발전한 것으로 보인다.
외국계의 경우, 진짜 알고리즘 문제만 푸는 곳이 있는가 하면 해당기업의 기업상을 묻는 곳도 있다.
정말 천차만별이다. 하지만 취준생 여러분이 걱정은 하지 않으셨으면좋겠다.
CS 면접에서 가장 중요한 것은 기본기다. 알고리즘도 기본기만 튼튼하다면 조금만 응용하면 전부 풀 수 있는 문제들이다.그렇기에 자신을 믿는 것만큼 중요한 것이 없다는 팁을 드리고 싶다.
이제 여러분에게 훌륭한 교과서와 훌륭한 자료와 훌륭한 선생님이 주어졌다. 도전을망설일 이유가 없지 않겠는가?
tip. 위 책에는 leetcode사이트 언급이 빠져있는 것 같다. 필자는 그 사이트에서 위의 모든 기업들의 면접 준비를했었다. 따라서 위 사이트도 추천한다.