两个月的时间好像不算短,但实习的九周就非常的短了。
最重要的体验在于,我居然在工作中是快乐的。
其实一开始要总结的时候,我感觉自己没什么可写的进步,但是认真想想,每天都有进步吧,技术方面也接触了很多新的东西,学习了react,redux,TypeScript,Jest,使用了ADTN,lodash,TSlint,git基本操作,最后这一周还接触了自动化测试。从一开始只会git clone到现在基本理解git原理,能进行基本的git操作。从一开始用两周写todolist,用两周写一个详情页,到后来慢慢也能自己去补充一点小功能,修一下小bug,虽然时间是别人的好几倍,也经常需要张哥的帮助,但总归是有点进步的。
开卡
这个环节刚开始我做的很不好,一是,开卡的时候,没有提前去看过卡,没有任何准备地去开卡。二是BA讲需求的时候完全顺着她的思路去想了,没有自己想这里该怎么做,会发生什么问题的思考,导致做到一半的时候才发现问题,这个时候再去找BA就已经做了很多无用功了。
这一系列问题应该都是,没有准备引发的。讲道理应该自己先看看卡,有了理解才去开卡,这样BA讲的时候就会发现自己和BA理解有冲突的地方,也能完全明白BA的意思。开完卡再梳理,最后才是开始写代码吧。我恰好走了个反流程。
开发
这个环节我很多时间在和张哥pair,是我收获非常大的一个环节吧,常常被引导着找到答案。这个过程中知道了拿到一个需求应该从代码的哪个部位入手,怎么去找这个功能对应的代码所在,怎么去debug,可能这对于大多数人来说不是问题,但对于两个月前的我来说真的是,不知如何下手。
还有好多小的习惯也在pair的过程中有了改善,比如多用键盘少用鼠标,熟悉快捷键,熟悉命令行工具,甚至如何去搜索问题,如何去阅读文档。真的是很多非常实用的东西,也许它们不关乎技术,但是真的让开发体验,学习体验都提升了很多。
最重要的确实也不是学会了什么框架什么函数,而是学习的方法,比如怎么快速地去看懂这一部分代码是在干嘛,而不是知道它每一行是如何实现的,这是我感受到自己有进步的地方。
不过这部分我有很多做的不好的地方,脱离自学状态随时可以问人,导致我似乎有点兴奋。而经常问的张哥又是一个非常耐心的人,熟点以后,有几次很简单的东西,自己百度一下,思考一下就可以解决的问题,我却直接拿去问了张哥,这种情况真的既浪费了别人的时间,也不会有很深刻的理解。
我应该属于问的比较多的人,其中原因,一方面我怕自己遇到的是特别简单的问题,只是把自己绕晕了走不出来,就想立马问一下。而另一方面,我又怕自己遇到的问题很难,超出了自己的能力范围,不如先问一下。其实归根结底,是代码写的太少的原因,自己没办法对自己的问题现状作出一个有效的评估。
以及刚才提到的超出自己能力范围这个说法,是我另一个毛病,容易放弃,遇到问题的时候有畏难情绪,好像总是觉得,自己没有做过,就不可能会做。后来也渐渐的发现,其实大家都在做自己没有做过的事情,而遇到困难就真的是通过搜索,尝试,一点点的解决的。这真是自己非常欠缺的一个能力。
另外在开发过程中,我没有掌握好的一个平衡就是,写代码和理解代码。因为项目比较急的原因,有点迫切地想帮上大家一点忙,所以在代码能用的时候,就迫不及待的开新卡,忘了磨刀不误砍柴工这样简单的道理。当然这和学习习惯也有一定关系,我直接去看文档的时候大概率是看不太懂的,而多写一点代码,有了自己对这个方法的感觉以后,再去看文档理解就会容易很多。但是这个平衡我掌握的不太好,急功近利了。
code review
每次code review的时候就被越越的代码量惊呆,code review真的是一个很棒的环节,一是通过看大家的代码会更熟悉项目,二是也能学到一些方法,更重要的是自己的代码被指出问题,可以知道自己在什么地方理解不对,什么地方不够规范。这大概类似于刷错题的方式来进行提高。
结卡
第一次结卡的时候拿了快十张便签的问题,问题主要分布在,我有时候会忽略掉造测试数据这个过程,UI上的问题总是得过且过,还有就是自己没有完完整整过AC就去结卡,对于一些自己有信心的功能就不再去过,结果结卡的时候果然就出问题了。
总之,可能是因为我是一个话比较多的人,TW的氛围真的很让我快乐,没有固定的工位,没有工位之间的隔板,上班时间说话不需要刻意压低声音,办公室随时都能听见各种各样的讨论声,大家交流能靠嘴就不靠键盘。还有每周志恒的小讲堂,从tdd讲到重构,从重构讲到自律,其实真的是很受益的,尤其是自律的小讲堂,让我第一次觉得,追求卓越也许不会很累,反而放纵才会让自己疲累。希望从tw实习结束,我也能继续走在追求卓越的道路上。
希望来年还能有缘再见。