코딩을 지탱하는 기술

 

: 원리로 깨우치는 프로그래밍 기법쏟아지는 극찬!

 

 

도서 상세보기: http://bjpublic.tistory.com/171

 

도서 구매하기: [YES24]  [인터파크]  [교보문고]  [알라딘]  [강컴]

 

 

 

 

코딩을 지탱하는 기술

 

원문주소: http://blog.yes24.com/document/7515465

 

컴퓨터 공부를 진행하면서 현재까지 나온 모든 언어에 대해서 다루어 볼 기회는 없었다.

 

공부하거나 프로젝트를 진행하면서 필요한 언어가 있을 때에만 사용을 했기 때문이다. 그러나 이 책을 통해서 코딩을 한 가지 언어에 국한되어서 이해하는 게 아니라 여러 언어에 대해 언급하면서 한 차원 넓은 시각으로 코딩자체가 무엇인지에 대해 알 수 있게 된 것 같다.

 

기존 한 가지 언어에 대해 다루어 봤던 학생이라면 이 책을 통해 다른 언어 보다 나아가 코딩 자체에 대해 폭 넓은 이해를 할 수 있을 것이라고 생각된다.

 

특히 컴퓨터에서 다루는 0 이라는 값에 대해서도 언어의 특성마다 참/거짓을 나타내거나 또는 참 거짓을 나타내지 못한다는 내용도 나오는데 이 부분을 통해 프로젝트를 진행하면서 자신에게 필요한 언어를 택하는 안목도 생길 것이라고 본다.

 

 

 

새로운 기술 앞에서 막막함을 느낄 때

 

원문주소: http://blog.yes24.com/document/7514881

 

프로그래머로서 살아가는데 가장 힘든 점은 신기술은 계속 나오고, 뒤쳐지지 않으려면 계속 새로운 기술을 습득해야 한다는 점일 것이다. 특히, 그 기술이 지금 자신이 습득하고 있는 기술과 많이 다르다면 어려움은 가중된다.

 

예를 들어, 기술 A 에서 기술 B, C가 파생되었고 기술 B 에서 기술 D, 기술 C 에서 기술 E 가 파생되었다고 하자. 자신이 D 의 전문가인데 급히 E를 배워야 한다면, 두 기술 사이에는 연관성이 별로 없으므로 습득이 매우 힘들다.

 

방법은 하나다. 본질로 돌아가야 한다. A 를 미리 알고 있으면 E를 배우는 건 상대적으로 더 쉬워지기 때문이다. 거기서 베이직한 기술을 배울 필요성이 생긴다.

 

이 책은 코딩을 배우는 사람들이 한번쯤은 생각해 봤겠지만 확실하게 알기는 어려웠던, 그런 베이직한 내용에 대해 다루고 있다. 현재 어떤 언어가 대세라고 해도, 대세는 바뀔 것이고 프로그래머들은 앞으로 다른 언어를 배워야 할 가능성이 높다.

 

그런 상황에서 큰 도움이 될 것이다. 일독을 권한다.

 

 

 

새로운 언어를 학습할 때 집고 넘어가야 할 것들

 

원문주소: http://blog.yes24.com/document/7514639

 

마침 최근에 새로운 언어를 학습하면서, 이 책을 접하게 되었습니다. 그 동안 새로운 언어를 학습할 때 막연히 문법만 익히고 미니프로젝트 몇 개 정도 하면 된다고 생각을 해왔었지만 이 책을 읽고 나서는 새로운 언어를 배울 때 집고 넘어가야 하는 부분들이 무엇인지에 대해서 그리고 이 언어에서는 왜 이렇게 해야만 했는지를 확인할 수 있는 눈이 트이는 것 같았습니다.

 

재미있고 유익한 책이었던 것 같습니다.

 

 

 

코딩의 원리를 이해하다

 

원문주소: http://blog.yes24.com/document/7511503

 

이런 류의 책들을 보면 보통 프로그래밍 언어에 상관없이 일반적인 코딩의 원리를 알기 쉽게 설명해 주는 것이 장점입니다. 프로그래밍 언어를 공부하면서 이건 왜 이렇게 만들었을까 라는 궁금증이 생기게 되는데, 이런 책에서 그 궁금증을 해소할 수 있습니다.

 

코딩을 지탱하는 기술은 이런 궁금한 부분을 알려주는 동시에, 왜 이런 기술들이 만들어지게 되었는지 역사적인 배경까지 간략히 소개를 해주는 부분이 좋았습니다.

 

다루는 내용도 그리 어렵지 않은 부분들을 다루고 있기 때문에 초보자가 읽기에 적당합니다. 하지만, 최소한 프로그래밍 언어를 하나 정도 공부한 이후에 보는 것이 당연히 좋겠죠.

 

