加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

三月小结(暨TARQIE——一种量化成长的方法(下))

发布时间:2020-12-14 01:14:04 所属栏目:百科 来源:网络整理
导读:原文链接:http://lucida.me/blog/summary-of-march-2014/ 目标实际完成情况 Tarqie-J 目标 高效完成Q1 OKR。 – 1.0 搞定,超出Manager和Mentor的预期。 量化 成功迁移124个Test。 – 1.0 搞定,并且构建了持续测试环境。 为这些Test配置一个可稳定运行的环

原文链接:http://lucida.me/blog/summary-of-march-2014/

目标实际完成情况

Tarqie-J

  1. 目标
    • 高效完成Q1 OKR。 –> 1.0
      • 搞定,超出Manager和Mentor的预期。
  2. 量化
    • 成功迁移124个Test。 –> 1.0
      • 搞定,并且构建了持续测试环境。
    • 为这些Test配置一个可稳定运行的环境。 –> 0.8
      • 基本搞定,但仍存在少量(每天1~2次)的不稳定状况。
  3. 改进
    • 恬着脸皮向不同的同事请教。 –> 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内存管理/回收,字节码生成等内容。
  4. 验证
    • 每周与mentor交流,进行进度控制/难点求助。 –> 0.6
      • 由于mentor结婚度蜜月所以没有达成。
    • Test的数量不断增加。 –> 1.0
      • 达成——事实上全部搞定。
    • CL中review的数量持续降低。 –> 1.0
      • 搞定,成功的从每次提交代码20余个review降至小于6个。
    • 逐步理解项目代码背后的机理。 –> 0.6
      • 部分搞定,对项目测试框架已经相当了解了(毕竟自己重新搭建了整个框架),但对整个项目的各个模块,交互流程还是一头雾水。

综上所述,得分 0.85

Tarqie-L

  1. 目标
    • 提高精力,理解Python。 –> 0.8
      • 精力小有提高,至于Python——实现机制不太了解,但Python语法和编程风格我现在有足够自信——毕竟写了一个程序解析合法的Python然后生成同等语义的Google风格的Python,再加上身边有一个Python Readability Reviewer,说自己现在达到中级Python开发者的水准应该不为过。
  2. 量化
    • 精力提高(自然醒,不赖床)。 –> 0.6
      • 自然醒但依然赖床——-_–
    • 熟悉Python及其实现。 –> 0.8
      • 部分搞定,见上文。
    • 理解4个开源项目的架构。 –> 1.0
      • 搞定,见下文。
  3. 改进
    • 早睡早起(11:30 PM ~ 8:30 AM)+每天运动20分钟。 –> 0.7
      • 早睡早起没做到,运动的频率两周一次。
    • 阅读相关技术书籍(Python源码剖析,开源项目架构等)。 –> 0.6
      • 部分完成,Python源码剖析只读了第一章,但开源项目架构每周一篇。
    • 增强学习能力(阅读《Study Less,Learn More》) –> 1.0
      • 完成。
    • 控制手淫频率至两周一次。 –> 1.0 –_–
      • 完成。
  4. 验证
    • 早睡早起+运动不间断。 –> 0.5
      • 搞定一半。两天运动一次。
    • 学习能力增强(+系统学习能力)。 –> 1.0
      • 部分做到,但很难验证——不过用十天搞出了另外一个家伙搞了5个月的东西应该能说明部分问题。
    • 逐步理解Python各个部分的实现(对象,语句,元组,列表,字典,控制流,异常,自定义类型,列表理解,生成器,模块,从源码了解其机制)。 –> 1.0
      • 没有阅读代码,但完成了一个Python Formatter——把Python代码转换成AST再转换回等语义的Google Python Style代码。
    • 每周理解1个开源项目的架构。 –> 1.0
      • 完成——阅读了Bash,Selenium WebDriver,Chrome和puginxml。

综上所述,得分 0.8

成就

