一个书单

曾经有学长邀请我去给新人做个演讲。我当即就回绝了——我不回绝是不行的:一来我至今仍在学东西,Types and Programming Language之类的大部头一本都没看完过,PLT究竟是什么有怎么样的方向和应用到现在我都没能搞清楚,就这么跟新人说我是搞PLT的,我自己都过意不去;而且我也不能保证我记住的和我说出来的都是对的;我自己就学得很糟糕,不该再出来带坏新一届的年轻人。然而我想,无论如何最基本的能够助人上路的东西我总是能教的,于是想跟校内的社团一样,写本入门的小册子;然而再后来连写小册子的动力都没有了:坦白地说,最近这几个月我的状态都很糟糕,而且网络上总是能找到很不错的书,干脆让他们自己看书算了……他们的起点总不会比我还要低吧,开始之前我已经好几年没正经学过编程了。或者说我从来就没真正的正经学过;即便如此现在的我居然还能给一部分人留下“很厉害”的印象,虽然我也不知道这是为什么,但我想既然如此的话我的经验总不会有特别大的过错,大概也可以拿出来作为某种程度上的指导的。

当然我不是在说编程就只有这些东西而已:它囊括的范围很大,我的经验仅仅只包括了其中很小的一部分。做这个需要一直学习到老不学习就只能被抛下的觉悟。

DISCLAIMER: 这个书单并不是为了满足大多数人对于编程的想象而安排的;也就是说,这并不是一个能够让你立即出去找实习找兼职找外包工作让你早日能够独立生活的书单,这个书单里的书也不(全)是那样的书。这恐怕是这个书单的最大的缺陷,同时也——当然——是我本人最大的缺陷。因此最好跟C++ Primer或者Head First PHP一类的现实世界会用到的书一同食用;特别是C++:你可能会发现C++中的一些比较难以理解的概念在函数式/PLT的语境下十分地trivial,至于为什么?不清楚。我也不清楚。真的不清楚。

  • 这个列表是根据我个人的经验更新的。
  • 暂时就只有这些(因为我净是在看article所以很多据说很不错的书我都没有看过(所以也就不列出来了))。
  • try this at your own risk.
  1. Software Foundations, Benjamin C. Pierce et al.
    去年刚开始学coq时看的书。原本是作为一门研究生课程(据说还是50%合格率)的课本,但是这种程度的基本上大一就能够handle了。去年的时候曾经有过一个翻译计划(就是Preface里提到的underway的那个),然而主催现在很忙的样子也不敢特意去打搅她,感觉这个计划要从此烂尾了orz。
  2. Haskell函数式编程入门,张淞著;以及其他的有关Haskell的入门用书
    我不确定是否应该将讲某一门特定语言的书跟SF之类的书一起列进这个书单里;本来就PLT/新人的二者综合而言可能《七周七语言》这样的书会更好一些;然而事实是haskell是现在PLT研究的御用语言,而且你总要让新人先懂函数式编程是怎么回事;倘若选择的那门语言正好有已经成型的应用那就正好能够激起兴趣;于是我选择了haskell。虽然说Ocaml/F#也可,但是出于某些原因个人认为还是haskell会比较好。
  3. Structure and Interpretation of Computer Programs, Harold Abelson et al.
    对2的一个补充;或者说2是3的一个补充。坦白地说这本我感觉比1还要难……然而确实是MIT的大一用的书。至于说看完前三章还是没明白这种书哪里厉害的……看完第四章就好了:)

2 Comments

  • 潘永明 says:

    泽天君要像村上坚持跑步和写作那样坚持自己的信仰和兴趣哦~

  • wang rui jun says:

    Much helpful to me,thx…(^_^) And nice to meet you~

Leave a Reply

Your email address will not be published. Required fields are marked *