前言
感觉这周终于有点步入正轨了,晚上12点左右打卡下班,早上睡到9点半,起来热个牛奶,收拾收拾去公司。相比上周,没有了额外学习的时间。
逻辑的碰撞,改变反射脑
不足
覆盘一下, 这周在实现一些功能的时候,只有一个感觉,就是“慢”。
具体:
- 花20%的时间写bug,然后花60%找bug(如前一篇所言,一方面是设计阶段的没做好,另一方面是自己写代码的思路不好)
- 在check别人代码的时候,反应很慢,一方面是心理因素(心理对看别人代码有种抵触),另一方面则是对别人代码逻辑的不熟悉,需要花时间去了解。
多读代码,逻辑的碰撞
在前一篇总结中就写到,代码可以反应一个人的逻辑。一个项目需求如果由一千个人来做,可能会有一千种逻辑实现,虽然最后可能都会达到同样的功能,但实现的细节可能千差万别。
那么问题来了,哪种逻辑是算最好的?自古有“文无第一,武无第二”的说法,写代码可以算在“武”里面,因为有明确的衡量指标(如“内存使用”, “代码量”,“可扩展性”等等)。
在写代码的时候,人们往往会按照自己的直觉来写(换种说法,就是条件反射),一气呵成。然后写完了,发现某些功能支持的不全,或者没有拓展性,面对更多需求的变化,只能推倒再来。
那么问题来了, 有改变自己直觉的方法么?
答案是有,就是去多读优秀的代码,多思考优秀的逻辑。
在读的时候可以按照如下的流程:
- 这个函数实现了什么功能?
- 先想想这个功能要是自己来实现的话,会怎么实现,用到哪些数据结构,这么做内存使用,可扩展性如何
- 再看别人是如何实现的,与自己的想法有无一致
- 如果别人的逻辑比自己的优秀,可以做笔记把实现逻辑记录下来,每天读一遍,强行改变条件反射。
套用一句话,“读书破万卷,下笔如有神”,闭门造车不可取。
另“反射脑”一词在《阿里工程师的自我修养》的 “如何在工作中快速成长? 致工程师的 10 个简单技巧”一文中出现,里面详细探讨了“认知升级”的方法,感触颇多,感兴趣的同学可以看看。
最后在此先立个小小的flag,希望在今年结束之前,可以看完TensorFlow(v1.2)core部分的源码,进行总结学习。
计划
另每天都做的俯卧撑还在坚持,已坚持21天,累计806个。
3月28日:
俯卧撑,45个。 (累计515个)
已坚持 15 天
3月29日:
俯卧撑,46个。 (累计561个)
已坚持 16 天
3月30日:
俯卧撑,47个。 (累计608个)
已坚持 17 天
3月31日:
俯卧撑,48个。 (累计656个)
已坚持 18 天
4月1日:
俯卧撑,49个。 (累计705个)
已坚持 19 天
4月2日:
俯卧撑,50个。 (累计755个)
已坚持 20 天
4月3日:
俯卧撑,51个。 (累计806个)
已坚持 21 天