장바구니 담기 close

장바구니에 상품을 담았습니다.

프로그래머처럼 생각하기

프로그래머처럼 생각하기

  • 안톤 스프라울
  • |
  • 에이콘출판
  • |
  • 2014-09-26 출간
  • |
  • 348페이지
  • |
  • 188 X 250 X 30 mm /952g
  • |
  • ISBN 9788960776142
판매가

25,000원

즉시할인가

22,500

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
22,500

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평

이 책은 프로그래밍 입문자를 위한 책인 동시에 어떤 문제에 대한 해결책을 프로그래밍으로 구현하려 할 때 막막함을 한 번이라도 느껴본 적이 있는 모든 이들을 위한 책이다. C++의 개념과 문법만을 학습하기 위한 참고서 형태의 책이 아니다. 어떤 문제를 해결하기 위한 논리적 사고 과정과 문제 해결 기법을 학습하고 여기서 도출된 해결책을 C++라는 도구를 사용해 어떻게 프로그래밍할 것인가에 대해 학습한다. 이러한 과정 중에 자연스레 C++의 개념과 문법을 학습함으로써 이후에 독자들이 C++라는 언어를 실제 업무나 과제 중에 등장하는 문제를 해결하는 데 적용할 수 있게 돕는다.

★ 이 책에서 다루는 내용 ★

■ 문제를 해결하기 쉽게 만들기 위해 개별적인 구성요소로 나누는 법
■ 함수와 클래스, 라이브러리를 이용하여 코드 재사용을 최대한 활용하는 법
■ 특정 작업에 가장 적합한 데이터 구조를 선택하는 법
■ 재귀와 동적 메모리와 같은 고급 프로그래밍 도구 활용법
■ 특정한 유형의 문제를 해결하기 위해 생각을 정리하고 전략을 개발하는 법

★ 이 책의 대상 독자 ★

시행착오를 겪으면서 배우기보다는 체계적인 방법으로 문제 해결 능력을 배울 수 있다. 이 책은 그러한 문제 해결 능력을 배우기 위한 지침서다. 이 책을 통해 여러분은 생각을 정리하는 기법과 해결책을 찾아내는 과정, 특정한 부류의 문제에 적용하기 위한 전략을 배울 수 있다. 이러한 접근법을 배우는 동시에 여러분의 창의성을 끌어낼 것이다. 더 이상 실수는 없을 것이다. 프로그래밍은 창의적인 활동이다. 특히 문제 해결은 더욱 그러하다. 창의성은 신비한 것이며 창의적인 사고가 동작하는 방식에 대해 정확하게 말할 수 있는 사람은 없다. 그러나 우리가 작곡을 배우거나 창의적인 글쓰기에 대한 조언을 얻거나 그림 그리는 법을 배울 수 있다면 프로그래밍 문제를 창의적으로 해결하는 방법 또한 배울 수 있다. 이 책은 여러분이 무엇을 해야 할지 상세히 알려주지는 않는다. 하지만 여러분의 잠재적인 문제 해결 능력을 개발해서 여러분 스스로 무엇을 해야 할지 알 수 있도록 도울 것이다. 다시 말해 여러분이 꿈꿔왔던 프로그래머가 될 수 있도록 도와줄 수 있는 책이다.

★ 이 책의 구성 ★

이 책에서 다루는 주제는 많은 신입 프로그래머들이 어려움을 겪어온 분야들이다. 또한 이 책은 프로그래밍 초반과 중반 무렵 다양한 영역에서 발생하는 대표적인 모습들을 폭넓게 제시한다.
그러나 이 책은 알고리즘에 대해 예제 위주로 설명한 ‘요리책(Cookbook)’ 스타일의 책이거나 특정 문제를 해결하기 위한 패턴에 대한 책이 아니라는 점을 거듭 강조하고 싶다. 책의 후반부에서 잘 알려진 알고리즘과 패턴을 어떻게 적용할지에 대해 논의를 하겠지만, 이 책을 특정 문제를 해결하기 위한 커닝 페이퍼로 사용하거나 여러분이 현재 겪고 있는 문제에 직접적으로 관련된 장에만 집중하지 않았으면 한다.

