머리말
이 책은 Java 및 컴퓨터 프로그래밍에 관한 핵심 사항과 효율적 학습에 초점을 맞춘 소개서이다. 이 책은 학생들의 폭넓은 관심과 기량을 충족시키도록 설계되었으며, 컴퓨터 과학자, 공학자, 그리고 여타 학생들을 위한 첫 프로그래밍 과목에 적합하다. 사전 프로그래밍 경험이 전혀 필요하지 않으며, 약간의 고등학교 수학 정도만 필요하다. 이 책의 핵심적 특징은 다음과 같다.
기본을 먼저 제시한다.
이 책은 전통적 방식에 따라 처음에는 제어 구조와 방식들, 절차적 분해, 배열에 대해 강조한다. 앞장들에서는 객체들이 사용된다. 8장에서 학생들은 자신들의 클래스(class)들을 설계하고 구현하기 시작한다.
가이드와 데모 예제들로 학생들의 성공적 학습을 돕는다.
초보 프로그래머들이 종종“어떻게 시작하나요? 이제 뭘 해야 하나요?”라고 묻곤 한다. 물론, 프로그래밍처럼 복잡한 활동은 요리책 스타일의 설명으로 간략화될 수는 없다. 그렇지만, 단계적 지도는 자신감을 쌓고, 당면한 작업에 관한 개요를 제공하는 데 엄청난 도움을 준다.‘Problem Solving(문제 풀기)’절들은 설계와 계획의 중요성을 강조한다.‘How To’ 가이드는 학생들의 공통적 프로그래밍 작업을 도와준다. 추가 실행 예제는 온라인으로 제공된다.
실습으로 완벽을 기한다.
물론 프로그래밍하는 학생들은 중요한 프로그램들을 구현할 수 있어야 하지만, 우선 해낼수 있다는 자신감을 먼저 가져야 한다. 이 책은 각 절의 끝에 풍부한 자체 검사들을 포함하고 있다. 실행하기(Practice It) 표시들은 각 절 후에 시도할 연습문제들을 제공한다. 각 장의 끝에는 매우 다양한 프로그래밍 문제가 있으며, 간단한 연습문제에서부터 실제 응용까지를 망라한다.
시각적 접근법으로 읽는 이에게 동기를 부여하며 쉽게 둘러볼 수 있게 해준다.
사진들이 컴퓨터 개념의 본질과 작용을 설명해주는 시각적 유추를 제공한다. 복잡한 프로그램 연산들을 단계적 그림들로 예를 들어 설명해준다. 문법 상자들과 보기표들은 다양한, 대표적이며 특별한 경우들을 간결한 형태로 제공한다. 텍스트로 된 내용에 집중하기 전에 시각 자료들을 훑어보는 것으로 쉽게‘지형’을 파악할 수 있다.
기술적으로 세밀하면서도 본질에 초점을 맞춘다.
백과사전적으로 내용을 담는 것은 초보 프로그래머들에게 도움이 되지 않는다. 그러나, 그 반대, 즉, 축소해서 지나치게 간단한 중요 항목들만 나열하는 것도 마찬가지이다. 이 책에서는 독자가 추가 지식을 받아들일 준비가 되었을 때, 더 훌륭한 실습 또는 언어 특징들로 들어가는 별도의 노트와 함께, 본질적인 내용들이 소화 가능한 정도의 분량으로 제공된다.
역자 머리말
이 책을 처음 펼쳐 본 순간 풍부한 분량의 연습문제, 그림, 에피소드 등이 매우 인상적이었다. 다양한 연습문제와 직관적 이해를 돕는 그림과 흥미를 유발하는 에피소드 등은 이 책이 단기간에 쓰여진 책이 아님을 느끼게 해주었으며, 이 책을 쓰기 위해 저자가 꾸준하게 투입했을 노력을 엿볼 수 있었다.
Java는 같은 코드로 다양한 플랫폼이나 운영체제에서 실행될 수 있으며, 지속적으로 업그레이드 되고 있는 폭넓은 라이브러리를 갖추고 있고, 웹 애플리케이션 및 스마트폰 앱 프로그래밍에 유리한 등등의 많은 장점으로 인해 가장 널리 사용되고 있는 컴퓨터 프로그래밍 언어들 중 하나이다.
그러나, 대부분의 Java 도서가 지나치게 야심적으로 구성되어 있어, 많은 Java 입문자에게 평생 필요하지 않을 수도 있는 내용들도 제법 비중을 차지하고 있다. 그 반면, 이 책은 자바를 처음 접하는 이들에게 불필요한 내용은 철저하게 배제되어 있으며, 기초를 충실히 다지는 데 초점이 맞춰져 있다. 그 외에도 이 책에는 프로그래밍 관련 에피소드, 오랜 기간의 경험을 통해 터득한 실용적인 팁 등 다양한 내용들이 담겨있다. 특히 수학/물리/기계/전기/전자공학/경제/경영을 망라하는 광범위한 예제와 연습문제를 담고 있으므로, 이 책으로 자바를 공부하는 독자들이 향후 자바를 각자의 분야에 활용할 수 있는 능력을 갖추는 데 도움을 줄 것이다.
공간 제약상 이 책에는 Java와 통합개발환경을 설치하는 과정과 사용 방법 등 예비 단계에 대한 설명은 싣지 못했으나, 이 책의 웹사이트인 Daum의 RobotVision 카페(http://cafe.daum.net/RobotVision)의 [Java 에브리원] 게시판을 통해 자세한 자료를 제공하고 있다(내려받기에서부터 컴파일하기, 실행시키기, 디버깅하기까지). (참고로, Java는 http://www.oracle.com에서 무료로 받을 수 있다.
자바 프로그래밍을 위한 대표적인 통합개발환경으로는 NetBeans와 Eclipse 등이 있다. NetBeans는 http://www.netbeans.org에서 받거나, 또는 앞의 Oracle 사이트에서 Java와 함께 번들로 받을 수도 있다. Eclipse는 http://www.eclipse.org에서 받을 수 있다. 모두 무료로 받을 수 있다. Android 프로그래밍도 계획하고 있다면, Android SDK가 잘 지원되고 있는 Eclipse가 인기 있음을 참고한다.)
위 카페의 게시판은 카페 가입 신청 후 별도의 승인 절차나 대기 없이 바로 자동으로 이용 권한이 주어진다. 그 밖에도 강의노트 등 이 책과 관련된 다양한 자료들이 지속적으로 올려질 것이므로, 정기적으로 들러서 업데이트된 내용들을 확인한다면 이 책을 더욱 효율적으로 이용하게 될 것이다. Q&A도 운영하니 적극적 활용을 기대한다. 참고로, 원저자인 Horstmann이 운영하는 웹사이트 www.wiley.com/college/horstmann도 있다.
참고로, 이 책과 구성이 거의 같은 Horstmann의 “C++ 에브리원”과 함께 본다면 역시 중요한 객체지향 언어인 C++를 동시에 익히는 데에도 도움이 될 것이다.
이 책을 이용하는 독자들의 건승을 빈다.
---본문 중에서