神刀安全网

数据挖掘工程师的第二个月(附带团队风格分享)

入职的第一月,我在实践中学到了SVN、Linux、Hadoop的基础知识,以及怎么做对比实验(数据挖掘工程师的第一个月(附带干货分享))。

入职的第二个月,我接手师兄的两个小项目,并对这两个半成品进行加工。所谓半成品,就是师兄把功能实现了,但是结果与预期不符合,我需要找出问题所在,解决问题,验证结果。在实际项目中,验证结果所花费的时间是最长的,解决问题所花时间反而是最少的。

发现问题,分析原因

分析case,即个例。从与预期不符合的结果中挑选一个case,追踪它发生变化的位置,建议采用二分查找。找到位置之后,需要分析原因。有时可以从代码中立马想到原因,有时需要先猜一个原因,然后去验证,有时需要和师兄讨论。

解决问题

找到原因后,修改相关代码即可。需要注意的地方是,改动代码最好量少而集中,尽量不要修改全局变量。我们不但要解决问题,还要做得优雅,方便以后的代码维护工作。这里推荐两本书,《算法导论》和《代码大全》。前者有助于我们想到解决方案,后者有助于我们执行解决方案。

验证结果

首先,重跑数据(可以只跑少量数据),检查之前挑中的case是否符合预期。如果符合预期,就进入下一步验证工作,否则回退到第一步,重新分析原因。接着,做对比实验,挑选一批case进行分析,检查它们的结果是否符合预期。如果符合预期,还需要经过代码审核,人工评估,上线评估等一系列评估测试后才可能上线。

——————————团队风格分享—————————

我们团队是一个充满朝气的团队,有十多个成员,年龄集中分布在25岁到35之间,大部分人性子偏活泼,喜欢探究新事物。经理对我们新人说,我们是核心(部门)中的核心(小组),你们是优秀(学校)中的优秀(人才),所以你们来到了我们组。技术导师对我说:我们都是艺术家。我想到《计算机程序设计艺术》中的一句话,『计算机程序设计应该是一门艺术,一个算法应该像一段音乐,而一个好的程序应该如一部文学作品一般。』当然,技术导师所说的艺术不仅仅是程序设计,更是丰富的想象力和创造力。

一对一的技术导师

我们每个新人都有自己的技术导师,他会给你安排工作任务,帮助你更快更好地完成任务,并经常check你的工作进度。技术导师和你的交流非常频繁,几乎每天都有两次或两次以上的交流。你可以向他汇报你的进度,你遇到的困难,你想到的解决方案。技术导师最关心的是你要多久完成这项任务,通过这段时间的工作你能够下什么样的结论。

高效会议

我们团队每周开一次组会,大约1个小时的时间,每个人都需要进行工作汇报。汇报简洁明了,主要讲你这周做了哪几个项目,每个项目的进展怎么样,你遇到了什么困难,你的下周计划是什么。会上,大家会针对你的项目提一些问题,并给你提几条意见。不是每个人在每次会议上都有收获,但每次会议上都有人有收获。我上个星期只讲了几分钟,就暴露了问题。我原以为自己在正道上飞驰,会上经高手指点,才发现自己完全跑偏了。这是很危险的,因为项目出了问题但我自己却没有意识到。

自动化工具

我们习惯用脚本去执行一些重复性的工作,比如获取指定case的相关信息。常用脚本语言包括python和shell。磨刀不误砍柴工,先花点时间把自动化工具写好,以后就能事半功倍了。

项目责任到人

每个项目都有负责人,出了问题就找相关负责人。我接的两个项目都是半成品,也就意味着大多数代码都不是我写的。别人遇到与这两个项目相关的问题就来找我,起初我总是一问三不知,还把责任推卸给之前负责这个项目师兄,说代码是那个师兄写的,我也不清楚。技术导师一听我的回答,大怒,狠狠地批评了我两回,说项目划给你了,以后出了任何问题都归你管,你要对自己的项目有点使命感,把项目弄明白了,不懂的地方就问……此后,我对这两个项目非常上心,再也不说代码是之前师兄写的之类的混账话了。

饭后散步

每天吃完晚饭,我们都会去公司后面的花园绕一大圈。饭后散步绝对是一举多得的好事。第一,有助于消化。像我们一天到晚坐工位的人,难得出去走走,活动一下筋骨。第二,有助于放松心情。程序员(媛)工作压力大,是抑郁症的高发人群。花园环境不错,让人心情舒畅。第三,有助于团队成员的沟通交流。一路上,有的师兄在相互调侃,有的师兄在探讨新闻,有的师兄在讨论项目中的问题……我常常和另一个新人聊电视剧、电影之类的话题。

转载本站任何文章请注明:转载至神刀安全网,谢谢神刀安全网 » 数据挖掘工程师的第二个月(附带团队风格分享)

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址