대상독자
이 책의 대상 독자는 '좋은 프로그래머'이며, 저자가 말하는 '좋은 프로그래머'는 아래의 자질을 갖춘 사람이어야 한다.
1. 좋은 비판적 사고와 분석 기술을 지닌 사람
2. 작동할 뿐만 아니라 다른 사람들이 이해하고 유지보수하기 쉬운 코드를 작성하는 사람
3. 컴퓨터 작동을 잘 이해하는 사람
그래서 저자는 '이 책은 프로그래밍을 배우고 있지만 깊이 부족으로 인해 불만족스러워하는 사람을 위한 책이다' 라고 한다. 읽으면서 '음 나를 위한 책이야!! 라며 고개를 연신 끄덕 + 책을 잘 읽어보겠다는 의지가 샘솟았다.
컴퓨터 프로그래밍이란 무엇인가
저자는 컴퓨터 프로그래밍을 두 단계로 설명한다.
1. 우주를 이해한다
2. 3살 짜리 아이에게 이해한 내용을 설명한다.
우주를 이해한다는 것은 '모든 분야를 가능한 많이 배우는 것'을 의미한다. '유레카' 나 'connecting the dots' 와 같이 문제에 대한 해결법이 종종 예상치 못한 곳에서 발견되기도 하기 때문인 것일 거라. 이 책은 이 첫 번째 단계에 집중한 책이다. 정확한 프로그래밍 언어의 문법에 대해서 다루기 보다는, 컴퓨터 우주의 역사 속 다양한 문제와 솔루션을 다루는 책이다.
3살짜리 아이에게 이해한 내용은 설명한다는 것은, 컴퓨터는 3살 짜리 아이와 같이 융통성이 없고 아무것도 할 줄 모르는 상태와 같다는 것이다. 컴퓨터 자체로는 아무것도 하지 못하고, 우리는 컴퓨터에게 어떤 일을 수행해야 할 지 '프로그램'을 통해 알려주어야 한다.
컴퓨터 과학 개요
저자는 컴퓨터 과학을 위와 같은 도식으로 표현한다. 위 삼각형은 소프트웨어를, 중간의 사각형은 하드웨어를, 아래 삼각형은 하드웨어를 뒷받침하는 과학의 측면이며, 이 책은 시스템 프로그래밍과 하드웨어, 논리 설계를 다루고 있다.
컴퓨터 과학의 가장 밑바닥은 기초 과학이다. 물리와 화학을 기초로 전자 회로를 통해 '논리'가 만들어진다. 그리고 컴퓨터 하드웨어는 이 '논리(로직)'을 통해 표현된다. 시스템 프로그래밍은 하드웨어와 상호작용하며, 응용 소프트웨어가 사용하는 기본 요소들을 만든다. 사용자는 응용소프트웨어를 사용하고, 일부 특별한 사용자인 '시스템 관리자'는 시스템이 작동하게 유지하는 역할을 한다.
중요한 것은 각 계층은 결국 자신의 아래 계층으로 만들어지기 때문에, 아래 계층의 설계의 잘못된 점이 결국 그 위의 모든 계층에 영향을 끼치게 된다는 것이다. 나야 시스템 프로그래밍이나 하드웨어를 다루는 사람이 되지는 않겠지만, 내가 작성할 응용 프로그램이 유저에게 영향을 준다는 사실을 항상 명심해야지 .. !
'Book > IT' 카테고리의 다른 글
프로그래밍 기초 책 추천 [프로그래밍 비타민] (0) | 2022.09.03 |
---|---|
[Book] 비트 / 불리언 대수 / 드모르간의 법칙 (한 권으로 읽는 컴퓨터 구조와 프로그래밍- 1. 컴퓨터 내부의 언어 체계) (0) | 2022.06.27 |
댓글