프로그래밍 언어의 기본 문법은 학습하였지만 막상 코딩을 시작하려니 막막한 입문자, 힘겹게 취직은 했지만 아는 것보다 모르는 것이 더 많은 초보 개발자, 업무를 진행할 때마다 많은 시행착오로 인해 업무 처리가 버거운 개발자라면 꼭 이 책으로 도전해보세요!
누구를 위한 책인가요?
프로그래머 취업 준비생
이직 준비 중인 개발자
실력을 키우고자 하는 개발자
나의 코드로 나의 레벨을 확인해보자!
어제의 코드와 오늘의 코드는 달라야 합니다. 하지만 하루하루 나아지는 일은 생각보다 쉬운 일이 아닙니다. 그래서 게임 요소가 적용된 코딩게임 플랫폼(www.codingame.com)을 택했습니다. 게임하듯 즐겁게, 코딩 테스트를 할 수 있는 매력적인 플랫폼입니다. 레벨업 하면서 하루하루 나아지는 코드를 확인하며 교과서를 벗어나 살아 숨 쉬는 알고리즘을 만날 수 있습니다.
친구와 경쟁하고 저자와 경쟁하며 게임을 즐기듯 할 수 있는 코딩 테스트에 도전해보세요!
이 책의 특징
탄탄한 학습 설계 : 3단계 난이도별 구분과 문제 분석부터 해결, 5단계 길잡이 풀이법까지 초보자도 따라할 수 있는 탄탄한 구성
이론과 실전의 결합 : 알고리즘 이론서보다 쉬운 설명과 그에 걸맞는 문제가 있어 실전처럼 바로 문제에 활용
사고의 확장 : 문제풀이에서 끝나지 않고, 꼬리에 꼬리를 물고 그이상의 해법을 함께 생각하도록 자극하는 코너(좀 더 생각해 봅시다) 제공
코딩 테스트의 즐거움 : 시각적 재미가 가득한 게임 문제를 통해서 흥미를 잃지 않고 지속할 수 있는 코딩 테스트
저자소개
저자
김영기
코딩게임 레벨 35 / 닉네임 hard-coded
코딩게임의 모든 업적을 다 채우려다보니 평소에 쓰지도 않던 프로그래밍 언어를 공부하는 일이 어느새 새로운 취미가 되었다.
한글과컴퓨터에서 개발자의 삶을 시작하며 아래아한글을 개발했다. 그러다 어느 날 게임을 만들겠다며 회사를 뛰쳐나가 (주)블루사이드, 이노스파크, 비주얼 콘셉츠에서 <킹덤 언더 파이어 2>, <드래곤프렌즈>, <히어로스카이>, <NBA 2K> 시리즈 등의 게임을 출시했다. 현재는 캐나다에서 새로운 도전을 위한 공부를 하며 취미로 새로운 언어를 익히고 있다.
12. DWARFS STANDING ON THE SHOULDERS OF GIANTS : 재귀 함수를 사용해 트리의 높이 구하기
12-1 문제 설명
12-2 어떻게 풀까요?
12-3 필요한 알고리즘은?
그래프
너비 우선 탐색과 깊이 우선 탐색
재귀
12-4 풀어 봅시다
12-5 더 생각해 봅시다
그래프와 트리
단방향 그래프와 양방향 그래프
13. SKYNET REVOLUTION : I will be back to search
13-1 문제 설명
13-2 어떻게 풀까요?
13-3 필요한 알고리즘은?
그래프
너비 우선 탐색
13-4 풀어 봅시다
13-5 더 생각해 봅시다
깊이 우선 탐색과 최단 경로
노드 간 이동 시간과 최단 거리
PART 03. 고급 퀴즈 해결하기
14. TAN NETWORK : 최단 경로를 알려드립니다
14-1 문제 설명
14-2 어떻게 풀까요?
14-3 필요한 알고리즘은?
다익스트라 알고리즘
14-4 풀어 봅시다
14-5 더 생각해 봅시다
다익스트라 알고리즘 적용이 불가한 경우
다익스트라 알고리즘의 단점
15. ROLLER COASTER : 최고의 롤러코스터 타이쿤 되기
15-1 문제 설명
15-2 어떻게 풀까요?
15-3 풀어 봅시다-1
15-4 필요한 알고리즘은?
원형 큐
동적 프로그래밍
15-5 풀어 봅시다-2
15-6 더 생각해 봅시다
시간 초과 개선 방법
부록 A. 먼저 취업한 선배들의 도움되는 Talk Talk
부록 B. 프로그램 이해에 도움되는 수도코드
출판사리뷰
"쉽고 재미있는데 유익한 프로그래밍 책이 존재한다고?" _리뷰어 서은택
이 책은 <코딩게임>이라는 프로그래밍 챌린지 사이트의 다양한 문제들을 엄선하여 난이도별로 차례로 설명해 주면서 독자의 실력이 차근차근 늘어가도록 구성되어 있습니다.
책의 구성이 잘 설계되어 있어 최소한의 프로그래밍 기초만 있다면 누구라도 책에서 설명하고 있는 내용을 따라가면서 문제들을 해결하는 기쁨을 맛볼 수 있습니다. 단순한 문제풀이 책이 아니라, 프로그래머라면 꼭 알아야 하는 다양한 자료구조와 알고리즘을 하나씩 차근차근 설명해 주기 때문에 알고리즘 학습을 위한 교재로도 손색이 없습니다. 웬만한 일반 알고리즘 책과 비교해 봐도 더 상세하고 잘 정리된 설명에 다양한 도표, 더불어 그 알고리즘을 직접 적용할 수 있는 문제가 함께 소개되기 때문에, 말하자면 이론과 실전이 제대로 결합되어 학습 효과를 극대화할 수 있는 구성입니다. 거기에 저자가 중간 중간에 넣어 놓은 다양한 읽을거리들은 프로그래밍과 관련한 상식을 키우는 데에도 도움을 줍니다.
<코딩게임> 사이트 또한 매우 흥미롭습니다. 다른 많은 프로그래밍 챌린지 사이트들은 프로그래밍 자체에 초점이 맞추어져 있기 때문에 처음 입문하는 사람들에게 재미를 느끼게 하기 어려운 반면, <코딩게임>은 프로그래밍 결과가 즉각적으로 표시되기에 프로그래밍의 즐거움을 훨씬 더 강하게 느끼게 해 줍니다. 혼자서 문제를 푸는 것뿐만 아니라 다른 사람과 경쟁하기도 하고 심지어는 실시간 프로그래밍 대결도 할 수 있어서 몰입해서 하다 보면 프로그래밍의 즐거움에 ‘중독’되는 진기한 경험도 해볼 수 있습니다. 그래서 이 책과 <코딩게임>을 잘 활용한다면 말 그대로 프로그래밍을 재미있게 배울 수 있다고 확신합니다. 저자가 <코딩게임> 사이트에서 활발히 활동하고 있기 때문에 저자와 직접 대결도 해 볼 수 있다는 것은 또 다른 즐거움이 아닐까요?
“실무라는 사막에서 길 잃은 개발자에게 지식과 지혜를 나눠주는 오아시스 같은 책” _리뷰어 최성현
이 책을 총 5번 읽었는데요,
한 번 읽었을 땐 컴퓨터 사이언스의 필수 알고리즘들을 배울 수 있었고,
두 번 읽었을 땐 파이썬이라는 프로그래밍 언어를 이해하게 되었고,
세 번 읽었을 땐 <코딩게임> 사이트에 대한 흥미를 느낄 수 있었고,
네 번 읽었을 땐 개발 경험이 풍부한 작가의 개발 철학을 엿볼 수 있었고,
마지막으로 읽었을 땐 주식은 하면 안 된다는 것을 느낄 수 있었습니다.
(06 STOCK EXCHANGE LOSSES 내용)
실무라는 사막에서 길을 잃은 개발자에게 지식과 지혜를 나눠주는
오아시스 같은 책이라고 단언합니다.
“쉽게 따라 하고 재미있게 도전해보면서 알고리즘과 논리적 사고를 키워주는 책” _리뷰어 김수영
개발자가 아니더라도 최근 파이썬 정도는 해야 한다는 분위기가 조성되고 있습니다. 특히 데이터 관련 작업을 하는 팀에서는 필수입니다. 하지만 혼자서 공부를 하다 보면 어느 정도까지 문법은 따라 할 수 있지만, 논리적인 코드를 작성하는 것은 어렵고 흥미를 잃기 쉽습니다. 이 책은 그런 사람들에게 쉽게 따라 하고 재미있게 도전해 보면서 실질적인 알고리즘과 논리적 사고를 키워줍니다. 이와 함께 파이썬 코딩에 대해 꼭 필요한 부분을 잘 짚어주고 있습니다.
“기초 알고리즘을 재미있고 쉽게 배울 수 있도록 도와주는 책” _리뷰어 이지호
개발자로서 18년을 일하면서 현장에서 알고리즘에 목마름을 느낄 때가 많았습니다. 아마도 대학 2~3학년 때 짧게 배우고 지나갔던 수학 과목들과 알고리즘을 다시 떠올리기 싫어서였던 것 같습니다. 저와 여러분이 이제 만나기 시작한 『게임으로 익히는 코딩 알고리즘』은 기초 알고리즘을 재미있고 쉽게 배울 수 있도록 도와줄 것입니다. 책을 봄에 있어 시간을 낸다고 생각하지 말고 조금씩 즐겨보세요. 그러다가 닥터 후가 언급되면 지나간 향수를 불러일으킬지도 모릅니다. 닥터 후 글자를 보면 바로 제나 콜먼이 생각날지도 모릅니다.
“쉬운 방법부터 최적화까지 스토리로 문제를 해설해주는 책” _리뷰어 문성훈
참 어렵고도 딱딱하기 쉬운 코딩과 알고리즘을 <코딩게임>이라는 사이트의 문제를 통해서 재미있는 소설을 읽는 것처럼 알려주는 점이 좋았습니다. 단순히 문제를 푸는 데 그치지 않고 쉬운 방법부터 최적화까지 스토리로 문제를 해설해 주고, 같이 고민하면서 쉽게 쉽게 읽을 수 있도록 만들어 줍니다. 처음 알고리즘에 입문하거나 알고리즘 사이트에서 아무리 문제를 풀어도 실력이 늘지 않는다고 느끼시는 분들에게 강력 추천해 드립니다.
“응용력을 키우고 싶을 때 진입장벽을 낮춰주는 좋은 가이드 북”_리뷰어 한미소
이 책은 코딩의 이론을 마치고 응용을 시작하는 단계에서 ‘<코딩게임>이라는 사이트를 통해 응용력을 키우고 싶다’라고 할 때 이 책이 진입장벽을 낮춰 주는 좋은 가이드 북이 될 것 같습니다. 개인적으로 ‘초급 문제 비중이 더 많았으면 어땠을까’하는 아쉬움은 있습니다. 왜냐면 그래도 초급은 좀 많이 따라 했거든요! 그리고 완료하면서 좀 재미있었습니다. 초급의 다른 문제들도 도전해보려고 합니다. 나중에 초급/중급/고급으로 아예 따로 내주세요.
저자는 직장동료에게 소개 받은 <코딩게임>에서 문제를 풀면서 희열과 쾌감을 얻었고 곧 취미가 되어버렸다고 했다.
문제를 풀다보면 마치 RPG 게임을 하는 듯한 느낌을 받을 수 있다고 한다.
코딩게임은 크게 2가지 모드가 있는데 여러 가지 프로그래밍 문제를 온라인상에서 직접 풀어보는 연습모드, 연습모드에서 갈고 닦은 실력을 바탕으로 다른 개발자와 실력을 겨룰 수 있는 경쟁모드가 있다.
이 책은 연습 모드에 있는 여러 문제 중 엄선한 문제를 풀어보는 방식으로 구성되어 있다.
코딩게임 사이트 자체가 영어로 되어 있기 때문에 문제를 이해하는 부분에서 막히는 부분들도 있을 것이고 무엇부터 해야할지 감이 안잡힐 수 있기 때문에 이 책을 통해 차근차근 문제 설명부터 어떻게 풀것인지 필요한 알고리즘은 무엇인지 익히다보면 어느새 스스로 많은 문제를 풀 수 있을만한 기본을 갖추게 될 것이다.
부록으로 먼저 취업한 선배들의 도움되는 토크 편이 있는데 이 내용이 정말 좋다. 기술 인터뷰를 아직 해보지 않은 분들이라면 분명 큰 도움이 될 것이다.
요새 기술 트렌드가 인공지능이라고 많이 표현하고, 회사나 학교에서도 이를 응용한 교육이나 기술을 많이 적용하려고 노력하는 것 같다. 그런데 개인적인 생각으로는 이런 기술도 기본적인 소양이 뒷받침되어야 진정으로 이해하고 나아갈 수 있지 않을까 하는 생각을 많이 해본다. 예를 들어서 행렬연산이나 벡터의 개념없이는 신경망이 연산하고, 학습되는 과정을 이해하기 어려울 것이고, 기본 자료구조나 알고리즘에 대한 이해없이는 그런 동작 과정을 개선시키거나, 이해하는 것 자체가 벅찰 것이다. 사실 나같은 경우도 현업에서 인공지능 관련 기술을 실제 환경에 적용하는 일을 하고 있긴 하지만, 그런 과정이 쉽지 않을 뿐더러 너무나 논리적으로 설명하기 어려운 부분이 많다는 것을 많이 느낀다. 그래서 그냥 시간나는 틈틈히 알고리즘 공부나 수학공부를 해보고 있다. 이번에 소개할 책은 알고리즘을 조금 손쉽고 이해하기 쉽게 공부할 수 있는 방법을 소개한 책이다.
보통 게임이라고 하면, 휴식시간에 즐기면서 스트레스를 푸는 용도로 생각이 많이 들겠지만, 최근에는 게임을 교육에 활용한 케이스들이 많이 소개되고 있다. 이 책 역시 게임을 교육에 활용한 케이스 중 하나인데, 그 중 알고리즘을 직접 구현해보면서 게임을 즐기는 형식으로 되어 있다. 책에서 베이스로 삼고 있는 사이트는 codinGame이라는 사이트이다.
사실 나도 처음 이 사이트를 접하면서도 "에이, 게임으로 알고리즘을 배우는 것에도 한계가 있겠지.." 하는 회의감이 들었었다. 물론 많은 사람들이 실제로 게임을 학습에 적용해본 케이스를 많이 봐 왔지만, 실제로 게임의 질이나 학습의 질이나 어느 하나도 충실하지 못해 몰입감을 제공하지 못한 경우를 주로 접했었던 것 같다. 그런데 이 사이트는 뭔가 조금 달랐다. 아래의 영상은 실제 codinGame에서 학습을 하면서 게임을 하는 예시이다.
영상을 보면 알겠지만 게임 내의 캐릭터를 실제 코드를 통해서 제어할 수 있고, 실제 코딩을 통해 게임에서 이기는 것을 목적으로 하고 있다. 그리고 각 학습자별 레벨과 퀘스트라는 개념이 들어가 있어서 뭔가 학습을 마치고 게임에서 이길때마다 경험치를 얻고 레벨 업 하는 과정을 직접 느낄 수 있다. 이를 통해서 학습자에게 성취감을 부여해준다. 무엇보다도 구현되어 있는 게임과 알고리즘 구현과의 연관성이 충실해서 실제 구현하면서 뭔가 배울 수 있겠다는, 앞에서 소개한 표현대로라면 몰입감이 충실히 제공되는 것으로 느껴졌다.
위에서 소개한 책은 바로 이 사이트에서 제공되는 게임 중 Queue, Stack, Hash와 같은 자료구조를 다루면서 배울 수 있는 몇가지 게임과 Search 방식과 Dynamic Programming을 다루는 몇가지 게임들을 직접 해설을 통해서 풀어보는 것을 내용으로 다루고 있다. 그래서 우리가 보통 알고리즘을 공부할 때 주로 쓰는 책인 "Introduction to Algorithm" (Cormen)처럼 정형화된 주제를 다루는 것이 아니라, 게임의 환경을 분석하고, 필요한 논리가 어떤 것인지를 소개하면서 내용을 전개해가고 있다. 어떻게 보면 실전형 알고리즘 학습서랄까.. 오히려 암기식으로 진행되는 것보다도 이렇게 실제로 내용을 경험해보면서 학습할 수 있는 요소가 많아서 좋았던 것 같다.
책에서 알고리즘을 소개할 때 사용한 언어는 Python이기는 하나, Python 자체가 설명하기 쉬운 Pseudocode만큼이나 쉽게 써져 있어, 딱히 언어에 대한 종속성은 없어보인다. 그리고 아무래도 문제 단위로 설명했을때 부족하다고 느낄 수 있을만한 원론적인 이론 설명같은 부분은 그림과 함께 설명되어 있어, 처음 알고리즘 공부를 하는 개발자에 대해서도 어느정도 포커스를 맞춘 것으로 보인다. 그래서 왠지 조금 어렵다고 느낄만한 문제에 대해서는 이런 그림들을 통해서 조금 이해하기 쉬웠던 부분이 있었다.
다만, 앞에서 소개한 것과 같이 문제 유형별로 설명이 제시되어 있어, 딱 설명할 수 있는 범주가 한정적이라는 부분은 조금 걸릴 수 있다. 아무래도 문제에 맞는 해결방법을 제시하기 때문에 딱 거기에 맞는 내용만 소개되고, 더 고급 테크닉을 찾는 사람한테는 조금 안맞을 수 있을거라 생각한다.(물론 그렇다고 이 책에 소개된 내용들이 너무 쉽거나 간단히 넘길만한 부분이 많다는 것은 아니다...) 그런 사람한테는 이 책에 굳이 한정짓지 말고, codinGame내의 경쟁모드에서 제공하는 문제나 백준도장같은 온라인 코딩테스트 사이트에서 제공하는 문제를 통해서 더 경험을 쌓는게 좋은 방법일 수 있다.
그래도 개인적으로도 이 책에서 소개해나가는 방식은 현업에서 실제로 일하는 방식과 많이 유사하다고 생각한다. 게임을 현업과 1대1로 매칭해서 보기는 어렵겠지만, 게임만큼이나 현업에서도 어떤 문제에 부딪쳤을 때, 이를 해결하는데 필요한 이론들을 쭉 나열해보면서, 해결하기 위해 노력한다. 이런 경험을 codinGame에서 제공해주고, 이 책은 이런 경험을 익숙하게끔 가이드를 제시하고 있다. 어떻게보면 책의 분량도 많지 않아서, 과연 이 책으로도 알고리즘을 배울 수 있을까하는 의구심이 들 수 있겠지만, 막상 읽다보면 효율적으로 전반적인 게임을 통한 학습 방법 소개나 배경 이론에 대한 설명이 되어 있기에 해당 공부를 하는 사람들한테는 도움이 될 거라 생각한다.
드디어 알고리즘이라는 것을 접해 봅니다. 들어만 봤지 실제로 책을 접해 보기는 처음입니다. 그것도 게임이라니 흥미가 동하네요. 노란색 = 병아리 = 초보를 의식한 것일까요? 지금까지 프로젝트 몇 건을 하면서 현장에서 알고리즘에 대한 이야기를 제대로 들어 본 적이 없지만, 중요하다는 것은 어렴풋이 느끼고 있었기에 알고리즘을 들여다볼 수 있는 좋은 기회였습니다.
알고리즘(라틴어, 독일어: Algorithmus, 영어: algorithm 알고리듬, IPA: [ǽlɡərìðm])은 수학과 컴퓨터 과학, 언어학 또는 관련 분야에서 어떠한 문제를 해결하기 위해 정해진 일련의 절차나 방법을 공식화한 형태로 표현한 것을 말한다. - 위키백과 -
이렇게 단순히 정의만 봐도 어려운데.. 게임으로 익히는 알고리즘이라면 나도??라는 생각으로 읽기 시작하긴 했지만, 역시나 개발자도 아니고 개발적인 마인드가 부족한 입장에서는 어렵다는 생각도 들긴 했습니다. 가볍게 여길 책이 아니란 건 금방 체감할 수 있었습니다. 게임은 그저 낚싯밥..
이런 사이트가 있는 줄 몰랐습니다. codingame.com은 주로 단계별로 코딩을 하면서 문제 해결을 위한 알고리즘을 익히며 문제 해결 능력을 올리는 것에 주목적을 두고 있는 사이트입니다. 알고리즘이라는 단어 자체가 뭔 소리인지 모르는 사람도 책을 따라 하다 보면 이해가 가능하게끔 구성이 잘 되어 있다고 여겨졌습니다.
사이트가 제공하는 여러 언어들 중, 책은 Python을 기준으로 진행하고 있습니다. 다른 책들도 그렇지만 최근의 책들은 Python으로 접근하면서 개발에 대한 설명을 하는 경향이 있다고 보였습니다. 그만큼 설명하기 편하고 이해하기가 쉬운 언어라는 것이겠죠?
순서도는 비개발자에게 있어선 별로 접할일도 없고 그저 재미없는 도형의 나열일 뿐이죠. 그래도 문제를, 흐름을 정리하는데 이만한 것은 없는 것 같습니다.
해당 장에서 다루고 있는 문제를 풀기위한 알고리즘에 대해 설명해 주는 부분은 개발자가 아니어도 읽어볼 가치가 있다고 생각되었습니다. 간단한 스크립트 정도는 다루기에 배열에 대해선 어느정도 알고는 있었는데 이것을 알고리즘이라 부르는 것은 이번에 처음 알았네요.(비개발자의 한계?)
각 장마다 해당 과제를 풀기 위한 알고리즘에 대해 설명하고 있기에 알고리즘에 대한 지식이 없음에도 차근차근 읽어 보면 도움이 되는 내용들이라 생각되었습니다. 개발자가 아니다 보니 실질적으로 알고리즘까지 고려하면서 작업해 본 적이 없기에 읽고는 있지만 아직도 생소하긴 합니다. 근데 이게 또 나름 재미가 있네요.
기본적으로 책의 의도 자체가 개발자를 위한 책이란건 알겠지만, 개발자가 아니어도 프로그램에 알고리즘이 어떤식으로 적용되는지 알 수 있기때문에 읽어 볼 가치가 있다고 느꼈습니다.
책 전체를 통해 문제 해결을 위한 알고리즘을 이해할 수 있도록 되어 있습니다. 재미있는 건 이 사이트를 통해서 실력이 입증되면 취업에도 활용 가능하다는 것이죠. 일반적으로 프로젝트를 진행할 경우, 프런트 쪽은 대체적으로 사이트의 소스가 오픈되어 있지만, 백엔드의 경우는 그렇지 못하기 때문에 github 등을 이용하지만, 이마저도 보안서약에 의해 오픈하지 못하는 경우가 있을 수 있습니다.
실제적으로 문제를 해결하는 능력에 대한 검증작업을 codingame을 통해서 일정 부분 파악 가능하지 않을까 하는 생각이 들기도 했습니다.
12. DWARFS STANDING ON THE SHOULDERS OF GIANTS : 재귀 함수를 사용해 트리의 높이 구하기
13. SKYNET REVOLUTION : I will be back to search
PART 03. 고급 퀴즈 해결하기
14. TAN NETWORK : 최단 경로를 알려드립니다
15. ROLLER COASTER : 최고의 롤러코스터 타이쿤 되기
[이 책의 주요 특징]
1. 탄탄한 학습 설계 : 3단계 난이도별 구분과 문제 분석부터 해결, 5단계 길잡이 풀이법까지 초보자도 따라할 수 있는 탄탄한 구성
2. 이론과 실전의 결합 : 알고리즘 이론서보다 쉬운 설명과 그에 걸맞는 문제가 있어 실전처럼 바로 문제에 활용
3. 사고의 확장 : 문제풀이에서 끝나지 않고, 꼬리에 꼬리를 물고 그이상의 해법을 함께 생각하도록 자극하는 코너(좀 더 생각해 봅시다) 제공
4. 코딩 테스트의 즐거움 : 시각적 재미가 가득한 게임 문제를 통해서 흥미를 잃지 않고 지속할 수 있는 코딩 테스트
[서평]
예전에는 미국의 구글, MS, 아마존 같은 대기업 혹은 실리콘 밸리의 소프트웨어 회사 입사때 코딩 테스트봅니다. 요즘 한국에서도 알만한 소프트웨어 회사는 입사때 코딩 테스트를 봅니다. 그래서 프로그래머로 취업을 하기위해서는 코딩 테스트를 대비해 알고리즘 공부를 해야 합니다. 하지만 시중에 나온 알고리즘 책들을보면 너무 딱딱하고 어렵고 그렇습니다. 수학 문제 풀듯이 지루하고 재미가 없습니다.
‘게임으로 익히는 코딩 알고리즘’은 코딩게임이라는 플랫폼으로 알고리즘을 재밌게 배울수 있게 도와줍니다. 게임 속에 적용된 알고리즘의 문제를 풀면서 게임 하듯이 코딩 테스트를 할수 있습니다. 그리고 정말 게임처럼 레벨업 개념이 있어 매일 성장하면서 코딩 실력 또한 하루 하루 좋아지는걸 경험 할수 있을겁니다. 그리고 혼자서 알고리즘 문제를 푸는것이 아니라 온라인 상의 친구들과 게임하듯이 경쟁하면서 코딩 테스트를 할수 있습니다.
이책의 특징으로는 3단계 난이도별 구분과 문제 분석부터 해결, 5단계 길잡이 풀이법까지 초보자도 따라할 수 있는 탄탄한 구성되어 있습니다. 문제풀이에서 끝나지 않고, 꼬리에 꼬리를 물고 그이상의 해법을 함께 생각하도록 자극하는 코너(좀 더 생각해 봅시다) 제공하고 있습니다.
부록으로 취업한 선배님들의 인터뷰 기술에 대한 소개 와 프로그램 이해에 도움되는 수도코드 또한 많은 도움이 될것입니다.
프로그래밍 실력을 높이고 싶은 학생 또는 신입 개발자분, 기존에 알고리즘 공부를 하다가 어렵고 재미가 없어 중도 포기한 분들에게 추천할 만한 책입니다.
“게임으로 익히는 코딩 알고리즘” 서적은 취업, 이직, 승진 등 코딩 테스트를 준비하고 계시는 분들께 추천 드리는 알고리즘 학습서입니다.
요즘 취업이나 코딩 테스트를 위해 알고리즘 학습이 유행입니다. 실제로 많은 기업들이 개발자 구인을 위해 기술 인터뷰와 코딩 테스트를 실시하고 있습니다.
시중에 다양한 알고리즘 학습 서적이 출간되어 있지만, 아래 이유로 독자 여러분께 이 책을 추천 드립니다.
1. 부록A에 유명 기업에서 실시하고 있는 채용 프로세스에 대한 선배 개발자 9인의 인터뷰가 수록되어 있습니다.
실제 코딩 테스트에서 중점적으로 확인하는 것이 무엇이고, 그 비중은 얼마나 차지하는지 그리고 기술 인터뷰(면접)은 주로 어떤 점을 확인하는지 자세히 서술되어 있습니다. 인터뷰 내용을 보시면 알겠지만, 게임회사의 경우 알고리즘과 자료구조는 기본적으로 테스트 항목에 포함되어 있습니다.
2. 책에서 사용되는 프로그래밍 언어는 파이썬입니다. 파이썬 개발자가 아닌 독자는 책에서 다루고 있는 게임 코딩의 정답 확인이 어려울 수 있는데, 이 점을 고려하여 부록B에서 수도코드(Pseudocode)를 제공하고 있습니다.
그래서 파이썬 외의 프로그래밍 언어를 사용하고 있는 독자들은 어렵지 않게 이 코드를 보면서 정답 코드를 유추할 수 있습니다.
참고로 코딩 게임에서 사용할 수 있는 프로그래밍 언어로는 C#, C++, Java, JavaScript, Python3, PHP 등 최신 언어 25가지 이상을 지원합니다.
3. 알고리즘과 자료구조는 학습량도 많고 지루하고 어려운 분야입니다. 그래서 이 책은 코딩게임(www.codingame.com)이라는 사이트에서 제공하는 프로그래밍 퍼즐 문제를 하나씩 풀어가면서 알고리즘을 학습하도록 구성되어 있습니다.
* 코딩게임: 각종 프로그래밍 퍼즐 문제와 AI 프로그래밍 대회를 통해 코딩 능력을 키우고 프로그래밍 알고리즘 학습에 도움을 주기 위해 개발된 플랫폼
코딩게임 사이트가 영어로 되어 있기 때문에 게임의 목표, 규칙 등을 완벽하게 이해하기는 쉽지 않습니다.
그래서 게임의 목표, 규칙, 조건, 주의사항, 제약사항 등을 상세히 서술하기 때문에 독자는 번역의 어려움에서 벗어나 코딩에만 집중할 수 있습니다.
4. 레벨마다 게임을 해결할 알고리즘과 해법을 상세하게 설명합니다. 우선은 적용할 알고리즘, 자료구조, 설명을 참고하지 마시고 스스로 풀어 보시길 추천합니다.
이 책을 좀 더 효율적으로 학습하기 위해서, 배열 등 기본 자료구조는 알고 있는 것이 좋습니다. 특히 특정 프로그래밍 언어의 문법(조건문, 반복문 등)은 다루지 않기 때문에 사용하는 프로그래밍 언어의 문법에 익숙해야 합니다.
큐, 스택, 해시맵 등 기본적인 자료구조와 알고리즘이 이 책에서 자세하게 설명이 되어 있지만 이해가 어렵거나 다양한 예제를 다루고 싶은 독자들은 아래 서적을 참고하시면 많은 도움이 될 것입니다.
개인적으로 풀어보기도 했고 회사에서 팀원들과 스터디 형태로 진행하기도 했었다. 의욕 있는 사람이 생각보다 적어서 금방 흐지부지되었던 게 아쉬운 기억으로 남는다.
문제가 주어지면 전체 코드나 일부 코드를 입력하여 여러 가지 테스트 케이스를 통과해야 한다는 해결 방식은 거의 비슷한 것 같다. 프로그래밍 챌린지의 경우에는 성능 점수 랭킹도 있었던 것 같다. 책에서 다루는 코딩 게임 사이트의 경우에는 기존에 알던 것과 다르게 매우 화려한 UI를 보여준다. 마치 게임 로비에 들어와 있는 것 같았다.
이런 종류의 알고리즘 학습 사이트는 문제의 범위가 한정적이고 점수를 알려주는 게임 시스템을 가져왔기 때문에 접근성도 좋고 성취감도 얻기 쉽다. 거기에 코딩 게임은 입력한 코드를 게임 화면을 통해 영상으로 보여주기 때문에 더욱 즐겁게 공부할 수 있다. 챕터별로 한 문제씩 풀어볼 수 있기 때문에 비슷한 취미(?)를 가진 사람을 모아 같이 스터디하면서 보면 좋을 것 같다. 토론하면서 구현 방법이나 효율적인 코딩, 성능 등에 대해서도 실력을 키울 수 있을 것이다.
문제는 조건 반복문처럼 기본적인 것부터 시작한다. 그리고 점점 심화된 문제가 나오고 길 찾기 알고리즘까지 소개해준다. 사실 큐나 스택, 트리, 다익스트라 등 자료구조나 알고리즘에 대한 부분은 대학교에서 컴퓨터공학을 전공했다면 아마 다 공부해봤을 것이고 처음 접하는 주제는 아닐 것이다.
컴퓨터를 전공하고 있거나 경력 있는 개발자들에게 필수라고까진 하기 어려울 것 같다. 대신 프로젝트나 제품의 특성, 맡은 업무에 따라 알고리즘 문제들을 자주 접하지 않는 개발자가 많은데, 이런 식으로 재미있게 학습하면 추상적으로는 알고 있어도 손이 움직이지 않는 경우가 생기지는 않을 것이다. 이직 등을 위해 면접을 준비하는 경우에도 큰 도움이 될 것이다. 책의 부록에서도 개발 직군의 면접에 관한 내용도 인터뷰 형식으로 들어있다. 특히 신입이나 아직 열정이 많이 남아있는 분들에게 추천하고 싶다.
컴퓨터를 공부한다면 꼭 필요한 알고리즘, 하지만 처음 컴퓨터 공부를 하는 사람들이나 보통 사람들은 알고리즘을 시작하기는 해도 보통은 정렬이나 탐색까지만 가도 이해력이 부족하기 시작한다. 물론 필자도 그런 시기가 있었다. 그때 필자는 어떻게든 이해하려고 코드를 1줄 1줄씩 직접 해석하면서 열심히 공부했는데 이번에 이 책의 설명을 보고 왜 필자가 공부할때는 이런 책이 없었을까.. 라고 생각했다. 이 책은 우리와 친근한 게임과 연관시켜서 알고리즘을 설명하는데 어떻게 효율적으로 우리를 알려줄지 한번 알아보자
메인 내용
이 책은 크게 3개의 파트로 이루어져있고 처음에는 기본적인 코딩의 이해를 설명하고 2장은 직접 게임과 연관시켜서 알고리즘을 설명하고 3장은 응용문제를 실제로 풀 수 있는데 전개가 매우 깔끔하다. 주 내용인 2장을 보면 13개의 알고리즘을 각각의 게임과 연관 시켜서 설명해주는데 다소 억지스러운 부분도 가끔씩은 있지만 전체적으로 이해하기 쉽고 그림으로 설명도 잘 해주어서 글을 읽기도 쉬웠다.
나의 생각
알고리즘은 코딩의 필수불가결한 존재이다. 하지만 그만큼 이해하기가 힘들다. 한번 이해를 하면 계속 쓸 수 있지만 그 한번 이해하기가 정말 힘든데 이 책은 그런 부분을 정말 잘 캐치한 것 같았다. 일단 쉽게 다가와서 점점 이해시켜주고 심화과정까지 이어지는 부분이 매우 매끄러웠다. 가끔씩 생각이 안날때 이 책은 다시 보기도 편하고 친근하게 다시 볼 수 있어서 좋은 책인 것 같다.
마무리
코딩을 시작하는 사람들이 늘면서 알고리즘 입문서도 점점 늘고 있는데 그 중에 게임에 관심이 많은 사람이라면 더욱 쉽게 다가가고 이해하고 매치 시키기도 쉬울 것이다. 알고리즘 입문서~ 중급자에게 매우 추천할 만한 좋은 책!
탑코더, 리트코드, 해커랭크 등 수많은 알고리즘 공부&경쟁 사이트들이 있지만 알고리즘 문제 자체에 게임의 형식을 차용한 곳은 많지 않다. 메이저한 곳 중에서는 본서에서 다루고 있는 코딩 게임 사이트가 있다. 여기에 올라오는 퍼즐 중 사이트에서 직접 제공하는 것들은 모두 그래픽을 씌운 게임의 형태이다. 쉬운 퍼즐도 화려한 그래픽으로 무장하고 있기 때문에 처음 알고리즘을 공부하는 사람이라면 큰 노력없이 자신이 짠 코드에 그래픽이 덧붙여져서 작동하는 것을 감상할 수 있기 때문에 좀 더 흥미를 가질 수 있다.
나는 이 사이트에 예전부터 가입해 있었지만, 이 책을 받고 나서 다시 들어가보니 예전 기록은 13레벨에서 멈춰 있었다. 책에서 제공하는 예제를 풀고, 사이트가 아닌 유저들이 직접 만든 커뮤니티 퍼즐을 몇 개 더 풀고 나니 15레벨이 되었다. 사이트에서 제공하는 퍼즐은 Easy, Medium, Hard, Very Hard의 난이도로 구분되어 있다. 책에서는 이 중 Easy 3문제, Medium 8문제, Hard 2문제를 다룬다. 언어로는 python을 사용하고, 독자가 노력 없이 답만 베껴서 문제를 푸는 것을 막기 위해 답의 전문을 제공하지는 않는다. Easy와 Medium 문제들을 다룰 때 저자는 문제와 함께 이 문제를 풀기 위한 프로그래밍 기본 개념을 자세히 설명한다. 마치 프로그래밍 입문서라고 해도 손색이 없을 정도이고 책도 컬러이기 때문에 초심자에게 추천할만하다. 예전의 나처럼 기초가 부족한데 의지도 부족한 사람이라면 이 책을 집어들고 Easy 장의 코드를 하나하나 따라하면서 문제도 풀고 사이트의 레벨도 올릴 수 있겠다. 게이미피케이션(Gamification)은 언제나 보통 이상을 해내는 훌륭한 도구이다.
책의 내용에 비해 제목이 좀 아쉬운데 처럼 책에서 다루는 사이트를 직접 제목에 명시해도 좋았을 것 같지만, 독자를 한정하는 효과도 있었을 것 같다. codingame이 top coder만큼 유명한 사이트는 아니기 때문에 홍보에 큰 도움이 되지 않을 것이라고 생각했을지도 모르겠다.
『게임으로 익히는 코딩 알고리즘』, 김영기 지음, 한빛미디어, 2019
얼마전 일본 소프트뱅크의 손정의 회장이 한국을 방문해 문재인 대통령을 만나 ‘한국의 미래를 위해 필요한 것은 첫째도 AI, 둘째도 AI, 셋째도 AI’라고 이야기했다는 기사를 접했다. AI가 결코 먼 미래의 이야기가 아니라, 지금 당장 우리의 실생활에 적용될 것이라고 느낀게 된 계기는 이세돌 구단과 알파고의 바둑대결 이후로 기억된다.
인공지능, 딥러닝, 머신러닝이라는 단어들이 동어반복처럼 들릴 만큼 IT 용어에 낯설었는데, 알파고를 계기로 딥러닝과 머신러닝의 차이를 알게 되었다. 그리고, 이러한 AI의 급속한 발달은 자율주행 차량, IoT에 적용되며 우리가 실생활에서 하는 많은 활동들을 대체함으로써 편리함을 제공할 것이기에 반가운 마음이지만, 다른 한편으로는 현재의 많은 직업들이 사라질 것이라는 불안감이 들기도 했다.
AI의 중요성은 알겠는데, AI로 인해 변화될 세상에 대해서는 알겠는데, 나는 AI의 변화에 어떻게 대응해야 하는 것인지는 감이 잡히지 않았다. AI의 핵심이 알고리즘이고, 이 알고리즘은 컴퓨터 프로그래밍을 기반으로 한다는 것을 알게 되면서 경제학을 전공한 나와는 아주 먼 이야기로 들렸다. 프로그래밍 언어를 처음부터 시작해야 하나라는 생각에 의욕이 껶꺾여버렸다.
그런데, 게임으로 익히는 코딩 알고리즘은 꺾인 의욕을 다시금 일으켜 세워줬다. 네덜란드의 역사학자 요한 하위징아는 인간을 호모 루덴스(놀이하는 인간)이라고 했다. 노동으로써 하면 지루한 일들도 놀이로는 즐기면서 하게 되는 호모 루덴스. 『게임으로 익히는 코딩 알고리즘』은 코딩게임을 통해 알고리즘을 익힐 수 있는 방법을 소개하고 있다.
게임 형식이 아니라면 딱딱한 내용이고, 문제해결 중심이 아니라, 텍스트 위주로 익힐 수 밖에 없었을 것이다. 하지만 게임이다 보니 주어진 문제를 해결하기 위해 집중하다보니 코딩에 대해 더 깊이 이해하게 되는 것 같다. 코딩언어로만 설명하지 않고, 간단한 그림을 삽입하여 비전공자라도 쉽게 이해할 수 있고, 논리 흐름을 따라갈 수 있게 구성되어 있어 이해하는데 무리가 없었다.
빅데이터를 활용하는 것이 현재 업무에 도움이 될 것이라고 믿어 의심치 않는다면, 알고리즘, 코딩을 익혀야 함은 자명하다. 다만 어떻게 해야 할지 방법을 찾고 있었다면 『게임으로 익히는 코딩 알고리즘』을 추천한다. 게임을 즐기듯 빠져들게 된다. 코딩의 기초부터 시작해 고급 난이도까지 빠르게 익힐 수 있다.
리뷰에 앞서 본 리뷰는 한빛 출판 네트워크에서 진행한 ‘나는 리뷰어다’ 이벤트에서 제공받은 책으로 진행한 것을 밝힙니다.
정확히 기억이 나지는 않지만, 4~5년 전부터 현재 다니고 있는 회사에서 프로그램 코딩 실력을 시험하는 제도를 도입하고, 사원들에게 사내 자격을 취득하도록 독려하고 있다. 자격 취득을 위해 시험을 보면, 알고리즘을 응용하여 주어진 문제를 정해진 시간내에 푸는 문제가 제시된다. 현업에서 작성하는 코드와는 일견 관련이 없는 것처럼 보이고, 고급 알고리즘을 사용하지 않더라도 당장 프로그램을 구현하는 데에는 문제가 없는 경우도 많이 있다. 그러다 보니, 왜 이런 자격을 취득해야만 하는지에 대해 의문을 제기하는 사람들 역시 존재한다.
하지만, 이러한 자격 시험의 목적은, 프로그램 작성을 위한 기초 체력을 키우는, 즉 유연한 생각을 가지고 복잡한 문제를 제대로 해결을 할 수 있도록 하는 데 있다고 생각한다. 좀 더 높은 자격을 취득하기 위해, 평소에는 소홀히 했던 자료구조를 다시 공부하게 되고, 이를 응용한 문제를 다시 풀어 보면서, 이런 저런 문제 풀이 방법을 고민해보고... 이런 과정을 반복하면서 굳어져가는 머리를 조금씩 부드럽게 하는 연습을 할 수 있다고 생각한다.
이러한 자격 취득을 현업 개발자 뿐만 아니라, 취업을 준비하는 사람들에게도 요구를 하다보니, 시중에는 여러가지 알고리즘 트레이닝 관련 책들 및 온라인 judge 사이트가 다수 존재한다. 보통 이러한 책들에서 설명하는 문제의 유형은 온라인 사이트에서 제시하는 내용과 크게 다르지 않다. 책을 이용해 문제를 풀기 위해 필요한 알고리즘을 종류와 원리를 이해하고, 이를 바탕으로 온라인 사이트에서 문제를 풀어보고 하는 과정을 반복하면서 실력을 늘리는 분들이 많이 있을 것이라 생각된다.
아무래도 어려운 문제 풀이 과정을 반복하다보면 지루해지는 감이 있는 것이 사실이다. 리뷰를 하기 전에는 사실 codinggame 이라는 온라인 사이트가 존재하는 줄 몰랐다. 리뷰를 하면서 문제를 직접 사이트에 접속해 풀어보면서, 코드 작성과 디버깅 모두 지루함을 느끼지 않는 다는 것을 느꼈다. 본 사이트에 제시된 문제들은, 작성자가 특정 조건을 만족하고, Test case들을 풀어나감에 따라 화면에 게임이 진행되는 것을 볼 수 있다. 그리고 문제 디버깅 역시 단계별로 게임 진행 상황을 보면서 체크할 수 있어 생각한 것보다 더 재밌게 코드 작성을 즐길 수 있도록 유도하고 있다. 그리고 이 사이트의 또 다른 장점은 문제 풀이에 사용할 수 있는 언어가 다양하다는 점이다. 보통 온라인 사이트들을 보면 C, C++ 만을 이용할 수 있는 곳이 많이 있는데, 이 곳은 Python, Ruby, Go, C# 등 인기있는 다양한 언어를 이용할 수 있다.
이 책의 저자는, 즐겁게 코드를 작성하고 실력을 늘려갈 수 있도록 해당 사이트의 이용방법에 대한 설명을 시작으로, 간단한 문제부터 어려운 난이도까지 문제를 풀어가면서 알고리즘 트레이닝 및 사이트 이용방법 모두에 대해 설명을 해 주고 있다. 책에서는 단순히 문제만 푸는 것이 아니라, 어떤 문제에 어떤 알고리즘이나 자료구조를 적용하여 문제를 푸는 것이 좋은지, 그리고 어떻게 문제 풀이를 접근해야 하는지도 하나 하나 짚어주고 있어, 알고리즘 트레이닝 입문자에게 있어, 큰 도움이 될 것으로 판단된다. 사실 문제를 보고 덥썩 코딩부터 시작하는 사람들도 많이 있는데, 저자는 어떤 식으로 문제를 파악해야 하는지, 그리고 문제를 푼 후, 속도를 최적화하기 위해 접근해야 하는 방식에 대해서도 집어주고 있어, 입문자가 아니라 문제 풀이 방식을 배우고자 하는 분들에게도 도움이 될 수 있다고 생각한다. 또 Python을 이용한 문제 풀이 과정을 따라 하면서 Python 언어에 익숙치 않은 사람들에게 있어서, 적절한 Python 사용법도 익힐 수 있다.
그러나, 이 책의 목적과 다르게 고급 실력을 키우려는 사람들이 이 책을 선택했을 때는, 원하는 바와 맞지 않을 수 있다고 생각한다. 대부분의알고리즘 트레이닝 책들과 마찬가지로 이 책 역시 반드시 다루어야 하는 내용들을 다루고 있다. 이 부분은 중급 이상의 고급 문제 풀이 과정을 기대하는 분들에게는 이 내용들이 시중에 나와있는 다른 책들의 내용과 중복되는 면이 있다고 생각할 수 있기 때문이다.
하지만, codinggame 사이트를 통해 즐겁게 코드를 작성하고, 이를 통해 프로그램 작성의 응용력 및 기초 체력을 증진 시키는 것을 원하는 분들에게는 이 책이 목적에 딱 맞는 책이 될 것이다.
'게임으로 익히는 코딩 알고리즘'이라는 책 제목을 보았을 때, '게임 프로그래머' 직군과 관련된 책일 것이라고 생각했다. 같이 있던 프로그래머 직군 지인도 그렇게 보았으니 어쩌면 이건 북 디자이너가 노린 것일지도 모르겠다. 따지자면 거짓말은 아니지만, 우리가 기대했던 그런 것은 아니었다는 거다.
'게임으로 익히는 코딩 알고리즘' 책은 코딩 알고리즘을 게임을 만들면서 단계적으로 익힐 것 같은 뉘앙스를 풍기는 제목이지만, '코딩 게임' 사이트에서 '코딩'을 하면서 '알고리즘'을 단계적으로 숙련시키는 내용의 책이다. 크게 보면 결국 게임 개발에도 '알고리즘'은 필요하니 이 책이 '게임 개발'로의 단계를 밟아줄 수는 있겠지만, 작게 보면 '알고리즘' 서적 중 하나일 뿐이다. 그러니 게임을 만들려고 이 책을 집어 든 '게임 개발자'들은 다른 책을 찾아보도록 하자.
뒤표지에는 '나의 코드로 나의 레벨을 확인해보자'라고 쓰여 있는데, '코딩 게임' 사이트에서 코딩을 하면서 실력에 따라 레벨이 올라가니 이것도 틀린 말은 아니다. 파이썬 기반으로 되어 있으며, 이론을 마치고 응용 단계에서 좀 더 응용력을 키우고 싶다면 이 책은 충분히 도움이 된다. 물론 난 기획자고 프로그래밍을 공부하지만 프로그래머는 아니다.
그러니 이런 사이트는 존재 유무도 몰랐다. 프로그래머 지인에게 물어보니 이곳 말고도 코딩 사이트는 많다고 한다. 다른 사이트들도 이렇게 화려한 그래픽과 함께 코딩 게임을 하는지는 잘 모르겠다. 연습 모드와 경쟁 모드가 있다는 것도 흥미롭다. (사실 한편으로는 이 책이 저 사이트의 광고 채널인가 싶기도 했다)
그렇다. 이 책의 기반은 파이썬이다. 코딩 게임 사이트는 여러 가지 프로그래밍 언어를 제공하기 때문에 평소 사용하는 언어를 사용하여도 무방한데, 그 와중에 쉽고 이해하기 좋은 언어로 파이썬을 고른 것 같다.
하지만. 이 책의 대상 독자가 프로그래밍은 1도 모르는 지망생이나 입문 단계가 아니라, 기본 문법을 학습했지만 막상 코딩을 시작하려니 막연한 사람이라는 것을 기억해야 한다. 기본 문법을 알고 있는 사람에게 응용의 기회를 제공하는 것일 뿐, 생초보를 위한 것은 아니라는 것!
코딩 게임 사이트의 홍보 채널 같기도 하고, 실제적으로는 게임 개발이 아닌 코딩 알고리즘을 배우는 책이지만, 낮은 단계의 알고리즘부터 시작해서 상위 단계의 알고리즘으로 이어나가며 순차적으로 응용력을 키울 수 있는 것은 좋아 보인다. 그리고 솔직히 이런 방법으로 공부하면 요즘 코딩 교육받는 아이들처럼 즐거운 마음으로 공부할 수 있을 것 같기는 하다. 필요에 의한 것도 좋지만 역시 재미있는 것을 이길 수는 없는 법이다.
뒤에는 부록으로 먼저 취업한 프로그래머들 8~9명 정도의 인터뷰가 담겨 있다. 궁금하다면 책을 사서 읽어보자. 역시 이론보다는 이런 살아 있는(?) 이야기가 재미있는 법이다.
요즘 알고리즘에 대해서 관심을 갖기 시작해서
이 책을 선택했습니다
대충훑어 보았을 때는 게임 시나리오 같은 것이나 게임 구현 관련 예를 섞어서 알고리즘을 설명하는 책 인 줄 알았는데요
읽다보니 진짜 알고리즘 게임에 대한 이야기 이더군요
알고리즘 미션을 코드로 풀면서 등급을 높여나가는 게임 사이트가 있는데요
이 사이트를 해설해주고
그 중에 저자가 설명하고 싶은 알고리즘을 사용하는 미션들을 선택해서 게임을 풀어가는 방법과 알고리즘을 해설해 주는 내용이었습니다
몰입이라는 개념에 대해서 세계적인 권위자인 미하이 칙센트 미하이가 쓴 "몰입"이란 책을 읽은 적이 있습니다
칙센트는 다양한 상황에서 몰입을 느껴보았던 사람들을 수배해서 인터뷰를 했고 그의 저서의 이름을 flow로 정했습니다
우리말로는 "몰입"이라고 번역된 flow는 사실 떠다니는... 흐르는... 이런 뜻이지요
몰입 속에 있는 사람들은 시간이 지나가는 것을 잊고 그 상황 속에 몸과 마음이 떠있고 흘러가는 느낌을 받았던 것입니다
그는 몰입에 이르는 방법도 설명했는데요
그것은 학습과 도전의 반복이었습니다
도전해서 성취할만한 과제를 수행하고 이것을 계기로 학습을 조금해서 성장한 다음 조금 더 어려운 과제에 도전 하고
조금 더 학습해 나가는 그런 방식입니다
이런 사이클이 잘 이루어지면 대상자는 몰입할 수 있다고 하는 군요
우리가 게임에 잘 빠져드는 이유는 여기에 있습니다
학습욕구가 생기는 도전과제가 난이도 별로 존재하기 때문이죠
이 책은 알고리즘 학습에 이런 방식으로 몰입할 수 있는 단초를 제공해주는 것 같습니다
다만 이미 알고리즘에 대해서 꽤 알고 있는 상황이라면 몰입이 힘들 수도 있습니다 왜냐하면... 몰입 사이클에서 학습이 빠지게 되거든요
(이 책은 책 서두에서도 밝히듯이 초보자들을 위해 작성 된 것 같더군요)
그러나 이 책을 통해서 알고리즘 게임에 적응해 본다면 알고리즘에 대해 경험이 있는 사람도 도움을 받을 수 있을 듯 합니다
프로그램을 개발할수록, 코딩을 하면 할수록 (메모리 관리가)효율적이고 (반응속도 향상에) 효과적인 동작을 하기 위해서 알고리즘에 대한 공부가 필요해졌다. 그래서 관련 책을 찾다가 한빛미디어에서 출판된 책을 알게 됐다.
이번에 읽은 "게임으로 익히는 코딩 알고리즘" 에서는 "코딩게임"이라는 사이트를 이용해서 알고리즘을 공부하는 방법을 알려주고 있었다.
알고리즘을 그냥 책으로 학습하면 이해하기 어렵거나 집중하기 어려운데 실제 게임으로 동작을 확인하니 더욱 학습의욕이 높아지는 것 같다. 그리고 책에서는 게임에서 풀어야할 문제들을 해결하기 위해서 단계적으로 접근하고 있는데 가장 좋은 것은 5번 이었다. 문제를 풀고 다시 생각하는 과정은 정말 중요한 것 같다.
개발에 사용하는 언어는 파이썬이었는데 요즘 대세 언어이기도하고 사용하기도 쉬워서 빠른 학습에 더욱 도움이 되는 것 같다. 책은 초급자를 기준으로 작성했기때문에 기존 개발자는 좀 더 편안하게 진도를 나갈 수 있는 것 같다.
알고리즘의 기초에 대한 설명이 책 초반부에 나온다. 이 부분에 대한 설명도 쉽게 잘 되어있었다. 책 뒤쪽부분은 취업에 성공란 선배들의 인터뷰가 있었다. 회사생활에 대한 이야기인데 취업준비생들은 읽어보는게 좋은 것 같다. (회사에 따라서 다른 환경일 수 있으니, 그걸 감안하고 읽어야한다) 그리고 다른 부록으로 수도코드가 있었다. 학교 다닐때 알고리즘책에서 대부분의 알고리즘을 수도코드(휴도코드)로 설명했는데 큰 맥락은 비슷한 것 같다.
코딩테스트를 아는가? 프로그래머로 취업 전선에 뛰어든 많은 이들을 떨게?하는 것 중 하나가 바로 코딩테스트 이다. 필자는 프로그래머는 아니다. 그러나, 학부때의 전공과 달리 대학원 석,박사 과정을 컴퓨터과학 분야로 진학하면서, 코딩 테스트를 경험해 본적이 있다. 기억나는 테스트 문제는 병합정렬 알고리즘을 이용해 주어진 데이터를 정렬 하는 것이었다. 운좋게도 겨우 넘겼지만, 조금 더 복잡했다면 테스트에서 떨어졌을지도 모른다.
만약 여러분이 희망하는 직업이 개발자가 아니라도 프로그래밍 능력이 필요한 직군에 지원한다면, 기본적인 프로그래밍 개념과 고급 자료구조 알고리즘까지는 알아두기를 권한다. 그러나 이건 분명 어려운 것이다. 기본 정렬알고리즘까지는 어떻게 하더라도, 최단경로, 너비우선탐색 등이 나오면 아득히 정신이 멀어지는 경험을 할 수 있다. 개인적으로 이런 알고리즘 공부의 어려운 점은 프로그램 처리 과정을 눈으로 볼 수 없다는 것이다. 알고리즘 이란 이름으로 일부 과정을 추상화된 글이나, 의사코드 등으로 나타내지만 눈으로 값의 변화를 모두 따라가기는 어렵다. 이 책 <게임으로 익히는 코딩 알고리즘>의 가치는 여기서 나타난다. 하나씩 게임을 풀다보면 변수에 담긴 값의 변화가 눈에 보이고, 콘트롤 플로우도 보이게 된다. 여기에 게임이 주는 흥미 요소가 가미 되어 학습이 아닌 놀이로 느껴지는 착각?이 일어난다. 물론 후반부로 갈 수록 머리가 아파오지만, 기존의 알고리즘 문제플이 문항에 비해서 엄청나게 흥미가 있다는 것은 장담한다.
우리가 일반적으로 배우는 알고리즘은 사실 계륵과 같은 존재라 할 수도 있다. 실제 프로그래밍에 있어, 꼭 사용된다고 말하긴 힘들고, 이미 많은 것들이 사용하기 편하게 라이브러리 형태로 제공되어 힘들여 코딩할 필요가 없기 때문이다.
그런데도 학교 수업이나 회사 취업에서 알고리즘을 무척 중요시하는 것은 개발자의 필수 능력이라 할 수 있는 문제 분석 능력을 알고리즘을 통해 알아볼 수 있어 서다.
실제 프로그램 현장에서는 책에는 전혀 나오지 않는 아주 다양한 문제들을 접하게 되는데, 대부분 개발자 혼자서 해결해야 하는 경우가 많다.
그렇기 때문에 각종 프로그램 개발사들은 사원을 뽑을 때, 어떤 문제를 스스로 해결할 수 있는 능력이 있는지 없는지를 판단하기 위한 방법으로 알고리즘 테스트를 하는 것이다.
그런데 솔직히 알고리즘 공부는 재미없고 지루하다. 특히 책 잘못 선택하면, 알고리즘이란 단어만 들어도 알레르기가 생길 거 같은 거부감까지 생긴다. 속도와 효율을 따지는 알고리즘인데, 알고리즘 공부는 정반대인 경우가 많다.
하지만 '게임으로 익히는 코딩 알고리즘'은 좀 다르다. 사전식 알고리즘 책이 절대 아니다. 이 책은 재미도 있고, 진도도 빠르게 나간다. 코딩게임 www.codingame.com 사이트에 있는 알고리즘 문제를 통해 파이썬도 배우고, 주요 알고리즘을 체계적으로 익힐 수 있는 책이다.
워낙 알고리즘 책이 재미없는 게 많다 보니, 처음엔 큰 기대하지 않고 봤는데, 이 책은 이상하게도 한번 책을 들면, 빨려 들어가는 느낌으로 계속 읽게 되었다. 그만큼 재미적 요소를 가진 책인 것이다.
우선 코딩게임 사이트에 있는 알고리즘 문제를 주제로 자세한 설명을 하고 있다 보니, 알고리즘을 배운다는 느낌보다는 게임 미션을 수행하는 기분이 더 든다. 학습 부담이 그만큼 적고, 편한 마음으로 책을 볼 수 있다는 것이다.
그리고 알고리즘 문제를 풀고 바로 정답을 알려주는 것이 아니라, 떠오르는 데로 해결 방법을 1차적으로 코딩을 해본 뒤, 실행시켜보고, 문제가 발생되면, 무엇을 잘못했는지 확인하고, 다시 수정해서 문제를 해결하는 과정이 일반 프로그램 개발 과정과 같다. 게다가 문제 해결로 끝나는 것이 아니라, 효율이나 더 좋은 방법을 고민하는 코드 최적화 과정이 있어, 더욱 실제 코딩 과정과 아주 유사하다 말할 수 있다.
책에는 이러한 과정을 문제 설명, 어떻게 풀까요?, 필요한 알고리즘은?, 풀어 봅시다, 더 생각해 봅시다, 5 단계로 나눠 구성하고 있다.
보통은 알고리즘을 공부하다 보면, 이거 어따 써먹나 생각하게 되는데, 이 책에는 최단 거리 우주선 공격이나, 주식 팔기, 카드게임, 폭탄찾기, 롤러코스터 매출 계산과 같이 게임이나 실제로도 사용될 가능성이 있는 현실성 있는 문제들이 나와서 실제 개발 과제를 받은 것과 같은 느낌을 받게 한다. 아직 개발을 경험하지 않은 초보 프로그래머에게는 아주 좋은 현장 체험의 시간이 될 수 있다.
책 내용은 뒤로 갈수록 어렵다. 그만큼 설명도 더 많아지고, 여러 가지로 코딩에 대한 고민도 많이 한다. 각 과정별 코딩 결과는 부록에 모여 있는데, 코드를 다 적지는 않고, 일부는 글로 풀어써 놨다. 무조건 베껴 쓰지 말고, 조금이라도 생각하라는 저자의 노파심이 엿보이는 부분이다.
부록에 또 한가지 있는 건, 개발사에서 일하거나 회사를 운영하는 개발자 선배들의 취업 조언이 담겨 있는데, 이것을 읽어보면, 왜 알고리즘을 배우고 익혀야 하는지, 어떻게 쓰이게 될지, 취업 시 어떤 테스트를 하는지, 확실히 알게 될 것이다. 알고리즘 책에서 취업 얘기를 보게 되리라고는 전혀 예상 못했는데, 프로그래머를 꿈꾸는 취업 준비생에게 입사시험이나 면접 준비에 딱 좋은 내용이다.
'게임으로 익히는 코딩 알고리즘' 참 재미있게 봤다. 알고리즘 책을 가끔씩 보고 있는데, 본 것 중에서 가장 실전적인 책이라 생각한다. 코딩 시, 문제 해결 능력을 길러주는 좋은 책이다. 코딩에 관심 있거나,, 예비 개발자, 취준생에게 추천하고 싶은 책이다.
처음 제목만 봤을때는 체스, 장기, 지뢰찾기 등등 전략 게임 속에서 알고리즘을 찾아가는 류의 이론서적인줄 알았다
제목에 들어간 게임은 진짜 코딩게임이었다.
요 책은 CodinGame이라는 사이트에서 15개의 프로그래밍 문제를 선정해 문제를 소개하고, 풀이 방법을 자세하게 설명해주는 책이다.부록으로 현직자분들의 인터뷰도 실려있다.
이 책의 심장은 CodinGame이므로 이 사이트에 대해 조금 소개하자면, 아래와 같이 생겼다.
일반적인 알고리즘 문제 풀이 사이트들과 다르게 컴파일 결과를 시각적으로 보여준다. 게임이 동작하는 화면처럼 말이다.
문제를 풀면 경험치도 올라가고, 업적도 열린다. 실시간으로 다른 사람들과 경쟁도 할 수 있다.
보통 알고리즘이라 하면 딱딱하다는 인식이 있는데, 이렇게 게임처럼 만들어두니 문제푸는 재미가 더해지는 것 같다.
[문제 설명 → 개략적 풀이법 소개 → 필요한 프로그래밍 방법이나 알고리즘 소개 → 수도 코드 설명 → 보충 설명]
순으로 설명이 진행된다.
문제의 풀이 방법을 소개하는 부분은 집필한 작가님의 머릿속 사고의 흐름을 그대로 옮겨놓은 것처럼 절차에 따라 차근차근, 친절히 설명해준다. 이해를 돕는 시각적인 자료도 풍부하다. 최대한 쉽게 풀어 쓰려한 흔적이 느껴져서, 내용은 술술 읽힌다.
문제만 풀이하는게 아니라 중간중간 스택, 큐, 이진탐색 등등... 필요한 자료구조나 알고리즘에 대한 설명도 함께 나온다.
특정 개념을 설명하는데 페이지를 많이 소모하지 않기 때문에 이 책만으로 알고리즘 이론을 공부하는 데에는 무리가 있는 것 같고, 그냥 한번 읽어보면 좋은 책일듯 하다. 가장 기초적인 조건문부터, 다익스트라 알고리즘까지 설명해주는 개념의 스펙트럼이 넓다.
CodinGame 기준으로 easy부터 hard까지 모든 문제를 다루기 때문에 챕터와 챕터사이 난이도의 간극이 크다.
요새 한창 알고리즘 문제를 끙끙거리며 풀고있는 내 입장에서 보기에 알고리즘을 전혀 모르는 사람이 입문서로 보기엔 조금 어려워보이고, 약간이라도 자료구조와 알고리즘을 접해본적이 있는 사람이라면 도움이 많이 되는 책일듯하다.
그리고 내용이 전반적으로 CodinGame이라는 서비스에 의존적이다보니 구입할거라면 일단 CodinGame에 가입해서 문제를 몇개 풀어보고 취향에 맞는지 한번 확인해보는걸 추천한다. 솔루션을 무한루프 안에 작성해야하는 등... 채점 방법이 일반적인 코딩 테스트 플랫폼이랑 좀 다르다.
알고리즘을 게임과 접목해서 조금이라도 즐겁게 공부해보고 싶은 사람, 기본적인 프로그래밍 개념~필수적인 자료구조/알고리즘의 기초를 쭉 복습하고 정리해보고 싶은 사람에게 추천한다.
제가 이 코딩게임 사이트가 정말 좋다라고 생각했던 이유가 어려운 알고리즘을 배우는데 게임만큼 좋은 방법이 없다는 생각 때문입니다.
꽤 오래전에 저도 비슷한 생각을 하면서 알고리즘을 배울 때 게임로직을 적용하면 어떨까 생각을 하기도 했는데, 그걸 그대로 옮겨놓은 듯한 느낌이었습니다. 그래서 사실 굳이 책이 없어도 게임을 즐겨 하던 사람이라면 [코딩게임]사이트에 금방 익숙해지실 거라 생각합니다.
하지만 사이트의 모든 내용이 영어로 되어 있고, 난 기초에 기초도 전혀 모르겠다 하시는 분은 이 `책 게임으로 익히는 코딩 알고리즘`을 사서 보시면 많은 도움이 되실꺼라 생각합니다.
왜냐하면 이 책은 단순히 알고리즘만 가르쳐주는 것이 아니라, 디테일하게 사이트에 어떻게 접속하고 각 난이도마다 어떤 알고리즘을 써야 하는지 쉽게 한국어로 안내를 해주는 책이니까요!
더불어 알고리즘뿐 아니라 IT에서 흔하게 쓰이는 유머같은 것도 설명을 해주고 있어 단순히 알고리즘만 배우는 딱딱한 서적들보다는 말랑말랑 한 느낌입니다.
전문적으로 코딩을 하고 알고리즘을 익혀야 하는 분들에게는 어떨지 모르겠지만, 기존의 서적들이 너무 어려워서 배우기 힘들다 하시는 분들에게는 최고의 대용품이 되지 않을까 싶습니다.
책의 마지막 부분에는 현직 대표님이나 먼저 공부하고 취업에 성공한 선배님들의 인터뷰 내용도 실려 있어 알고리즘 테스트 외에도 면접을 준비하는데 도움을 받을 수 있는 내용 또한 충실하게 포함되어 있습니다.
저 역시도 취업에 대해 준비하던 시절이 있었는데, 그 때 이런 책이 있었다면 얼마나 좋았을까 하는 생각이 들 정도네요!
생생한 현장경험에 대한 내용은 어디서 쉽게 얻을 수 없는 내용이기에 더 귀중한 내용이란 생각입니다~!
혹시 나는 중급자 레벨인데 겉으로 보기에 이 책이 너무 초급자 내용만 포함하고 있는게 아닐까? 한다면 섭섭한 생각입니다!
현직 개발자인 저도 쉽게 접근하기 어려운 문제들을 어떤 알고리즘을 써야 풀수 있는지 차근차근 설명해주는데 문제에 따라 어떤 알고리즘을 써야 하는가에 대해 쉽게 이해할 수 있게 설명이 되어 있어 책 내용을 이해하면서 따라하다보면 어느새 고급에 와있는 자신을 보시게 될꺼란 생각이 강하게 듭니다.
특히 게임을 만들기를 원하는 취업준비생의 경우 실제 게임에 적용해볼 수 있는 수학적내용도 함께 다루고 있으니 최적인 것 같네요.
조금 아쉽다면 알고리즘이라는 분야를 초보자도 이해할 수 있을 정도로 쉽게 설명하기위해 문제 하나 하나당 페이지수가 상당히 많은 분량을 차지하는 것 같아 많은 문제를 풀어보고 싶은 분에게는 조금 부족할 수 있겠다는 생각이 듭니다.
그래도 이 책을 통해 충분히 연습한 후 [코딩게임]에서 좀 더 연습을 한다면 훌륭한 알고리즘 풀이 능력을 기를 수 있을꺼라 생각합니다.
알고리즘은 이론을 공부하고, 문제는 많이 풀어 보았지만, 그래서 이 알고리즘이 실무에 어떻게 적용하는지에 대한 책은 별로 없는 듯 하다. 하지만, 이 '게임으로 익히는 코딩 알고리즘' 책은 실제 게임에 적용되어 있는 알고리즘에 대해 쉽게 설명되어 있다.
각 장은 우선 게임이 어떠한 게임인지를 알려주고, 그 게임에 목적,규칙과 그 게임에 적용되어 있는 알고리즘의 문제, 입력, 출력이 어떠한지 알려준다. 그런 이후, 그 문제에 대한 접근을 어떻게 해야하는지를 상세히 설명해주고 있다. 설명하기 쉽게, 순서도와 그림이 들어가 있고, 소스로 풀어주며, 문제를 풀어가는 과정을 상세하게 보여주고 있다. 그리고 이 문제를 풀기 위해 어떠한 알고리즘을 이용해야 하는지, 그 알고리즘의 기법에 대해 상세하게 설명해준다.
초/중급 개발자가 실무에 어떻게 적용되어 있고, 그 문제에 대한 접근 방법을 잘 알려주고는 있지만, 고급 알고리즘에 대한 내용은 적다. 마지막에 최단 경로 알고리즘이나 동적 프로그래밍에 대한 내용은 있지만, 조금 어려운 내용들은 없다. 그리고 파이썬 라이브러리를 이용하는 부분들은 거의 없는 듯 하다.
알고리즘에 대한 기본과 문제를 풀어 가는 접근법을 공부하기에 좋은 책인 듯 하다. 요즘에 파이썬을 이용하는 알고리즘 책들이 조금씩 늘어가고 있는데, 그 중에 하나로 보인다.
내가 시간날 때 종종 하던 codesignal과 같은 사이트를 이야기 하는 것인가 하는 생각이 들었는데.
책을 펼쳐보니 맞았다. 그래도 내가 접해보지 못했던 사이트를 기반으로 하였다.
codingame.com 이라는 사이트로 코딩 알고리즘을 익히고, 그것을 통해 어떻게 문제해결능력을 향상시킬 수 있는지에 대한 내용을 설명한 책이다.
표지에는 그림이 없이, 이 책에서 강조하고 싶은 포인트만 담았다.
현재는 괜찮겠지만, 나중에는 좀 올드해보이지 않을까 하는 우려가 된다.
초판발행 2019년 5월 6일자 따끈한 책이다.(5월 중순 이후에 배송받았으니..)
부제로 '취업, 이직, 승진 준비생들을 위한 알고리즘 기본 + 코딩 테스트 트레이닝 북' 이라고 되어있다.
코딩테스트 연습을 위해 사이트에서 문제풀이를 하려고 하는데, 가이드가 되어줄 책으로 보인다.
중요한 한마디가 있어서 발췌를 했다. "공부를 위한 코딩이 아닌 즐거움을 위한 코딩의 세계에 함께 빠져들기를 바랍니다."
그저 코딩게임이라는 사이트에서 문제풀이를 하는데, 이것을 함께 즐기고 싶은 마음에서 책을 쓰게 되었다는 것이다. 이 내용을 보니... 책 쓰는게 엄청나게 대단한 결심보다, 다른사람에게 무엇을 함께하고 나눠줄 수 있을까 하는 작은 마음에서 시작하는구나 하고 깨닫게 되었다.
책은 문제를 중심으로 해결하는 과정을 담았기 때문에, 한 문제를 해결할 때마다 이러한 방법으로 구성했다고 설명하고 있다.
1) 문제 설명
2) 어떻게 풀까 제시
3) 필요한 알고리즘을 소개
4) 풀어보는 과정에 대한 이야기(완전한 정답공개는 별도로 수록하여 스스로 풀 수 있도록 유도)
5) 더 생각해볼 내용이 있다면 이야기해 줌
이 중 특히 네번째 항목이 눈에 띄었는데, 이런 코딩 사이트가 그렇듯 정답이 하나가 아닌것에 유념한듯하다. 그래서 정답을 적기보다는, 각자의 해석에 따라 다른 답을 찾아가기를 원해서 이런 구성을 한 듯 한데, 처음에는 답답했지만, 해결하는 즐거움을 독자도 누릴 수 있도록 배려했다는 것을 느끼게 되었다.
목차는 크게 문제의 해결에 초점을 맞추었기 때문에, 당연히 문제 중심으로 되어있다.
챕터 구성은 다음과 같다.
CH 1. 알고리즘 시작하기
CH 2. 코딩게임 살펴보기
CH 3. THE DESCENT
CH 4. TEMPERATURES
CH 5. CHUCK NORRIS
CH 6. STOCK EXCHANGE LOSSES
CH 7. THERE IS NO SPOON
CH 8. WAR
CH 9. SCRABBLE
CH10. SHADOWS OF THE KNIGHT
CH11. THE GIFT
CH12. DWARFS STANDING ON THE SHOULDERS OF GIANTS
CH13.SKYNET REVOLUTION
CH14. TAN NETWORK
CH15. ROLLER COASTER
1부터는 초급, 6부터는 중급, 14부터는 고급문제로 분류하였다.
첫 문제 풀기 전에 알고리즘 문제 해결의 기본적인 요소에 대해 다뤘다.
BigO에 대한 설명이 중요한데, 사실 알고리즘을 이제 처음 다뤄본다면 이런 개념을 잘 모를 수 있기 때문이다.
실제로 이런 코딩 사이트에서는 example 중에 상당히 많은 element들, 혹은 큰 수를 input값으로 넣게 되어있는 경우도 있다.
그렇다보면 timeout이 발생할 수 있기 때문에, 발생하지 않도록 효율적인 알고리즘을 작성하는 것이 중요하다.
BigO의 cost가 어떻게 되는지, 생각하면서 코딩할 수 있어야 한다.
첫 문제에 대해서 해결하다보니 매우 답이 단순하다. 아마도 다른 해결 방법이라 해도 크게 다르지는 않을 것이다.
아마도 너무 어려워서 지레 겁먹지 않도록 도움을 주는 문제인듯 보인다.
하지만, 이러한 쉬운 문제라고 설명을 대충하지 않고, 친절하게 설명한 것이 엿보인다.(약 10페이지를 할애!)
사실 순서도는 알고리즘 문제를 해결하는 과정에서 매우 중요하다. 앞서 설명한 매우 쉬운 문제를 제외하고서, 어려운 문제일수록 이러한 순서도를 작성하지 않으면 코드가 산으로 갈 가능성이 높다. 나 역시도 알고리즘코딩 사이트에서 문제를 해결하는 과정에서, 혹은 업무에서 알고리즘을 반영하는 과정에서 반드시 순서도를 작성한다. 그러면 생각하고난 뒤에 코드 작성시에는 그렇게 많은 생각이 필요없이 술술 작성할 수 있기 때문이다.
이러한 연습이 실무에서도 도움이 되는 것을 알기 때문에 필요한 과정이라는데에 나 역시 동의한다.
부록으로 각 현업 개발자들의 인터뷰 내용을 담았다. 주로 채용시의 프로세스, 코딩테스트의 중요도 등에 대해 인터뷰를 하였다. 이 문제를 풀어가는게 얼마나 중요한지 알게 하려는 것이다. 볼펜을 팔려면, 펜이 없는 사람에게 사인을 요청한다는 이야기처럼, 이 책을 읽어야 할 당위성을 이 책의 부록을 통해 설명하였다. 대단하다!
실제로도 나 역시 중요하다고 생각하던터라 이 인터뷰 내용들이 그저 허울좋은 이야기가 아닌것임을 인정한다.
여러 코딩 사이트가 있으나, 이 책은 코딩게임이라는 사이트로, 게임에 좀 더 포커스를 맞춘 사이트이다.
그래서 재밌는것은 레벨이 있다(물론 다른 사이트도 레벨이 존재하긴 한다.)
그래서 이 책을 통해 어느정도 학습 능력을 키운 뒤, 이 밖에도 많은 문제를 접하면서 레벨을 올리고, 그것을 향후에 취업이나 이직시 언급하는것도 능력을 어필하는 괜찮은 방법이 될 수 있겠다는 생각이 들었다.
어차피 아이디를 공개하면 그 당사자의 코드들을 채용담당자가 조회할 수 있으니, 깃헙 못지않은 코딩 능력을 알 수 있는 또 하나의 척도가 되지 않을까 싶다. 또한 게임에 대해서만 해당될 것 같다고 생각할 수 있으나, 게임에 국한되지는 않는다. 게임이라는것은 하나의 material일 뿐, 그 안에서 문제를 해결하는 능력이 중요한 것이기 때문이다. 문제 또한 영어로 되어있기 때문에, 영어로 된 문제를 읽고 해결하는 능력 또한 알 수 있는 좋은 척도가 된다고 생각한다.
사실 이런 코딩사이트를 주제로 책을 본 것은 처음인 것 같다. 신선한 소재라고 생각이 들어서, 흥미로웠다.