★ 저자 서문 ★

여러분은 프로그램 언어를 이해했음에도 프로그램을 만드는 일이 어려운가? 프로그램 책을 읽는 내내 고개를 끄덕이며 읽지만 읽은 내용을 프로그램에 적용하기가 힘든가? 온라인에서 읽은 프로그램의 각 코드가 어떤 역할을 하는지 다른 사람에게 설명할 수 있을 정도로 이해를 하는데도, 프로그램 작업과 문서 편집기의 빈 화면을 보면 머릿속이 하얘지는가?

여러분만 그런 것이 아니다. 나는 지난 15년간 프로그래밍 강의를 해왔다. 강의에 출석하는 학생 대부분이 비슷한 상황을 겪고 있다. 이러한 상황을 겪는 이유는 바로 문제 해결(problem solving) 능력이 부족하기 때문이다. 문제 해결 능력이란 주어진 문제를 기술하고 그것을 해결하기 위해 독창적인 프로그램을 작성할 수 있는 능력을 말한다. 물론 모든 프로그램이 광범위한 문제 해결 능력을 필요로 하는 건 아니다. 여러분이 기존 프로그램을 아주 사소하게 수정하고 디버깅하거나, 기존 프로그램에 테스트 코드를 추가하는 등의 일을 한다면 그 프로그래밍은 완전히 기계적인 작업이기 때문에 창의력이 필요하지는 않다. 그러나 모든 프로그램에는 문제 해결 능력을 요하는 시점이 있다. 그렇기 때문에 전문 프로그래머들은 프로그래밍 과정에서 직면하는 문제를 해결할 수 있어야 한다.

시행착오를 겪으면서 배우기보다는, 체계적인 방법으로 문제 해결 능력을 배우는 편이 좋다. 이 책은 그러한 문제 해결 능력을 배우기 위한 지침서다. 이 책을 통해 여러분은 생각을 정리하는 기법과 해결책을 찾아내는 과정, 특정한 부류의 문제에 적용하기 위한 전략을 배울 수 있다. 이 책을 통해 이러한 접근법을 배우는 동시에 여러분의 창의성을 끌어낼 수 있을 것이다. 더 이상 실수는 없을 것이다. 프로그래밍은 창의적인 활동이다. 특히 문제 해결은 더욱 그러하다. 창의성은 신비한 것이며 창의적인 사고가 동작하는 방식에 대해 정확하게 말할 수 있는 사람은 없다. 그러나 작곡을 배우거나 창의적인 글쓰기에 대한 조언을 얻거나 그림 그리는 법을 배울 수 있다면, 프로그래밍 문제를 창의적으로 해결하는 방법 또한 배울 수 있다. 이 책은 여러분이 무엇을 해야 할지 상세히 알려주지는 않는다. 하지만 여러분의 잠재적인 문제 해결 능력을 개발해서 여러분 스스로 무엇을 해야 할지 알 수 있도록 도울 것이다. 다시 말해 여러분이 꿈꿔왔던 프로그래머가 될 수 있도록 도와줄 수 있는 책이다.

이 책을 쓴 목적은 여러분이 모든 프로그래밍 작업을 체계적으로 접근할 수 있게 도와서 궁극적으로는 주어진 문제를 해결할 수 있다는 자신감을 갖게 하는 데 있다. 이 책을 다 읽고 난 후에 여러분 모두가 ‘프로그래머처럼 생각’하고 ‘스스로가 모두 프로그래머라는 사실을 믿을 수 있기’를 바란다.

★ 옮긴이의 말 ★

이 책은 프로그래밍 입문서다. 하지만 여타 프로그래밍 입문서와는 전혀 다른 방식으로 프로그래밍에 접근한다. 일반적인 프로그래밍 입문서가 프로그래밍의 기본 문법을 먼저 가르친 다음 간단한 예제를 통해 배운 내용을 점검하거나 활용하도록 독자들을 이끄는 반면, 이 책은 실생활에 있을 법한 문제를 독자들에게 제시한 다음 프로그래밍과는 상관없이 해당 문제를 어떻게 논리적으로 풀 것인지에 대해 먼저 고민하고 이를 프로그래밍으로 구현해볼 수 있게 이끈다.