여러 가지 언어들을 가지고 설명을 전개하고 있지만, 굳이 그 언어를 몰라도 이해하는 데 큰 문제는 없습니다. 오히려, 여러 언어들이 이런 특징들이 있구나 하는 점을 배울 수 있어 좋았습니다.

 

이 책은 어렵지 않지만 우리가 모르고 있던, 또 우리가 궁금해 하면서 그냥 지나쳤던 프로그래밍 언어의 내면을 들여다 볼 수 있게 도와줍니다.

 

 

 

다양한 개념의 탄생 이유 장단점을 이 책으로

 

원문주소 : http://blog.yes24.com/document/7498045

 

제목과 같이 코딩을 지탱하는 기술, 즉 컴퓨터 언어들의 대한 다양한 개념들과 문법들의 탄생 배경에 대해서 설명한다. 이렇게 얇고 작은 책에서 어떻게 다양한 언어들의 개념이나 문법에 대해서 이야기 할 수 있을까 의아했다. C Java 책만 해도 책의 양이 많이 차이가 나지 않은가.

 

나의 예상과 달리 책이 작고 얇은 데도 불구하고 각 언어의 차이와 개념들에 대해 핵심만 짚고 쉽게 설명하고 있다.

 

우선 언어의 탄생 배경에서 시작해서 문법의 탄생, 함수, 예외 처리, 이름 스코프 등 언어의 다양한 개념을 각각 챕터 별로 다룬다.

함수는 어떻게 탄생했나? 함수에서 스택의 탄생한 이유? 반환값으로 실패를 전달 하는 방법과 예외를 던져서 실패를 전달 하는 방법의 장단점. 언어에서 어떻게 이름을 붙이는가? 이러한 이름은 스코프 별로 어떻게 중복을 피하는가? 정적스코프와 동적 스포프의 차이. 각 언어가 타입을 다루는 방법. 동적 형 결정은 어떻게 이뤄 지고 장점과 단점은 무엇인가? 병행 처리란? 락의 문제점 등등..

 

직접 다양한 언어를 사용해 보면서 그 차이와 개념들을 배울 수도 있지만, 이 책을 통해서 저자의 눈으로 문법의 차이와 개념들이 왜 생겼고 문제점이 무엇인지 알아볼 수 있다.

 

우선 장점이라고 할 수 있는 것은 책이 얇은 만큼 간단한 예제들을 통해서 쉽게 개념들을 설명해 준다는 것이다. 하지만 이런 장점이 단점도 될 수 있다고 생각이 된다.

 

각각의 개념에 대해서 깊이 있게 알고 싶은 사람이라면 이 책이 부족할 수도 있을 것 같다. 그리고 간혹 보이는 오타들이 있다. 그래도 이 책의 독자 대상이 초급이라고 생각한다면 충분하다고 생각한다.

 

 

 

초보에서 한 단계 깊은 단계를 고민하는 법을 알려주는 책

 

원문주소 : http://blog.yes24.com/document/7491746

 

본인은 코딩 관련하여 매우 초보다. 이제 C/C++ 관련 책을 1, Python 관련 책을 1권 정도 정독한 상태다. 하지만 이 세계에는 단지 읽기만 한다고 저절로 되는 것은 아무 것도 없다. 실제 무엇인가를 만들어 보아야 자기가 얼마나 부정확하게 이해하고 있는지, 모호하게 기억했는지 잘 확인할 수 있다.

 

초보인 나는 실제 많은 것을 알고 있다고 생각했지만, 아주 간단한 것조차 만들려고 할라치면 머리가 멍해지는 경험을 자주 했었다. 무언가 시작을 하기가 매우 힘든 것이다.

 

시작을 한다고 해도, 과거에 기계적으로 타입이란 어떤 것이 있고, for 구문은 어떻게 구성되고, 문자열은 이러저러하다는 기억만으로 무엇인가를 만들라치면 다시 책을 뒤적이고 고민해야 했다.

 

그런 와중에 이 책을 보았다.

 

이 책은 서문부터 매우 이채롭다. 이 책을 쓴 목적은 초/중급단계에 있는 사람들의 ""라는 질문에 답을 하기 위해서 썼다는 것이다.

 

책의 저자는 하나의 질문/문제에 대하여 1) 컴퓨터 언어들간의 비교, 2) 역사적인 맥락, 3) 실제로 작성 해보면서 "깨우칠" 있게 하는 방식을 취하고 있다고 설명하고 있다.

 

처음에 저 문장이 어떤 의미인지 깊게 와 닿지 않아서 내용을 읽어본 결과 상기 방식이 가지는 이점을 몸으로 많이 체득할 수 있었다.

 

