2015年静悄悄的过去了,我也来总结一下这一年的经历,或许也有一点成长。这年是我从国内来悉尼的第二年了,对这里越来越习惯了,生活和工作也逐渐稳定下来。
学习和成长方面,今年重点学习了算法、Rails还有入门了几种函数式语言比如Haskell/Elixir/Elm。年初参加了一个学习小组一起学了Coursera上的Algorithms Part I和Part II课程。这个课程的作业要求用Java,于是写了好几个不大不小的Java程序;在此过程中也领教了Java的冗繁(还没尝到传闻中Library丰富的甜头)。课程结束的时候已经是六月份了,回过头来把之前学了大半Rails Tutorial捡起来,但时间隔得久了很多东西又忘了,所以进展缓慢。一部分原因也是中间还抽时间看Dave Thomas的Programming Elxir;还有学习Phoenix框架,过程中还给Phoenix Guides贡献了几个commit。边学用Phoenix给公司网站做了个首页,还给Phoenix和Elixir各贡献了一个很小的commit。巧的是这两个Pull Request居然是同一天之内被合并的。由于也开始参加Ruby on Rails Development Hub,认识了一些做Rails的朋友;和他们聊过工作前景之后,决心还是先把Rails学起来,尽管目前看它已经是走下坡路了。斗志焕发后很快把Rails Tutorial收尾了。接着又发现Edx上有个课程Introduction to Functional Programming (FP101x),和学习小组的Casper(这哥们在Atlassian,最近公司上市了,恭喜他)交流之后决定趁此机会学一下Haskell。结果八周的课程过后尽管成绩上看还不错(93%),对Haskell也就是刚刚入门,很多基础概念都还没有搞清楚。中间还抽空上了Coursera的另外一个课程Learning How to Learn。对这个课程我表示强烈推荐,而且是男女老少皆宜。因为我认为不管处在人生的哪个阶段,人总是需要学习的——当然具体学的内容会有很大不同——学会更加有效的学习总是有积极作用的。此课程在大脑工作原理的层面介绍了学习是什么、记忆如何形成、睡眠和锻炼的作用等很多非常重要的知识,能够帮我们在学习的路上少走一些弯路,破除一些错误的观念。FP101x结束之后已经临近年底了,不过还是抽时间完成了Upcase上的Test-Driven Rails,大概理解了TDD在写Rails的时候是怎么玩的。
工作方面有两个痛点:一是公司IT只有我一个人,杂事太多经常打断开发的节奏;二是公司的遗留系统实在坑太多,一年多还是很多填不平,加上需求变化又会有新坑。第一点限于环境我没有太多解决的办法,唯一一点改进是把有可能用程序帮助自动化的任务尽量多自动化。第二点,首先有可能的时候在改代码的同时,是给CakePHP写的代码增加单元测试,目前有了几十个测试用例。其次我在尝试把系统用其他更好的框架重写。开始打算用Phoenix,写了个首页之后觉得Elixir虽然风头正劲,不过毕竟太新,很多功能的库可能还没有。所以还是决定保守一点选用Rails,计划是先用Rails实现API,然后在前端引入某个js框架,逐步改写各个页面。这样子可以避免整个系统整体切换,过度会平滑很多,最大限度的降低风险。缺点就是过程会更长并且麻烦,因为每一步改动都要考虑兼容现有没改过的部分。有部分很小一部分功能已经用这种方式上线了,于是我也部署了第一个生产环境的Rails API应用;目前js框架用的是vuejs,感觉还是有点麻烦,当然也很可能是我自己用的姿势不对。用Rails开发API的时候,不想把API和主站放到同一个域名下,于是研究了跨源资源共享(Cross Origin Resource Sharing)并且用自己学到的东西在Rorosyd (Ruby on Rails Oceania Sydney)做了人生第一个英文的Lighting Talk。还有一点值得一提的是在圣诞和元旦假期中间那几天,开始用RSpec+Capybara给CakePHP做的系统搞集成测试。总体来讲进展比较顺利,而且我感觉这些测试将是以后做大手笔改动时的安全保障。
身体方面,由于交通以开车为主加之锻炼很少,体重屡创历史新高。意识到这个问题以后,首先是恢复每周打羽毛球,保证每周有一定量的运动。到现在打了近20次,还把国内带来的拍子打坏了,只好买了第一把Yonex。因为在Learning How to Learn里面了解了锻炼对于身体以及学习和创新方面的作用之后,开始坚持每天Seven Minute Workout,到现在才一个多月,中间还有一天莫名其妙的忘了。每天锻炼的习惯要努力坚持下去,毕竟身体才是革命的本钱。
生活上最大的变化是终于买了第一套Unit,并且在八月份搬入新居,算是有了自己的小窝。最近还惊奇的发现自己居然学会了和面以及烙饼,而且烙的葱油饼被儿子认为是“世界上最好吃的饼”,每次都吃不少。客观的说,世界最好吃肯定谈不上,不过家人和我自己都觉得味道还不错也就够了。我其实很少做饭,和面这种事情对我而言一直是复杂到从没想过要尝试;现在没有非太多功夫就学会了,真是有点意外。
总结一下,自己好的方面是现在越来越敢于尝试了,从编程语言、框架等技术的学习,到第一次做技术分享,再到试着自己做各种好吃的。各种尝试的结果不能说都很成功,不过确实都有不少收获。尝试永远是做好或者成功的第一步,自己尝试去做就会发现有些东西远没有想象的那么复杂;有些东西初学起来确实很复杂,不过多花点功夫往往也是能搞定的。不好的方面是计划还做的不好,技术学习上太泛而不够深入。新的一年里要更好的做计划,合理利用有限的时间,继续加深对Rails的了解;函数式编程方面也想再进一步;另外就是前端打算尝试一下目前最火的ReactJS。
Leave a comment