Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4078401
  • 博文数量: 251
  • 博客积分: 11197
  • 博客等级: 上将
  • 技术积分: 6862
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-05 14:41
个人简介

@HUST张友东 work@taobao zyd_com@126.com

文章分类

全部博文(251)

文章存档

2014年(10)

2013年(20)

2012年(22)

2011年(74)

2010年(98)

2009年(27)

分类: IT职场

2013-01-03 13:35:58

2012年,结束了长达19年的校园生活长跑,走上了工作岗位,开始人生一个新的起点。我的工作其实跟在实验室差不多,依然是分布式存储领域,公司简单的同事关系就跟在学校同学一般纯真,每天上班依旧是一辆破自行车,甚至连距离都跟宿舍去实验室差不多,还有在学校的同学雷雷、小鳄、宝仔在同一个组工作。
 
新人学习
入职后加入TFS(Taobao File System)项目组,这个项目已经做了好几年了,已经在公司内部广泛使用了,主要作为一个内部公用的存储平台,在工作上没有太多新的东西,主要围绕群性能优化、数据服务化、节省成本、简化运维等几个主题开展工作。刚入职的一段时间,每天阅读代码、并写一些总结文档,最开始主要看客户端的代码,越看内容越多,然后不断的遇到问题、解决问题、总结问题,如此往复;特别感谢同事道道先森、灰太郎、宅小明、樱桃小玉子、杨老板这大半年来的帮助。
新人学习方面,个人觉得没什么捷径,我的经验就是多看、多实践、多讨论、多请教,多总结,希望对刚入职场的同行有所帮助。
  • 多看文档,多看代码,熟悉整个项目。
  • 看代码、文档遇到问题,可以多实践加以验证,不能只是纸上谈兵。
  • 新人之间多讨论,多个人的力量加在一起,学习起来也快。
  • 多请教,公司为每个人安排一个师兄,有问题应该主动向师兄请教,但前提是自己已经尽力去解决。
  • 多总结,对遇到的问题、学到的东西勤于总结,尽量不犯相同的错误。

不要轻视“简单”的事
入职不久做了一个数据迁移的任务,背景是我们做了自定义文件名服务,有一些应用在之前由于业务需要自己做了自定义文件名到TFS文件名的映射,现在“忽悠”到这些应用使用我们的服务,然后我们需要协助这些应用把数据迁移到新的服务上,以便他们升级。初步理解了下需求,觉得这个事情很简单,就是从源集群读数据、然后写到目标集群,调用客户端的接口写个小工具即可实现,测试完工具,就开始迁移数据... 按照我当时的想象,接下来就是泡杯咖啡,坐等任务完成,但实际上...
  • 因为要迁移的数据很多,一个进程要超过一周的时间完成,但因为数据之间是独立无关联的,迁移完全可以并行,于是把要迁移的目标切成多份,分给多个进程执行
  • 迁移数据的过程中日志打的很不友好,迁移结束后,费了很大的力气才把成功、失败的对象从日志里过滤出来(应用自定义文件名使用了中文、空格等,导致awk处理的时候各种不方便),而如果日志打印的清晰明了些,或是直接将结果打印到文件,这些分析工作都是完全没有必要的。
  • ... 还有其他各种各样的问题,返工多次才把这个事情搞完。

对线上数据操作保持敬畏
来公司做的第一个开发相关的工作是优化Dataserver(DS)的启动过程,但由于代码写得有bug,又在没有经过测试的情况下“被”上线了(原因比较复杂,不过也跟设计有关)。这个bug导致DS在运行过程中把一些数据块删掉,当时一堆的应用访问有问题,一身冷汗啊,幸好集群有多机房备份,没有丢数据。经过这件事,发现数据其实很“脆弱”,必须对线上操作/数据保持敬畏之心,如果要执行线上操作,必须想好可能出现的问题及解决方案,想好失败如何回滚,打有准备的仗。
 
理想主义要有“度”
我是个理想主义者,很多事情都被我想得很理想。我想只要认真的写好每一行代码,就能一次性就把事情做好,不用一次又一次的修改,结果导致大部分的时间我在琢磨怎么写出好的代码,甚至都忘了自己实际要做什么;在估算工作进度时,一个任务一周完成到大概一半,那2周就应该能够完成,而实际上,行百里者半九十,进度安排和估算是很有学问的;当开始做某件事时,老是想立马把事情做完,其间完全不关注别的,这样做不仅效率不高而且会自己搞的很累。
 
而实际上,理想很丰满,现实很骨感。在互联网公司项目的开发过程中,初期设计很重要,但过度设计就很可能起到副作用,在开发的过程中不断迭代、不断根据效果优化可能是个更好的方案;在估算项目进度时,要适当的考虑项目性质(越来越难、或是越来越容易),考虑项目中间可能被其他事情打断,并适当的留有buffer,不至于到最后太赶。
 
加强团队合作
我比较喜欢小团队(pizza team,10人及以下),我觉得即使在大的团队,经常打交道的也只是那几个人。在团队里通常每个人有不同的分工,但由于同属一个项目,相互之间肯定也会有很多交集,处理这些在交集中的事情即所谓的团队合作。如果团队成员都坐在一块,最简单的合作方式就是直接吼一嗓子,再麻烦点的就是探个头到隔壁工位或是转个椅子;如果不在一块,就要借助im、邮箱、电话等工具了,多多少少会有效麻烦。在我所在的团队,成员分散在北京、杭州,上面的几种沟通方式都有,但我觉得最简单有效的方式就是当面沟通,有什么问题,大家坐到一块沟通清楚,做到心里有数,不要稀里糊涂做事,吃力不讨好。另一方面,当同事找你有事情时,态度一定要好,即使自己很忙也要先说清楚,与人方便、自己方便,同事间相互支持、合作才能更好的解决问题。
 
除了完成份内的工作,团队内部的分享也是合作的一种形式,通过分享,能加深自己对某个内容的理解,同时让所有的听众也都有所收获,曾经有一段时间,我们每1-2周会选一个主题进行分享、讨论,但最近几个月都没有很好的坚持下来,今年一定要把内部分享这个事情坚持下来,大家共同进步。
 
个人学习
去年大部分的时间都投入在公司的项目上,花在业余学习上的时间相比在学习少了很多,接触的新东西明显也少了很多,主要以新浪微博、google reader为入口了解一些新技术,今年要投入更多的时间,关注业界技术,并花一些时间持续研究一些开源项目;对于平时工作中的问题,基本上能坚持做总结,主要使用有道云笔记,工作中的文档则都存储在百度网盘,基本告别了硬盘,借助这些效率类工具,能有效的提高工作效率;去年依旧坚持写博客,但数量比在学校时少了很多,博客内容主要跟项目相关,尽量做到内容充实,今年在写博客时,除了一些问题总结类的博文,考虑写一些个人理解、感悟方面的博文。
 
 
2012年已经过去,世界末日没有来临;2013年要更加努力,做一个靠谱的工程师,祝我好运,加油!
阅读(4914) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~