반응형



코딩을 지탱하는 기술 - 원리로 깨우치는 프로그래밍 기법  

니시오 히로카즈 지음, 김완섭 옮김 / 비제이퍼블릭 / 2013년 10월 

-----------------------------------------------------------


생각보다 얇아 쉽게 읽었다.


저자는 여러 프로그래밍 언어의 발전 역사와

문법 기능 비교를 통해 프로그래밍 언어의 주요 개념들에 대해 설명한다.


특정 언어만의 문법을 서술하는 것이 아니라

(사실 문법에 관한 책은 이 책이 아니라도 많잖아)

다양한 언어에서 구현하는 유사한 개념들이 왜 필요하였으며 어떻게 발전하였는지 그리고 현재 어떻게 적용되어 있는지 등 여러 언어를 설명한다.


마치 멀리서 큰 그림을 보는 것 같았다.


새로운 언어를 사용하다 생소한 개념들을 만났을 때

'이 기능을 사용하지 않아도 필요한 건 만들수 있어!' 라며 근자감으로 삽질했던 기억들이 떠오른다.

결국 RTFM(Read The F..king Manual)을 외치며 처음 맞닥뜨렸던 문제로 다시 돌아가게 되었지만.

생소함을 외면하고 익숙한 기능, 문법을 이용해 우회하는 것이 아니라

이해하고 받아드릴 수 있도록 생소함에 대처하는 자세를 배울 수 있었다.


저자는 첫장에서 자신이 어떻게 진행할지에 대해 이야기 한다.

이 책을 다 읽고난 시점에서는 비교를 통한 학습이 얼마나 효과적인지 느꼈다.


초반에는 구문 트리와 goto, if, for, while 등

대게의 프로그래밍 언어들이 갖고 있는 기본적인 문법에 대해 이야기하며

중반의 7장 '이름과 스코프'에서의 동적 스코프와 정적 스코프에 대한 내용은 머리속에 꽤 오래 남았다.

8장 형(型)을 설명하는 장에서는

'형은 곧 사양이다'는 말에 살짝 놀랐고

(사실 생각없이 습관처럼 int, float, bool을 쓰고 있었기에..)

9장 앞부분에서는 컨테이너(배열, 연결리스트)와 해쉬테이블을 함께 이야기 한다.

9장 뒷부분 문자열 설명 부분은 조엘 온 소프트웨어의 유니코드 파트를 보는 편이 더 나을 것 같았다. 유일하게 만족 스럽지 못했던 부분.


책 후반 11장, 12장은 객체지향과 클래스에 대해서 이야기 한다.

각 언어들마다 정의하는 객체 지향과 객체 지향을 표현하는 방법을 보여준다.

그러면서 짧게나마 클로져에 대해 언급하는데 짧은 내용이었지만 쉽고 거부감 없이 이해할 수 있었다.

(이게 역사와 비교를 통한 학습의 효과인가 싶었다.)

클래스의 극단적인 두 역할에 대해 이야기 한다.

어떤 언어에서든 클래스를 사용할때마다 들었던 의구심이

이 극단적인 두 역할 때문이 아니었나 싶었다.




반응형