알라딘 중고매장

미리보기
  • 최저가 : -원 I 최고가 : -원
  • 재고 : 0부
  • - 쇼핑목록에 추가하신 후 목록을 출력하시면 매장에서 간편하게 상품을 찾을 수 있습니다.
 
[광주충장로점] 서가 단면도
(0)

하드웨어의 토대가 되는 기초 전자회로, 게이트부터 시작해서 메모리, CPU, I/O, 컴퓨터 아키텍처 전반을 설명하고, 그 위에서 소프트웨어를 작성하는 방법을 웹과 C 프로그램으로 직접 만들어보며, 보안, 인공지능, 알고리즘 등의 내용에 이르기까지 개발자라면 반드시 알아야 할 커튼 뒤에 감춰진 컴퓨터 구조와 프로그래밍에 대한 거의 모든 것을 다루는 컴퓨터공학 개론서다.

이 책은 개념적으로 세 부분으로 나뉜다. 첫 번째 부분은 컴퓨터 하드웨어를 탐구한다. 하드웨어가 무엇이고 하드웨어를 어떻게 만드는지 살펴본다. 두 번째 부분은 하드웨어에서 소프트웨어가 어떻게 작동하는지 살펴본다. 마지막 부분은 프로그래밍 기술, 즉 다른 사람들과 협력해 더 나은 프로그램을 만드는 방법에 대한 것이다.

최근작 :<한 권으로 읽는 컴퓨터 구조와 프로그래밍> … 총 2종 (모두보기)
소개 :
최근작 :<핵심 코틀린 프로그래밍> … 총 55종 (모두보기)
소개 :

