scala入门之我见(整理了一些入门资料)

前言

最近想了解下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的博客 大牛宏江的博客

优秀源码

  • akka 学习actor model
  • finagle 选择一个rpc框架作为后续的学习和我个人的经历有关,仅作参考

开干

经过差不多一个礼拜下班+周末的学习,才达到了看懂web server那个大例子的程度,进度有点慢,加油!

你可能感兴趣的