在前两节课中, 老师给大家描绘了关于软件工程和创新的理论和美景。 那么在实践中, 我们的软件工程师是怎么创新的? 我们请两位清华的校友和大家聊聊他们自己做的项目, 也和大家探讨一下软件工程师的工作, 生活和职业发展。
分享题目1: Sora Project - turn cutting edge research into great product
SORA 被业内专家称为最近几年在无线领域最重要的论文之一, 论文中提出的思想是怎么变为现实的呢?
分享题目2: How Engkoo Innovates
做中英文词典/翻译的应用软件,这不是老一套么? 还能创新么? 请看微软亚洲研究院的回答:
课程的详情在这里。
============================
这次经验分享是由我们在一线工作的工程师主讲。
很多人对微软研究院的 RSDE (Research Software Design Engineer) 这一职位不了解, 我从这本书里抄下来几段话:
Q:微软及很多其他软件公司都有不少研发职位,名称不尽相同,而且还是缩写,能不能讲解一下?
A:不少同学对微软公司的各种研发职位(Discipline)并不太了解,我们在面试进行到一半的时候,经常发现一个应聘者其实更适合做其他类型的工作。当然这时我们可以调换面试的方向,但是对应聘者来说总不是一件好事。我刚好在BBS上看到了一篇文章,这篇文章从个人的角度出发,非正式地讲了R&D各个方向的特点,虽然并非完全正确,介绍也不一定全面,但是我们不妨看看。
aR:Associate Researcher,副研究员,主要在“R&D”的“R”这一端,工作是读论文,提想法,被否决后再提想法(如此反复N次),赶在截止时间之前提交论文。AR的想法得到初步验证之后,还要跟其他部门推销自己的想法,争取把想法变成产品。AR的乐趣是能在一个领域中深入研究,发表论文,申请专利,每个专利申请(无论是否批准)都能让自己得一块黑色立方体石头(如图)。好多人的桌面上堆了不少石头,好像他们没什么苦恼。
AR有时做的事情和RSDE差不多。AR以后会成长为 Researcher(研究员)、高级研究员,杰出科学家, 等等。总之,最后就成了大家小时候特别梦想做的“科学家”。
图1 申请专利得到的石头
Dev:正式的名称叫SDE(Software Development Engineer),是在“R&D”的“D”这一端。他们在一个产品团队中,按照严格的流程开发产品。MS的一个产品发布之后,所有成员会得到一小块铁皮(学名叫“Ship-it Award”,如图2所示),上面写着产品的名字和发布日期。资深的Dev会收集到不少,他们会认真地把这些小铁皮整齐地贴起来,摆在办公桌最高的位置上。Dev的乐不少,这里就不列举了。但是苦也有不少,比如产品的周期有时非常长,过程定义得非常完备(有时不免觉得太完备了);比如要维护老版本;比如要用比较成熟的技术,而不是用最时髦的东西来开发产品。另外,Dev要负责一个或几个模块,这些模块不一定和最终用户打交道,未必是整个产品的核心模块。做一个好的Dev要生活在代码中,对代码和平台的各种细节要非常熟悉,掌握非常底层的技术,有些人以此为乐,有些人则未必。Dev的职业发展道路很多,如果只想钻研技术,不乐意做很多管理工作,Dev可以成为非常高级的工程师,直到杰出工程师(Distinguished Engineer)。当然,Dev也可以成长为开发主管(Dev Lead)、开发总经理(Dev Manager),等等。
图2 Dev得到的小铁片Ship-it