조너선 스타인하트 (지은이)의 말
매스매티카(Mathematica)와 울프람(Wolfram) 언어를 만든 스티븐 울프람(Stephen Wolfram)이 쓴 '어떻게 컴퓨팅 사고를 가르칠까?(How to Teach Computational Thinking)'라는 블로그 글에는 프로그래밍을 가르치는 방법에 대한 흥미롭지만 상당히 반대되는 관점이 들어 있다. 울프람은 컴퓨팅 사고를 "컴퓨터가 할 일을 지시하기 위해 충분히 명확하게, 충분히 시스템적으로 사물을 수식화하는 방법"이라고 정의했다. 나도 이 정의에 완전히 동의한다. 사실 이 주장은 내가 이 책을 쓰게 된 계기 중 큰 부분을 차지한다.
하지만 프로그램을 배우는 사람이 컴퓨팅 사고를 개발하기 위해 토대가 되는 기술을 배우는 대신, 자신이 개발한 강력한 고수준 도구 등을 사용해야 한다는 울프람의 주장에는 강하게 반대한다. 예를 들어, 미적분학보다 통계학에 대한 관심이 늘어난다는 점을 보면 '데이터 주무르기(data wrangling)'가 점점 더 중요한 분야가 되고 있음이 분명하다. 하지만 사람들이 멋진 프로그램에 엄청난 양의 데이터를 입력하는데 이 데이터를 전혀 이해하지 못한다면 어떤 일이 벌어질까?
이럴 경우 한 가지 가능성은 사람들이 재미있어 보이지만 의미가 전혀 없거나 틀린 결과를 만들어내는 것이다. 예를 들어, 마크 지만, 요탐 에렌, 아쌈 엘오스타가 발표한 최근의 연구(「과학 문헌에 유전자 이름 오류가 널리 퍼져 있다(Gene Name Errors Are Widespread in the Scientific Literature)」)에 따르면, 유전학 논문 중 5분의 1가량에 스프레드시트를 잘못 사용해서 생긴 오류가 있다는 사실이 밝혀졌다. 이런 종류의 오류를 생각해보고, 더 강력한 도구가 더 많은 사람들 손에 들어갔을 때 생길 결과를 생각해보라! 사람의 생명에 영향을 끼치는 경우라면 이런 일을 바로잡는 일은 더욱 중요해질 것이다.
하부 기술을 잘 이해하면 무엇이 잘못되고 있는지 알아차리는 능력을 계발할 수 있다. 고수준 도구만 알면 잘못된 질문을 던지기 쉽다. 전동 공구를 사용하려면 먼저 망치 쓰는 법부터 익혀야 한다. 하부 시스템과 도구를 배워둬야 하는 또 다른 이유는 이를 통해 여러분이 새로운 도구를 만들 수 있는 능력을 가질 수 있다는 점이다. 새로운 도구를 만드는 사람은 언제나 필요하며, 도구 사용자가 늘어나면 늘어날수록 이런 사람의 중요성은 더 커진다.
컴퓨터를 잘 이해함으로써 프로그램의 동작에 대한 수수께끼가 풀린다면, 여러분은 분명히 더 나은 코드를 작성할 수 있다.
역자후기
누구나 프로그래머가 될 수 있지만 누구나 좋은 프로그래머가 될 수 있는 것은 아니다. 자동차를 잘 운전하기 위해 꼭 차를 조립할 수 있어야 하는 것은 아니지만, 최상위 클래스 F1 드라이버가 되려면 드라이빙에 필요한 신체나 정신적인 능력은 물론 레이스에 적합하게 차를 설정하기 위한 다양한 공학적 지식도 필요한 것처럼, 좋은 프로그래머가 되기 위해서는 도메인 지식은 물론 컴퓨터의 동작 원리나 컴퓨터공학 전반에 대해 잘 이해할 필요가 있다.
운이 좋게도 나를 포함한 40대 이상 개발자들은 자라나면서 자연스럽게 컴퓨터 산업의 발달 과정에 맞춰 기술의 지평을 넓힐 수 있었지만, 요즘 컴퓨터에 입문하는 사람들은 지식 생산 속도나 프레임워크와 프로그래밍 언어 변화가 너무나 빨라서 실무에 사용하는 프레임워크와 프로그래밍 언어의 변화나 새로운 기술 트렌드를 좇아가기도 힘들다. 하지만 그렇다고 근본적인 컴퓨터공학에 대한 공부를 포기해서는 안 된다. 컴퓨터가 어떻게 작동하고 프로그래밍의 기초 원리가 무엇인지 이해하면, 직접 작성한 프로그램이 잘 작동하지 않을 때 조금 더 쉽게 문제를 해결할 수 있으며 새로운 기술을 배우고 익힐 때도 훨씬 더 수월할 수 있다.
누군가 좋은 스승이 있어서 하드웨어, 소프트웨어 등의 여러 내용을 잘 알려준다면 가장 좋겠지만, 쉽게 기초를 설명해주면서 컴퓨터공학에 대한 지식을 넓혀나갈 토대를 마련해줄 수 있는 책을 통해 컴퓨터 전반을 이해하는 것도 그에 못지않게 좋은 방법이다.
이 책은 저자가 자원봉사로 학생들을 가르치며 다뤘던 내용을 정리한 책이다. 하드웨어의 토대가 되는 기초 전자회로, 게이트로부터 시작해서 메모리, CPU, I/O, 컴퓨터 아키텍처 전반을 설명하고, 그 위에서 소프트웨어를 작성하는 방법을 웹과 C 프로그램을 통해 맛보여주며, 보안, 인공지능, 알고리즘 등의 내용까지 거의 모든 것을 다루는 컴퓨터공학 개론서라 할 수 있다. 이 책을 쭉 훑어보면서 컴퓨터공학에 대해 전체적으로 감을 잡고, 각 분야를 좀 더 자세히 다룬 책이 나 인터넷 강의 등을 찾아보면서 지식을 넓히는 작업을 꾸준히 하면 어느 순간 내공이 쌓이고 좋은 프로그래머가 된 자기 자신을 발견하게 될 것이다. 아무쪼록 컴퓨터에 관심을 가지는 일반 독자나, 컴퓨터공학을 간략히 살펴보고 싶은 개발자 동료들에게 이 책이 도움이 되길 바란다.
- 호주 브리즈번에서