原文链接:http://lucida.me/blog/summary-of-march-2014/@H_404_1@
目标实际完成情况
Tarqie-J
- 目标
- 高效完成Q1 OKR。 –> 1.0
- 搞定,超出Manager和Mentor的预期。
- 高效完成Q1 OKR。 –> 1.0
- 量化
- 成功迁移124个Test。 –> 1.0
- 搞定,并且构建了持续测试环境。
- 为这些Test配置一个可稳定运行的环境。 –> 0.8
- 基本搞定,但仍存在少量(每天1~2次)的不稳定状况。
- 成功迁移124个Test。 –> 1.0
- 改进
- 恬着脸皮向不同的同事请教。 –> 1.0
- 达成——基本每个同事都被我骚扰了一遍 –_–
- 理解当前Test的架构和流程。 –> 1.0
- 重建测试框架的过程中了解
- 阅读The Art Of Unit Test,Guice Book和GuiceBerry Manual,了解如何用Guice写良好的Test。 –> 0.7
- 部分完成,阅读Google Guice Book,了解了Guice运作机制。
- 阅读Java Best Practices和Effective Java。 –> 0.8
- 部分完成,重新阅读了JBP,但Effective Java只看了一多半。
- 阅读Java Performance,了解JVM。 –> 0.7
- 部分完成,阅读了国产的《深入理解Java虚拟机》,了解Java内存管理/回收,字节码生成等内容。
- 恬着脸皮向不同的同事请教。 –> 1.0
- 验证
综上所述,得分 0.85@H_404_1@
Tarqie-L
- 目标
- 量化
- 精力提高(自然醒,不赖床)。 –> 0.6
- 自然醒但依然赖床——-_–
- 熟悉Python及其实现。 –> 0.8
- 部分搞定,见上文。
- 理解4个开源项目的架构。 –> 1.0
- 搞定,见下文。
- 精力提高(自然醒,不赖床)。 –> 0.6
- 改进
- 早睡早起(11:30 PM ~ 8:30 AM)+每天运动20分钟。 –> 0.7
- 早睡早起没做到,运动的频率两周一次。
- 阅读相关技术书籍(Python源码剖析,开源项目架构等)。 –> 0.6
- 部分完成,Python源码剖析只读了第一章,但开源项目架构每周一篇。
- 增强学习能力(阅读《Study Less,Learn More》) –> 1.0
- 完成。
- 控制手淫频率至两周一次。 –> 1.0 –_–
- 完成。
- 早睡早起(11:30 PM ~ 8:30 AM)+每天运动20分钟。 –> 0.7
- 验证
- 早睡早起+运动不间断。 –> 0.5
- 搞定一半。两天运动一次。
- 学习能力增强(+系统学习能力)。 –> 1.0
- 部分做到,但很难验证——不过用十天搞出了另外一个家伙搞了5个月的东西应该能说明部分问题。
- 逐步理解Python各个部分的实现(对象,语句,元组,列表,字典,控制流,异常,自定义类型,列表理解,生成器,模块,从源码了解其机制)。 –> 1.0
- 没有阅读代码,但完成了一个Python Formatter——把Python代码转换成AST再转换回等语义的Google Python Style代码。
- 每周理解1个开源项目的架构。 –> 1.0
- 完成——阅读了Bash,Selenium WebDriver,Chrome和puginxml。
- 早睡早起+运动不间断。 –> 0.5
综上所述,得分 0.8@H_404_1@
成就
工作
- 构建新的测试环境并迁移原有的测试用例。
- 各种神坑,Team/MailList/Group/ReadTheFuckingSource。
- manager一度问我是否需要support——想了想还是撑下来了,还好搞定了。
- 神奇的发现自己第一次实习时做的也是migration,尼玛难道是轮回?
- 利用业余时间构建了pyfmt——基于AST的代码格式化工具,生成符合Google Python Style的等语义代码。
生活
- 重新实现了自己两年前写的Lucida。
- 重新设计类型系统,进行尾递归优化。然后完成《90分钟实现一门编程语言——极简解释器教程》,写作之余想通了之前很多迷惑的地方。
- 功能基本等同,代码量是前一版的八分之一,运行速度是前一版的270倍(倒不是这一版效率有多高,主要是前一版写的太挫了)
- 《如何阅读书籍》和《网络上瘾及其解决方法》两篇议论型博客。
- 完整的完成一个引体向上。
阅读列表
- The Quick Python Book
- Getting Started with Google Guava
- 深入理解Java虚拟机:JVM高级特性与最佳实践
- 网络素养
- 如何高效学习
- Google Guice
- The Architecture of Open Source Applications
一些体会
- 慢读慎写——读书不是靠页数,代码不是拼行数。
- 精益求精——严肃认真对待自己的任何一个项目/作品,每一行代码,每一个细节都应有其意义。
- Don’tsatisfice—— 在时间充裕的情况下,尽力寻找最优解,而不是找到一个答案就满足。
- Have a mentor/coach——无论学习什么,身边要有一个大师级人物,不要盲目相信自学能力——坑大多都是自己挖出来的。
- 在合适的抽象层工作(Working at a proper abstraction layer),包括下面几点:
- 找到与目标最契合的层次:
- 总是在同一个层次工作——以避免上下文切换。
- 将复杂度封装到各自对应的层次——以避免进行交互——Law of Demeter
发现的问题
- 3月目标制定的过于宏大——尽管完成度不错,但代价也很大——工作时间从每天8小时增加到10小时,到了后期的阅读时间几乎被缩减到零,接下来会相应的缩小计划目标。
- 除了工作就是学习,导致略抑郁——尽管做出的东西带来了一点成就感。总之接下来需要更多的娱乐。
- 猛然反应过来所谓的TARQIE其实就是OKR(Objective-Key-Results)——所以接下来直接使用OKR制定计划,更加简洁。
4月计划
OKR-J
- 目标
- 完整迁移测试到原项目中。
- 稳定+推广pyfmt。
- 关键结果
- 成功迁移124个Test到原项目。
- 将测试的不稳定性控制在每天3次以下。
- pyfmt通过Python Readability。
- pyfmt有10个以上的用户。
- pyfmt从experimental进入devtools(略激进,但值得一试)。
OKR-L
- 目标
- 正常作息,提高精力。
- 结合pyfmt,深度理解Python。
- 加深对Java & JVM的理解。
- 关键结果
- 理解Python各个部分的实现,从源码了解其机制。
- 阅读并理解两个以上的开源项目架构。
- 完成深入理解Java虚拟机:JVM高级特性与最佳实践,阅读《Java Performance》至50%。
- 迁移测试的同时完成Effective Unit Testing: A guide for Java developers的阅读。
- 早睡晚起(8:40 ~ 23:50)
- 控制手淫频率至两周一次。
- 至少两天一次20分钟的运动。
- 微博:@peng_gong
- 豆瓣:@figure9