일요일, 10월 08, 2017

[독서광][B급 프로그래머] 코딩 트레이닝

오늘은 정말 간만에 프로그래밍 관련 서적을 하나 소개하겠다. '코딩 트레이닝'이라고 제목이 붙어 있기 때문에 뭔가 프로그래밍을 잘하기 위한 훈련 방법을 다룰 책처럼 보이지만, '새로운 언어를 배울 때 다시 풀어보는 57개 연습문제'라는 부제가 정확하게 이 책의 성격을 드러내듯이 특정 프로그래밍 언어(이 책에 나오는 대다수 문제는 프로그래밍 언어에 중립적인 특성이 있다. 물론 C나 자바로 풀려면 번잡해져서 머리 아픈 경우가 있긴 하다)를 배우는 과정에서 도전할만한 연습 문제가 핵심이다.

요즘은 과거에 비해 워낙 프로그래밍 과정에서 알아야 할 내용이 많기 때문에 간단하게 연습할만한 프로젝트를 찾기가 점점 더 어려워지고 있는데, 이 책은 초보자뿐만 아니라 중급자에게도 몸을 풀기에 적합한 운동장을 제공한다. 실제 구성과 목차를 확인하고 싶다면 인사이트 출판사에서 제공하는 미리보기(목차와 머리말, 실전 문제 2개 포함)를 살펴보면 좋겠다. 미리 보기에 나오는 문제는 가장 초보적인 내용을 담고 있지만, 뒤로 갈수록 복잡해지고 난이도가 높아지므로 별거 아니라고 얕보면 안 된다. 실제 깃허브에서 이 책의 원서 제목인 "Exercises for Programmers"를 찾아보면 예상외로 끝가지 문제를 푼 경우를 찾기가 어렵다는 사실을 쉽게 확인할 수 있다(하스켈을 사용해 거의 다 푼 사례를 찾기는 했다.).

이 책의 가장 큰 특징은 해답이 없다는 점이다. 하긴 프로그래밍 언어가 워낙 다양하므로 모든 해답을 실을수도 없을 뿐더러, 도전 과제까지 포함할 경우 경우의 수가 상당히 많아지게 되므로 이중고를 겪을 가능성이 높다. 따라서 수고스럽겠지만 본인이 책에 나온 힌트와 인터넷을 참조해 모든 문제를 해결해야 한다. 인사이트 출판사에서 초보 개발자들을 위해 야심차게 깃허브에 문제 풀이 방법 공유 저장소를 개설했지만, 조금 썰렁한 느낌이라서 파이썬 개발자를 위해 발토비와 함께 깃허브 Exercises for Programmers (코딩 트레이닝) 저장소를 열어 기본적인 문제 풀이 방법을 공유하려 한다(이 글을 적고 있는 현재 46/57까지 완료한 상황이며 10월 내로 모든 문제에 대한 풀이 방법을 올리려는 목표로 열심히 뛰고 있다). 문제 풀이 과정에 부족한 점이 많더라도 양해해주시고, 혹시 더 좋은 해법이 있으면 PULL 리퀘스트를 주시면 더욱 좋겠다.

결론: 프로그래머라면 필요에 따라 새로운 프로그래밍 언어를 습득해야 경쟁력을 확보할 수 있는데, 그 과정에서 이 책을 참조하면 도움이 될 것이다.

보너스: 이 책에서 다루는 프로젝트보다 조금 더 어려운 프로젝트가 필요하면 Mega Project List(A list of practical projects that anyone can solve in any programming language.)를 참조하면 좋겠다.

EOB

댓글 없음:

댓글 쓰기