我的2011——总结与展望

说来惭愧,工作快4年了,一次年终总结都没有写过,既然现在开了博客,再不写就有点说不过去了。 日子一天天浑浑噩噩地过着,收获也多少有一些,在这里记上一笔,算作对自己的这一年的总结,同时也 展望一下未来吧。

1. 技术篇 {#toc_1.1}

1.1. Java技术 {#toc_1.1.1}

2011这一年里,我没有接触太多新的Java技术,比如Hibernate、Spring等framework的新版本没有做任何研究,之前 计划的对Maven等新一代Java工具的学习也没能如期完成,有点遗憾。唯一能想到的一些新技术应用,就是在最近的一个 项目里尝试了在Java里嵌入脚本语言(Groovy)来实现动态功能扩展,收到了不错的效果。

这一年我对Java技术的学习更多地集中在底层的JVM上,比如Class Loading,GC,执行引擎等,对JVM有了一个大概的认识; 公司的产品出过几次OOM,在追查问题的过程中也积累了一些经验。然而目前我对JVM的理解深度还远远不够,有一些比较深入 的细节比如Java Memory Model等,即使看过一遍,对其理解也还不深入,可能与我的计算机底层知识还欠些火候有关。

没有太多其他可以写在这的了,这也间接说明我对Java的兴趣减弱了很多。然而最近的一些思考让我决定要把更多的精力 投入到Java上,前面提到的新技术的和JVM在2012年里需要加大力度去学习。Java毕竟是我目前工作经验最多的方向,而我 暂时也看不到转换的可能性,加深对它的掌握,成为一个能独挡一面的工程师是我现在的目标。其他感兴趣的技术,需要再 过滤、剪枝一下了。

1.2. Python技术 {#toc_1.1.2}

毕业以后我一直对Python有着浓厚的兴趣,可惜没能找到机会实践,也没能深入地了解和使用,在2011年里我得到了这样一个机会。 六月份我接手了一个离职同事的项目,其主要开发语言正是Python。第一次全职用Python做开发,让我能在工作时间里去花时间去 研究它、使用它,这实在是一件让人开心的事,而我的Python功力也在这个过程中得到了很大的提升。随着对Python了解的深入,我 也越来越喜爱这个语言,像decorator和generator这类功能,真的能让人写出很简洁很漂亮的代码。

8月份的时候,此项目需要开发一个全新的组件,客户端由我一个人完成的。虽然代码并不多,但到目前为止都运行得很好,没有出现 过严重的bug。在这个组件中,我使用了tornado http server的核心异步IO库,从而对异步IO这个主题有了更深入的了解。tornado 的ioloop和iostream这两个模块精巧的代码也让我颇为欣赏,而这也让我萌生了重写自己的http server的异步IO层的想法,这个主 题在下面会更详细地说明。

Python简单的特点也开始让我在越来越多的场合使用它:设备的模拟器、测试数据构造器、自动抓专辑封面等等等等,反正现在简单的, 能用Python完成的任务,我不会考虑别的语言。

人生苦短,我用Python!

1.3. Linux {#toc_1.1.3}

对Linux的积累是点点滴滴汇聚起来的,所以似乎很难写出一份总结——虽然我能感觉到自己会的更多了。

首先要说的是Gentoo。啊,Gentoo,我曾差点放弃你,这件事绝对不会再次发生了!2011年初,我把自己家用的机器从Ubuntu迁移到Gentoo 上了,到现在已经快一年了,还一直很稳定很好用。Gentoo的包管理系统portage堪称完美(好吧,编译时间这个的确有点让人蛋疼),其附带 的eselect等工具也让人用得很舒服。更重要的是,折腾Gentoo的过程,就是深入学习Linux的过程。安装一遍Gentoo,就能对Linux内核编译、启动 过程等有了深入的了解。Gentoo rocks!

再者就是Linux C编程。说起来,重拾C语言,完全是因为《深入理解计算机系统》这本书。然而书还没看完,我却光花时间在C编程上了。为了让 项目有意思一点,大一点,带来的收获多一点,我在大半年前决定写一个基于异步IO(epoll)的Web Server。然而这都大半年了,它还是一个架子, 连一个hello级别的页面都无法呈现出来(囧)。不过放心,最近我又重拾了这个项目。带着在公司的另一个项目中积累的tornado经验,我决定重写 这个Web Server的底层IO模块,名字都和tornado一样的,ioloop和iostream(山寨得好彻底,囧)。目前ioloop和iostream都完成了大半,假以 时日,Web Server的雏形应该就差不多了。目前定下的第一个milestone是实现Web Server的基本功能,包括request解析以及handler的设计等,后面 再慢慢强化,做好静态页面的功能。最终的目标是支持FastCGI和WSGI,这样就可以用来跑动态Web程序了。

另一个可以提一下的就是Embedded Linux,之前提到的主要使用Python的那个项目,是跑在ARM版Fedora 12上的,我接手以后,客户想将其移植 到一款不同的硬件上,于是七、八月份的时候我把玩了一下客户带过来的工程板。其中最有成就感的一件事就是自己写了一个init脚本并构建到 initramfs中,那个脚本负责挂载SD卡并change root到其中。这实在不是什么很大的功能,也没什么技术含量,但我依然觉得很好玩,也有一些 成就感。

写到这,不得不感慨自己技术路线的选择是多么大的失误。如果上大学的时候我就能接触到现在天天在玩的这些东西,我还会选择做什么Java企业 开发吗?肯定不会!

2. 生活篇 {#toc_1.2}

2.1. My Girl {#toc_1.2.1}

2011年最大的变化是:我的生活里多了一个她。美丽、可爱而又善良的她,给我的生活增添了太多幸福和欢笑;而我也逐渐明确了未来的方向, 对将来的发展有了更多的想法。我要好好努力才行,因为下定了决心要给她一辈子幸福呢!

2.2. TJLUG {#toc_1.2.2}

2011年初开始加入各色LUG邮件列表时偶然发现的TJLUG,让我找到了组织。我们每月一次的活动,虽然人数不多,但也都是很有内容的。我自己 也厚着脸皮上台分享过三次主题演讲,分别是Vim,Python和reStructuredText的介绍。希望新的一年能有更多Geek加入TJLUG,让这个组织壮大 起来,让大家都能有所收获。

2.3. 运动 {#toc_1.2.3}

2011年4、5、6月份的时候,我曾经和室友坚持锻炼了一段时间,虽然强度不算高,但自己的的确确感受到了一些变化,比如睡觉更香了,白天 也不总是那么浑身没劲了。可惜的是我没能坚持下去,很遗憾。身体是革命的本钱,这个道理天天挂在嘴边说,家人也在时刻叮嘱,但却难以坚 持下去。我想,这也是惰性的一种体现吧。

2.4. 摄影 {#toc_1.2.4}

五月去云南旅游之前咬牙入手了单反,正式成为了单反装B党。到目前为止半年有余,出了一些片子,其中有一些我自己还是很喜欢的,但总的 来说没有什么进步。主要原因是自己太懒,虽然总在计划找时间出去拍照,但鲜有行动。这里找出几张自己满意的作品,算作对2011的回顾吧!

 

2.5. 游戏 {#toc_1.2.5}

2011年我正式向WOW说再见了,以后回归的可能性也几乎没有了。从2008年刚毕业到2011年初,无数的时间都投入到了艾泽拉斯世界里,但,我不 后悔——即使自己需要花在技术上的时间都被浪费掉了。在游戏里认识了很多好朋友,也留下了很多回忆,我想,这一辈子都不会忘记在艾泽拉斯 经历的那一幕幕了。一张截图,纪念过往的WOW岁月。

不得不提超级光棍节那天发售的《上古卷轴5:天际》,它已经成功替代《上古卷轴4:湮灭》,成为我心目中最伟大的游戏了。我承认我已经沉迷 在天际省无法自拔了……

我曾经决定不玩游戏的,直到我膝盖中了一箭。

3. 展望篇 {#toc_1.3}

新的一年就要到来了,如果2012不是世界末日,我希望自己能达成一些目标:

  • 事业上希望能有一些新的发展,接触一些新的项目,让自己呼吸一些新鲜空气,防止自己产生惰性
  • 深入学习Java技术到一个新的层次,包括对JVM的理解、新的Java工具的使用等
  • 继续保持对Python的热情,深入学习和了解它,并开始接触一些自己不曾触碰的主题, 比如C扩展模块的编写,Python VM,Web Framework等。
  • 继续加强对计算机系统底层知识的学习
  • 坚持做完自己的HTTP Server项目,使其有一定技术含量
  • 是时候学驾驶,拿驾驶证了
  • 坚持做好厨男,多学会几个菜,并让它们更美味一些。现在可多了一张嘴来检验我的厨艺呢!
  • 运动!运动!考虑买个自行车,定期出行,锻炼的同时也可以练习摄影
  • 理论结合实际地继续学习摄影及简单的后期制作。希望能出越来越多的好片
  • 提升一下自己的“文科”修养,看些历史、人文等方面的书

新年的钟声很快就要敲响了,希望所有看到这篇文章的人新年快乐,心想事成!

Comments