前言
最近想了解下akka,鉴于scala是一门融合了FP和OO的语言,目前发展不错,所以决定学习一下。本文整理了一些不错的入门资料。
找资料
在开始一门新的语言的学习时,首先会想着在网上了解一下这门语言的现状和发展,然后就会开始找相关资料进行入门学习。
结合我之前学习其他语言的经验,我认为的学习过程可以分为:
- 认识基本语法
- 看懂小知识点对应的小例子(2-10行)
- 模仿写出小例子(2-10行)
- 看懂综合多个知识点的大例子(100-3000行不等)
- 针对某个具体问题,结合多个知识点给出相关解决方案
- 认识流行框架
- 开始使用优秀框架构建项目解决问题
- 开始读优秀源码
- 思考语言设计
- ...
首先我在知乎上找了相关问题如何学好Scala?请给出一条科学的时间线,该问题下的很多回答都是相当靠谱的,感谢这些回答者!
遍历答案结合之前的经验筛选出了我认为不错的一些参考资料:
书籍
- twitter的入门手册,这个手册知识点列举得比较简单,基本上属于扫一眼然后对相关语法有个大概的认识
- Scala for the Impatient/快学scala,这本书按难度进行的编排,可以稍微看扫一下多章加深认识
- Scala编程 创始人MO写的书,当做手册看即可
小例子
- Ninety-Nine Scala Problems 在你看了一些语法想练手的时候,这99个例子给了你好机会,当然我貌似只做了30个左右(没时间)
大例子
- A pipelined, non-blocking, extensible web server in under 1400 lines of Scala 这个大例子是极好,java的同学基本可能都了解过jetty的实现,看过《How Tomcat Works》,而这个例子用不到1400行代码构建了一个基于Nio的采用流水线设计、可扩展的web server,真是给力!后面可能会以这个大例子为入口,介绍scala中涉及到的语法点
博客
- hongjiang的博客 大牛宏江的博客
优秀源码
开干
经过差不多一个礼拜下班+周末的学习,才达到了看懂web server那个大例子的程度,进度有点慢,加油!