* 자바스크립트는 알지만 컴퓨터 구조는 모르는 시니어 비전공자들 컴온
* 언어가 JS라고 해서 내용이 쉬워지지는 않는다.
* 책이 두껍지만 그만큼 나도 성장한다.
https://www.hanbit.co.kr/store/books/look.php?p_code=B3583369126
첫인상
먼저 SICP는 Structure and Interpretation of Computer Programs의 약자다. 사실 서점을 돌아다니다가 스쳐서 봤을 때는 하드웨어 관련된 내용처럼 보여서 JS로 하드웨어를 다룰 수 있다고? 개꿀이네. 라고 생각했다. 다른 분들은 이런 실수를 하지 않기를 바라며 서평의 서문에 적어둔다. 책 외관이 아주 무서운 책처럼 보였다. 일단 엄청 두껍다. 찾아보기를 포함해 무려 page 881 웬만한 전공책를 옆에 가져다놔도 전공책이 단편소설로 보일 정도의 두께다. 이 책의 무거움을 한결 덜어주기 위해 표지에 보이는 세련된 마법사 모자 일러스트를 집어넣었지만.. 오히려 모자무게만 더해진 것 같다. 보통 나는 책과의 첫 만남으로 나는 책의 아무 부분만 펴서 2~3 페이지를 읽는 방식을 선택한다. 이 책과의 첫만남을 한창 진행하던 도중 어디서 익숙한 냄새가 나기 시작했다. 씁쓸하면서도 습한.. 나의 공대의 냄새. 그렇다. 이 책은 공대생을 위한 전공책이였던 것이다. 결국 컴퓨터 과학이라는게 사람이 손으로 하던 계산을 기계가 할 수 있도록 만든 학문이므로 수학과 관련된 내용이 조금 많다.파이를 구한다던지 적분을 한다던지 등등 한동안 잊고 살았던 지식들 다시 기억났다. 한창 대학교 과를 정하던 시기에 해리포터에 나오는 모자처럼 이 모자가 나에게"컴퓨터 공학" 이라고 말해줬으면 얼마나 좋을까하는 내심 아쉬움도 있었다.
전반적인 내용
위에서 말했던 것처럼 수학적인 내용이 많다. 즉 수학에서 사용하는 일반적인 식들을 어떻게하면 수치적으로 구현하는가에 대한 설명이다. 하지만 비단 이런 내용만 있는건 아니다.컴파일러, 저장소 할당, GC, 모듈, 추상화 같이 컴퓨터와 개발(개인적으로 CS와 개발 방법론이 구분되어 있다고 생각한다) 전반에 대해 다루고 있고 이 내용 하나하나들이 굉장히 수준이 높다. 그래서 사실 초급 개발자들이 읽기에는 어려운 책이 아닌가 싶다. 개인적으로 추천하는 대상은 비전공자 + 연차 3~4년 인 분들이 읽으면 많은 시너지가 날 수 있는 책이라고 생각한다.
시너지라고 하면 대학원같은... 아니다. 그렇게 생각한 이유는 연차가 쌓이면서 단순이 개발적 이슈 뿐만아니라 하드웨어적인 이슈도 만나게 되는데 그런 부분들이 책을 읽는데 도움이 될거라 생각헀다. 그리고 이 책을 한번에 쭉 읽기 보다는 챕터를 하나 잡고 특정 부분에 대한 이론과 구현을 해보는 것을 추천한다. 가령 5.3의 저장소 할당과 GC 부분에서 직접 GC를 구현하는 부분이 있는데 GC에 대한 이론적 배경과 실제 JS로 구현 + 현재 내가 사용하는 언어의 GC와 해당 로직이 들어가는 이유 같은걸 깊이 탐색해보면 의미있는 학습이 될거라 생각한다. 나도 서평 작성을 위해 책 전체를 훑긴 했지만 주별로 한주제씩 깊이 파볼 생각이다.
결론
무섭게 생겼지만 착한 책이였다. 아직 어색한 사이라 조금씩 야금야금 친해져야겠다.
이 글은 "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."
'Language > Javascript, typescript' 카테고리의 다른 글
[Typescript] 로컬 저장소에 대한 Lock 구현 (0) | 2022.10.21 |
---|---|
[Typescript] Typescript 기본 세팅 (0) | 2022.08.25 |
[Typescript] Object key 타입 정의 (0) | 2022.08.17 |
[typescript] class-transformer, Object를 클래스로 클래스를 Object로! [1] (0) | 2022.04.14 |
[javascript] 변수로 object 키 설정 (0) | 2022.03.20 |