자바 퍼즐러 - 세상에서 가장 재미있는 자바 책
조슈아 블로크 & 닐 개프터 지음, 윤인성 옮김 / 한빛미디어 / 2014년 12월
평점 :
절판


이번 달은 개인적으로 바쁜 달이라, 자투리 시간에 짬을 내어 간단하게 볼 수 있는 책을 골라서 읽어 보았다.

그에 가장 적합해보였던 책 '자바 퍼즐러'다.

[손에 들고 다니기 편한 적당한 사이즈와 적당한 두께의 책!]

제목에서도 알 수 있듯이, '자바 퍼즐러'는 JAVA코드에 대한 퍼즐(퀴즈)를 제시하고 이를 풀이해주는 책이다.

총 95개의 퍼즐을 다룬다. 한 퍼즐당 약 2~5페이지 정도로 구성되므로 자투리시간에 짬을내어 읽기 좋다.

JAVA 프로그래머로서 한번 쯤은 겪어봤을 만한 문제들을 언급하며 자연스럽게 JAVA언어의 동작방식이나 문법을 익힐 수 있게 해준다.

자신이 겪었던 문제들에 대하여 표면적으로만 해결하고선 정확한 원인을 제대로 짚고 넘어가지 않았던 사람들은 많이 배울 수 있을 듯 하다.

그렇기 때문에 이 책은 일단 입문자용은 아니다. JAVA로 충분히 프로그래밍을 진행해보았던 초~고급 프로그래머들이 읽으면 좋을 책이다.

 

​[당신이 프로그래밍 언어 설계자 라면................!]

단순히 JAVA 프로그래머들에게만 좋은 책인 것은 아니다. 거의 모든 풀이의 마지막 단락에서 '언어 설계자'에게 충고하는 말들이 나온다.

즉, 프로그래밍 언어 설계나 컴파일러 제작에 관심이 있는 사람들이 보기에도 좋은 책이다. 하도 '독자가 언어 설계자라면,' 이라는 말이 자주나와서 JAVA를 디스하려고 만든 책이 아닌가?! 라는 생각이 들정도였다. 그만큼 '프로그래밍 언어' 자체에 대해서도 많은 생각을 할 수 있던 책이었다.

 

[위와 같이 문제를 제시하고, 풀이해주는 방식으로 구성되어있다. 위의 문제는 책의 표지에도 적혀있는 '홀수 확인' 문제!]

사실 추상화가 잘 된 편에 속하는 고급언어 JAVA이기에, C/C++에서 겪을만한 문제들을 이 책에서 제기하였을 때 꽤 놀라웠다. 개인적으로 C/C++관련 비슷한 퍼즐들은 접해본 적이 많은데, JAVA 퍼즐은 처음 접해본 것이었다. (실제로 대학시험에서도 이와 같은 문제를 내는 경우가 많으며 SSM에서도 개발역량평가로서 C/C++관련 문제들을 내곤 했다.) 그렇다보니 이 책의 초반부는 JAVA로 응용단만 개발하던 사람들에겐 생소한 내용일 수도 있을 것 같다. C/C++를 접하는 느낌이 들 수 있다.​ 책의 중반부 부터는 상속 등의 객체지향 퍼즐들이 나온다. 그렇기 때문에 응용단 개발자분들도 중반부부터는 좀 더 수월하게 읽을 수 있을 것 같다.

 

사실 이 책은 발간한지 꽤 된 책이다.

자바5가 발표되었던 2005년에 발간되었다가 절판되었고, 자바8이 발표된 2014년에 재 번역되어 재 발간된 책이다.

그래서 책에서는 계속 자바5를 언급한다. 버전이 이렇게나 차이나는데, 자바8이 발표된 지금 보기엔 별로인 책 아니냐는 생각이 들 수 있다. 하지만 그렇지않다. 많은 프로그래머들이 지금도 실수할 수 있는 부분들을 콕 꼬집고 있으므로 큰 문제는 되지 않을 듯 싶다.

다만, 2014년의 IDE에서는, IDE쪽에서 이러한 실수들을 미리 예방해주는 경우도 많긴 했다. (사용하면 애매해질 수 있는 메소드는 warning을 띄워준다던지.. 오토 어노테이션 등등)

 


[퍼즐 중간중간에 착시효과 이미지들이 존재한다. 눈이 아프다..
]

​책의 편집면에는 조금 아쉬운 부분이 있다. 한 퍼즐에서 여러 프로그램소스를 예로 들 때 구분자가 없어서 읽기가 좀 불편했다는 점이다.

​그리고 착시효과 이미지는..... 솔직히 없는 편이 더 좋을 것 같다. 재미있긴하지만.. 집중이 흐트러지곤 했다. 음... 없는게 나을 것같다.

​그래도 번역되어 재 발간 된 책이라 그런지, 번역이 매우 매끄럽다. 그래서 애매한 문장없이 술술 잘 읽힌다. 그리고 오탈자도 거의 없다. 그만큼 완성도가 높은 책이라 좋았다. 내용도 좋고 번역도 좋고, 술술 잘 읽히고!

​그리고 아무래도 퀴즈식으로 구성된 책이다보니 다른사람들과의 지식공유도 한결 수월한 듯 하다.

실제로 필자도 개인적으로 매일매일 회사동료들에게 '오늘의 문제!'라며 이 책의 퍼즐중 맘에드는 퍼즐을 한 두개 씩 ​내곤했다.

대부분의 동료들이 책에서 우려했던 실수를 범했고, 이유를 설명해주자 다들 새롭다며 필기를 해갔다. 지식공유는 언제나 기분좋은 일이다!

자투리 시간에 틈틈히 지식을 쌓고 싶으신 분들이나

JAVA 프로그래밍 지식의 빈틈을 채워넣고 싶으신​ 분들에게 꼭 추천해주고 싶은 책이다 :-)


댓글(0) 먼댓글(0) 좋아요(1)
좋아요
북마크하기찜하기 thankstoThanksTo