工作

  1. 构建新的测试环境并迁移原有的测试用例。
    • 各种神坑,Team/MailList/Group/ReadTheFuckingSource。
    • manager一度问我是否需要support——想了想还是撑下来了,还好搞定了。
    • 神奇的发现自己第一次实习时做的也是migration,尼玛难道是轮回?
  2. 利用业余时间构建了pyfmt——基于AST的代码格式化工具,生成符合Google Python Style的等语义代码。
    • 速度是公司工具的6倍到50倍不等(已验证)。
    • 速度是autopep8的3倍到30倍(已验证)。
    • 生成的代码质量基本等同(待验证)。
    • 代码量是autopep8的二分之一。
    • 不依赖任何第三方库。
    • 不使用任何正则表达式——Never send a regex to do a parser’s job.

生活

  1. 重新实现了自己两年前写的Lucida。
    • 重新设计类型系统,进行尾递归优化。然后完成《90分钟实现一门编程语言——极简解释器教程》,写作之余想通了之前很多迷惑的地方。
    • 功能基本等同,代码量是前一版的八分之一,运行速度是前一版的270倍(倒不是这一版效率有多高,主要是前一版写的太挫了)
  2. 《如何阅读书籍》和《网络上瘾及其解决方法》两篇议论型博客。
  3. 完整的完成一个引体向上。

阅读列表

  • The Quick Python Book
  • Getting Started with Google Guava
  • 深入理解Java虚拟机:JVM高级特性与最佳实践
  • 网络素养
  • 如何高效学习
  • Google Guice
  • The Architecture of Open Source Applications

一些体会

  1. 慢读慎写——读书不是靠页数,代码不是拼行数。
  2. 精益求精——严肃认真对待自己的任何一个项目/作品,每一行代码,每一个细节都应有其意义。
  3. Don’tsatisfice—— 在时间充裕的情况下,尽力寻找最优解,而不是找到一个答案就满足。
  4. Have a mentor/coach——无论学习什么,身边要有一个大师级人物,不要盲目相信自学能力——坑大多都是自己挖出来的。
  5. 在合适的抽象层工作(Working at a proper abstraction layer),包括下面几点:
    • 找到与目标最契合的层次:
      • 如果层级过高就会造成性能损失和功能缺失。
      • 如果层次过低就会变成重造轮子。
    • 总是在同一个层次工作——以避免上下文切换。
    • 将复杂度封装到各自对应的层次——以避免进行交互——Law of Demeter

发现的问题

  1. 3月目标制定的过于宏大——尽管完成度不错,但代价也很大——工作时间从每天8小时增加到10小时,到了后期的阅读时间几乎被缩减到零,接下来会相应的缩小计划目标。
  2. 除了工作就是学习,导致略抑郁——尽管做出的东西带来了一点成就感。总之接下来需要更多的娱乐。
  3. 猛然反应过来所谓的TARQIE其实就是OKR(Objective-Key-Results)——所以接下来直接使用OKR制定计划,更加简洁。

4月计划

OKR-J

  • 目标
    1. 完整迁移测试到原项目中。
    2. 稳定+推广pyfmt。
  • 关键结果
    1. 成功迁移124个Test到原项目。
    2. 将测试的不稳定性控制在每天3次以下。
    3. pyfmt通过Python Readability。
    4. pyfmt有10个以上的用户。
    5. pyfmt从experimental进入devtools(略激进,但值得一试)。

OKR-L

  • 目标
    1. 正常作息,提高精力。
    2. 结合pyfmt,深度理解Python。
    3. 加深对Java & JVM的理解。
  • 关键结果
    1. 理解Python各个部分的实现,从源码了解其机制。
    2. 阅读并理解两个以上的开源项目架构。
    3. 完成深入理解Java虚拟机:JVM高级特性与最佳实践,阅读《Java Performance》至50%。
    4. 迁移测试的同时完成Effective Unit Testing: A guide for Java developers的阅读。
    5. 早睡起(8:40 ~ 23:50)
    6. 控制手淫频率至两周一次。
    7. 至少两天一次20分钟的运动。

作者:Lucida

  • 微博:@peng_gong
  • 豆瓣:@figure9

原文链接:http://lucida.me/blog/summary-of-march-2014/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读