# [책]코딩을 지탱하는 기술

(더 나은 코딩을 위한) 코딩을 지탱하는 기술원리로 깨우치는 프로그래밍 기법 (opens new window)

최근 임작가님의 글 (opens new window)을 보고 과연 어떻게 공부를 하는것이 좋을까? 어떻게 해야 기본 실력을 기를 수 있을까? 를 고민하다가 찾게된 책이다.

책이 작고 얇기도 하고, 문체가 정말 친절하고 재밌어서 술술 읽힌다. 하지만 결코 가벼운 내용이 아니다. 한 줄,한 줄 놓치기 아까울 정도로 깊이 있는 이야기와 설명으로 꽉 차있고, 평소에 깊이 생각해 보지 못했던 부분에 대해 끊임없이 질문을 던지고 있다.

예를 들어, "if는 왜 있는 걸까?"

너무 당연해서 고민 없이 썼었던 것들에 대해 물음을 이어나간다.

아마 나를 비롯한 많은 개발자들이 현업에서는 주로 쓰는 기술, 언어가 정해져있고 또 새로나오는, 새로 뜨는 기술과 언어를 숨가쁘게 따라가고 있을 것이다. 그리고 "개발자는 평생 공부해야해. 너무 바빠."라고 하며 들어오지 않는 문법, 개념들과 싸우고 있을 것이다.

언어들을 보면 대부분의 언어가 가지는 공통적인 철학, 개념들이 있는데 이 책에서는 그 개념들이 어떠한 역사적인 원인에 따라 생성되었는지 그리고 그러한 개념을 이어나가는 언어들은 어떻게 해석하고 있는지 재미있게 풀어나간다.

다 읽고나니 뭐랄까 이제 새로운 언어, 새로운 기술을 배울 때의 마음가짐을 배운 것 같아서 자신감이 솟는다.

"어떤 언어를 공부해야 하나요?", "어떤 기술들을 공부해야 하나요?", "어떤 기술이 앞으로 뜰까요?", "어떻게 해야 프로그래밍을 잘 할 수 있나요?" 라는 질문을 해본적 있는 사람이라면 꼭 한번 이 책을 읽어보길 바란다.

너무 당연하게 받아들이고 있던 Class에 대해 설명하는 부분이 너무 크게 와닿아 한 구절 인용하며 마무리 하겠다.

Java는 프로그램을 만들 때 우선 클래스를 만드는 언어다. Java로 프로그래밍을 가르치기 위해선 우선 상세한 설명 없이 바로 클래스를 사용해야 한다는 사정도 잘 알고 있다. 하지만 클래스는 수십년 전에 누군가가 '이런 구조가 있으면 편리하겠다.'고 만들어본 것에 불과하다. 그런데 '클래스란 것이 있어. 주문을 외운다고 생각하고 사용해' 라고 설명해버리면 왜 클래스가 필요한지는 영영 알 수 없다.

클래스란 '그렇게 쓰는 게 편하다'는 이유로 만들어진 규칙에 불과하다. 물리 법칙이나 우주의 진리가 아닌, 사람이 정한 규칙이다. 그렇다면 왜 그런 약속을 정했는지, 언어 설계자의 의도를 파악하는 것이 빠르게 이해 할 수 있는 지름길일 것이다.