SICP(Structure and Interpretation of Computer Programs)
Structures andInterpretation ofComputerProgram- 컴퓨터 프로그램의 구조와 해석은 MIT 대학 교수인
Harold Abelson과Gerald Jay Sussman이Julie Sussman과 함께 쓴 컴퓨터 과학 교과서입니다. 해커 문화에서는 "마법사 책"으로 알려져 있습니다.
- 컴퓨터 프로그램의 구조와 해석은 MIT 대학 교수인
- wikipedia
I wish I had read SICP when I was in high school!
— John Carmack (@ID_AA_Carmack) June 16, 2017
간단 느낌
- 1장: 할만한데 그 놈의 뉴턴
- 2장: 알 수 있는걸 말하는거 같은데 그 놈의 연습문제
- 3장: 연습문제 연습문제 연습문제
- 4장: 이발, 이발, 이발, 이발 아이고 쿼리
- 5장: 이젠 어셈블까지? 그리고 마지막에 가서는 연습문제로 알려줄거 다 알려줬으니 알아서 C로 해보라고.
요구조건
- 엄청난 시간.
- 연습문제는 깊이있는 이해를 도와주지만, 손을 대는 순간 타임머신이므로, 탐독할 시간이 적으신 분은 욕심을 내려놓으셔야 합니다.
- 한시간씩만 잡아도 356시간 > 잠안자고 15일
- 46(1장) + 97(2장) + 82(3장) + 79(4장) + 52(5장) = 356
- 증명해라 / 구현해라
- 한시간씩만 잡아도 356시간 > 잠안자고 15일
- 연습문제는 깊이있는 이해를 도와주지만, 손을 대는 순간 타임머신이므로, 탐독할 시간이 적으신 분은 욕심을 내려놓으셔야 합니다.
- 엄청난 양/깊이
- 저자가 열심히 설명했지만, 다루는 양과 깊이 자체가 두께에 비해 흔히 접할 수 있는 컴퓨터 서적보다는 많고 깊음.
- 정보 과부하가 걸리기 시작하면서 연습문제를 맞이하면, 그리고 일상생활에 치여 흐름이 끊기면 이어나가기 힘듬.
- 영어.
- 번역서가 있기는 하나, 번역하신 분께는 죄송하나, 원문의 내용을 오해하게 만들거나, 어색하거나 이해하기 어려운 번역이 있어 뭔가 이상하면 원서를 봐야합니다.
- Ai(chatgpt/deepl)나, 번역서비스(google/naver)를 이용 권장. 어쨋든 번역서 만으로 이해하는데 에로사항이 많음.
책
- ver. mitp-content)
- ver. pdf
- ver. sarabander
- 한글판: 컴퓨터 프로그램의 구조와 해석
- 번역) 김재우,안윤호,김수정,김정민, 감수) 이광근
- 비추천
비디오
- MIT 6.001 Structure and Interpretation, 1986
- by Eric Grimson in 2004
- by 이광근 Kwangkeun Yi 교수님
- by code_report
솔루션
- SICP exercises - Is this a cdadr which I see before me?
- SICP Study
- by Zetavolt
- https://sicp-solutions.net/
- 2장 초반부까지만
- by lisp-korea
- by 아꿈사 스터디(아키텍트를 꿈꾸는 사람들, andstudy)
- https://www.inchmeal.io/sicp/index.html
- https://github.com/hjcapple/reading-sicp
- https://github.com/ivanjovanovic/sicp
- https://eli.thegreenplace.net/tag/sicp
- https://github.com/l0stman/sicp
- https://git.felixm.de/felixm/SICP
기타
- Why Structure and Interpretation of Computer Programs matters - Brian Harvey
- Instructor's Manual t/a Structure and Interpretation of Computer Programs
- https://nlp.jbnu.ac.kr/SICP2019/
- Language Oriented Design - Discussing SICP with Hal Abelson
- Software Design for Flexibility
- Paradigms of Artificial Intelligence Programming
- 수학
- Structure and Interpretation of Classical Mechanics (SICM)
- Functional Differential Geometry
- EoPL Essentials of Programming Languages
- CPTT Compilers: Principles, Techniques, and Tools