最近几个月一直在忙忙碌碌的学习,很多时候甚至连走路吃饭的时间都在想着某些问题,虽然一直告诉自己,不要一直埋头前进,需要沉淀!需要写点东西来作为记录!
可惜一直还是在忙忙碌碌着,实在抽不出空来写点什么,每次好不容易空出点时间来让自己沉淀、消化前段学的东西,可惜每次沉淀的时间,顶多也就回顾回顾以前看的东西,做做笔记、新感悟。压根抽不出时间整理。因此,笔记做了一堆,东西看了一堆,但是一直没有整理成稿,一直没有什么能发的东西。
因为马上要转化面试了,今天需要交一份实习期间自我评价,难得静下心来细细写个小文档。(其实还是很赶很赶,TL一直在催我写好了没有。)也算是对自己这个阶段的一个回顾吧。将文档贴出来给自己做个纪念吧。
一. 个人信息:
二. 实习目标:
1. 学习企业中是如何保证团队协作开发以及如何保证项目质量:
如何完成:
a.学习了公司的Maven+SVN的项目构建方式,并且不甘心于仅仅简单使用,还在业余花了部分时间学习了其实现原理以及于其他方式的优劣性。
b.掌握了测试驱动开发的理念,理解了可以使用充足的测试来保障已有代码质量的,保证后续修改不会对已有功能造成冲击,学习了单元测试的各种手段,受益匪浅。
2. 很好的完成本职工作,并且在工作中,尽量学习前人的优秀设计与经验
如何完成:
a. 已经开始在君喻师兄的帮助下,进行一些对TDDL的日常支持工作。
b. 能在师兄的指导下,独立的修复一些TDDL意见暴露的bugs。
c. 为了深入的理解TDDL,一直在反复学习TDDL的源码,从源码中能学到很多前人的一些设计经验。
3. 从淘宝优秀的工程师身上学习如何做一名优秀的IT工程师:
如何完成:
主要通过理解多与优秀的工程师沟通、聆听他们的一些经验、教训,并且学习优秀工程师们对技术的一些关注点,找到自己与他们之间的差距,找准自己的定位,让自己充满动力,努力前进。
a. 参加技术大学开设的课程
b. 参加部门间师兄们的分享
4. 努力学习分布式计算于分布式存储基础知识:
如何完成:
a. 找相关文档,利用下班后的时间、周末的时间努力学习一些基础理论。
b. 参加一些相关的培训、交流
三.实习期间表现出来的优势:
1. 快速上手能力:
在实习期间,能够熟悉公司的项目构建方式、代码管理方式,为了fix bugs能较快的掌握Antlr领域编程,能较快的理解TDDL的设计已经底层实现原理。
2. 对技术的热爱:
出于对技术的热爱,我并没有满足于只是简单的完成本职工作,而是抓住一切可以学习的机会,努力学习各种技术其底层的一些原理,并且在自己感兴趣的技术上努力前进。
事例A:
因为TDDL分布式数据中间层的特性,与数据库打交道比较多。自己并不甘心只是简单的使用数据库,而是花了较多时间,学习了关系型数据库的底层存储模型、算法实现。并且学习了基于存储模型的而可以使用的一些schema优化方式。好奇与RDBMS是如何通过高语义层的SQL来实现对数据的存取,又花了较多时间,浅薄的学习了整个SQL执行的流程,理解了SQL解析的原理于实现,明白了在RDBMS内部查询优化的一些相关需求与理论实现。之后,在沈洵师兄的指引下,又学习了诸如RDBMS的随机读问题、大数据量需要分布式存储,此时关系运算面临的性能问题等等RDBMS的困境。
事例B:
一直以来,都对分布式充满了强烈的兴趣,在实习期间,每天下班后,自己每天都会花上几个小时坚持学习一些分布式的基础知识。在这个过程当中,对NOSQL是SQL的一个特性子集有了一点点浅薄的理解;努力学习了分布式事务的一些基础特性,明白了其与本地事务的差异所在;体会了传说中的的CAP理论;学习了以前2pc协议;看过了传说中的paxos算法;并且明白了一些分布式存储的基本原则,以及其形成原因。
当然,很重要的一点是,对于分布式,自己的实践经验几乎为零,而在这个过程当中,通过在沈洵师兄以及技术大学一些大牛们的耳濡目染,真是另自己获益良多,在此表示感谢(貌似有点跑题?)。
3. 追求卓越的性格品质
我的性格中有着对很多事情近似强迫症似的完美主义追求。
举个简单的例子:
就如同软件是一个不断修补不断完善的过程一样,我自己对TDDL的理解也同样是这样一个过程。在学习过程当中,我习惯记下自己的一些心得、体会。
第一遍对TDDL代码的熟悉,虽然一直竭力努力理解TDDL的设计与实现,但是可惜,读的很痛苦,理解的也很不好。写出来的理解文档也成了心理的一个疙瘩。但是因为工作时间的原因,也不能一直纠结在那个问题当中,
目前TDDL新merge的版本中,需要跑通所有测试来保证已有的功能没有受到影响,因为一批以前使用的MySql测试机器的问题,许多测试以及跑步起来了,本来只需要简单的修改一些测试、修改一些配置,使测试尽量跑通就好了。但是性格中的一些因素使然,我还是会去尽量看测试对应的流程、以及实现。这个过程也就成了我第三遍学习TDDL代码的过程,这次使我开始能够细细的读通代码,品味其中设计的优劣之处,并且能够根据代码写出一份对应的自己还算满意的文档,对TDDL也就有了一种豁然开朗的感觉。
四. 还需要提高的地方:
企业是一个讲究 “产出”的地方,虽然在这个实习过程中,自己的眼界得到了极大的提高,自身也学习到了许多东西,得到了很多提高,但是一直都在努力内化,而没有于企业要求相关的“产出”。
解决方案:希望以后自己理解的透彻后,能有机会和大家分享自己的学习。