그렇다고 이 책이 프로그래밍 입문자만을 위한 책은 아니다. 이 글을 읽고 있는 독자들 중 프로그래밍 입문서를 읽고 독학하거나 학교 또는 학원에서 기초 프로그래밍 수업을 이수했음에도, 실제 어떤 문제에 대한 해결책을 프로그래밍으로 구현하려 할 때가 닥치면 막막함을 느낀 독자들이 분명히 있을 것이다. 나 역시 프로그래밍에 막 입문했을 때 프로그래밍 문법에 초점을 맞춘 책들의 예제를 타이핑해보고 실행하는 것만으로 해당 책을 학습했다고 느낀 적이 있었다. C++와 윈도우 API 수업을 이수한 다음, 막상 지뢰찾기 게임을 구현하려 했을 때 어떤 식으로 알고리즘을 구현해야 할지 막막했던 기억이 난다.

지뢰찾기 게임을 구현하기 위해 이벤트 처리나 비트맵 처리 등의 윈도우 애플리케이션을 이해하는 일도 중요하지만, 그보다 더 중요한 핵심은 지뢰 배치와 숫자 표시, 사용자의 선택에 따라 지뢰를 터뜨릴지 주변 영역을 반전시킬지 등에 관한 알고리즘을 구현하는 것이라고 생각한다. 이러한 알고리즘 또는 원리를 구현하는 데 막막함을 느꼈던 적이 있다면 바로 이 책을 통해 문제 해결 능력을 키울 수 있다.

이 책에서는 각 장마다 주어진 문제를 해결하기 위한 다양한 문제 해결 기법을 소개한다. 해당 문제 해결 기법을 활용해 논리적인 문제 해결책을 도출한다. 그러고 나서 이러한 해결책을 프로그래밍으로 구현하면서 이를 위해 필요한 C++의 기본 문법과 개념들을 학습한다. 프로그래밍 입문자들이 가장 어려워하는 주제 중 하나인 객체지향을 다룸에 있어서도 객체지향이란 이런 것이라고 독자들에게 일방적으로 소개하는 게 아니라 문제 해결을 통해 독자들이 개념을 이해하게 이끌어 향후에 실제 어떤 문제를 해결하는 데 활용할 수 있게 돕는다.

번역 작업을 진행하면서, 내가 프로그래밍에 입문하던 당시에 이 책을 접했다면 어땠을까라는 생각을 많이 했다. 앞에서 언급했듯이 처음 입문했을 당시, 기본 문법을 섭렵하고도 막상 어떤 문제에 대한 해결책을 프로그래밍할 때마다 막막한 마음이 들어 내가 프로그래밍에 재능이 없는 건 아닐까 생각했던 적이 있었다. 그때 이 책을 접했더라면, 문제를 분석하고 프로그래밍으로 구현할 수 있는 체계적인 틀을 마련하는 데 큰 도움을 받을 수 있었으리라 확신한다.

저자소개

저자 안톤 스프라울(Anton Spraul)는 기초 프로그래밍과 컴퓨터 과학을 15년 넘게 가르쳤다. 이 책은 어려움을 겪는 프로그래머들을 저자가 직접 개인 지도하면서 사용했던 기법들을 모아놓은 정수다. 『Computer Science Made Simple』의 저자이기도 하다.

도서소개

『프로그래머처럼 생각하기』는 프로그래밍 입문자와 어떤 문제에 대한 해결책을 프로그래밍으로 구현하려 할 때 막막함을 한 번이라도 느껴본 이들을 위한 책이다. 어떤 문제를 해결하기 위한 논리적 사고 과정과 문제 해결 기법을 학습하고 여기서 도출된 해결책을 C++라는 도구를 사용해 어떻게 프로그래밍할 것인가에 대해 학습할수 있다.

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.