하나하나의 주제, 문법/처리흐름, 함수, 에러처리 등등 컴퓨터 언어의 핵심적 부분만을 꼽아서 내용을 설명하면서 언어별 예제로 차이를 분석해주고, 왜 이렇게 만들어졌냐는 역사적인 맥락을 풀어서 얘기해 주면서 이해를 증진시킨다.

 

특히 그림과 도해로 설명에 대한 이해를 선명히 해주는 것은 이 책의 장점 중 하나다. 본인은 함수 중 재귀함수의 호출부분과 진법(2, 8, 16진법) 설명에서 참 감명을 받았다. 재귀함수는 참 이해가 어려웠다. 그림으로 설명한 책도 많이 있었지만 이 책의 설명이 간단하면서도 참 이해하기 쉬웠다.(p53 참조).

 

진법 관련해서는 나오게 된 배경을 전혀 상관이 없을 듯한 주제로 이해하기 쉽게 설명해 주는데, 왜 그렇게 될 수 밖에 없었는지 왜 이진법이 최적인지가 다 이해가 되었다.

 

예외처리 부분에 대한 설명도 훌륭하다. 특히 언어별 비교를 통해 설명한 것이 인상 깊었고, 예외처리가 이런 형태를 가질 수 있었던 맥락에 대한 설명도 매우 훌륭하다.

 

이 책의 가장 큰 장점은 "이게 무엇이다"라는 것에 대한 심도 깊은 이해와 예시를 통해서 이해도를 증진시키는 것과 "왜 이런 형태를 가지게 되었지?"라는 질문에 과거로부터 현재까지 이어지는 사람들의 노력/방법으로 답을 해준다.

 

과거의 사람들도 우리와 같은 고민을 했고, 그 결과가 컴퓨터 언어에 반영이 된 것이다. (물론 사람들의 고민과 해결책은 모두 다르기 때문에 세부적으로는 다른 모습을 가지지만, 전체적 맥락은 유사하다. 대동소이라고 할까?)

 

후반부 클래스와 상속을 통한 재사용 부분은 아직 나의 이해도가 깊지 않아서 그런지 다 이해하지는 못하였지만, 다시 공부하고 보면 이해할 수 있을 거 같은 느낌이 들었다.

 

종합하여 이 책에 대하여 평가를 하자면,

 

1) 적합한 독자:

 

- 언어에 대한 규칙을 공부하고 이제 뭔가 조그만 것을 뚝딱거리면서 만들어 가는 독자(생 초보는 적합하지 않음. 안에서 설명하는 내용에 대한 이해도가 없기 때문에).

 

2) 장점:

 

- 컴퓨터 언어에 있어 주요한 테마들을 선정하여, 이 테마들에 대한 이해도를 매우 증진시킬 수 있고 특히 왜 이런 형태를 가지게 되었는가하는 질문에 대한 적절한 답변들이 담겨있음

 

- 그림과 예제로 상세한 설명을 해 주는 것이 매우 잘 되어 있음

 

3) 단점:

 

- 약간 거슬리는 번역체가 있으나 심하지는 않고 이해해줄 만함. 특히 "형은 사양이다"(p127). 이런 문장은 무슨 의미로 썼는지 도대체가 이해하기 어렵다. 문장이 길면 맥락을 이해할 수 있으나 저렇게 짧으면 감을 잡기가 어렵다. 번역을 너무 있는 그대로 직역을 한 듯 하다.

 

- 자잘한 오타가 있으나 source code 등에 있지 않아 읽는데 큰 문제를 주지는 않음(오타는 출판사로 알려줌)

 

4) 총평: 초보들의 컴퓨터 언어에 대한 이해도를 매우 증진시킬 수 있는 좋은 책이며, 추천한다.

 

 

 

[도서 리뷰] 코딩을 지탱하는 기술

 

원문주소 : http://blog.yes24.com/document/7502765

 

이 책을 통해서 다른 여러 언어들의 특징을 다시 보게 되었고, 왜 많은 언어가 있는지 어떤 시각으로 공부를 해야 하는지에 대하여 알게 되었다.

 

언어의 시작부터 문법에 이르기까지, 정말 살이 되는 내용들이었고, 공부하는 학생입장에서 더 넓게 바라보는 좋은 기회였다.

 

초급자 입장에서도 쉽게 이해되는 책이었고, 이래서 이런 것들이 필요했구나 라는 것들을 깨닫는 시간이었다. 정말 좋았어요!!

 

 

 

 

 

Trackback 0 | Comment 0

퍼블릭's Blog is powered by Daum & tistory