上班时间肯定是在用常用的语言的,业余的学习很难深入,换工作时一般也会找自己熟悉的语言的吧,毕竟找其他的也需要相应的工作经验.其实是自己比较想跳出java这个框框,也看过scala,ruby等其他OO的语言,但没什么特别适合拿来练手的机会,想看看别人都是怎么做的.
1
startry 2015-08-14 19:05:38 +08:00
自己创造机会, 自己去尝试用想学的这门语言去实现一些自己的想法, 或者移植人家的应用, 总而言之, 通过实践来督促自己学习哇,否则很难持久。
|
2
xhuuanniqege 2015-08-16 09:00:38 +08:00 via Android
java转西加加表示狂刷leetcode,然后看些开源项目
|
3
izgzhen 2015-08-18 15:34:32 +08:00 1
学新语言首先要有一个心理准备,比如对于语言之间的异同之处要有抽象一些的理解。比如 scope, call by value/name/ref, 内存模型 etc 这样就能把握比如 Ruby 相对于 Java 的特性是什么。不然,光过一遍语法就上手写很快就会因为不理解和不适应而产生沮丧感。
练手时我觉得要尽量发挥新语言的特性,比如 C++ 的模板编程, Scala 的函数式写法。书上的范例抄下来可以多重构、拓展,仔细读编译器报错。再严肃一些的话可以到 github 上搞一些小项目下来,主要观察工程组织的方式等等。 我觉得楼主可以来学下 Haskell ,这样原有的 mental model 不会影响你对 functional, immutable 这些概念的理解(学 Scala 可能会被 OO 分心),同时 Haskell 还会强迫你思考一些更接近本质的东西,比如 var binding 。然后(像我一样)被虐的差不多了就可开开心心的接触其他有先进特性的语言了。 |