与此同时,位于南京的趋势中国研发中心在招聘中也遇到了挑战。从上海开 往南京的火车上,趋势的CTO陈怡芬同意南京研发中心的研发人员数目扩充一倍,面对这样一个机遇,研发中心的负责人陆剑峰既兴奋又忐忑不安,因为要短时间 内招到如此多优秀的人才,面临的压力也不小。为此,他还专门从总部请来了几位研发高级副总裁和全球产品部用户界面总监Amy Ma来鼓气和传授经验。
对此,很多人耿耿于怀:中国如此多的开发人员,难道就选不出区区几十人吗?
当然,这些国际性的大公司对人员的挑剔是重要的因素,因为他们都遵循“宁缺毋滥”的原则。然而,当我们了解了这些企业的需求之后,你会发现,其实很多人 并不是栽在了网上四处流传的号称可以考察智商的“微软面试题”上,而是很多显而易见的基础知识让他们被拒之门外。静下心来,仔细的分析一下,或许可以为自 己的明天找到更好的弥补之路。
基础知识要扎实,会编程和懂编程差距甚远
衡量一下,你能把用C#编程和懂C#编程区分开吗?
事实上,能写C代码和真正写一段C程序有相当的差别,这并不是说程序员所写的代码有错误或者不能运行,而是程序整体的架构就不对。软件设计工程师应该知道他写了某段程序对缓存的需求有多高,对CPU和GPU要求是怎样,这些都应该是在他写程序的时候大脑中非常清晰的。如果对整个系统的了解不透彻,就无法回答面试中的很多问题。张宏江说:“很多人只是将语言纯粹当作一个工具来使用,而产品开发所需要的素质远不止于此。”
现在的高校在讲授计算机课程的时候太分散,没有按照系统的知识传递给学生,因此教学中需要把这些课程结合在一起,学计算机也应该像学数学一样,一环扣一 环,把整个体系搞清楚,把软件开发当作一门学问,而不是当作一种工具来学。当然,用培养科学家的方法培养工程师也会有问题,有些人会朝做虚的方向发展,他 会蔑视内存管理这些东西。张宏江说:“我在微软看到很多大师,这些人厉害之处在于他们对系统的理解,所以写出的程序才能这么漂亮。”所以,张宏江建议现在的学生应当系统地学习计算机课程,并通过理解将各种内容融会贯通起来,甚至可以通过项目的形式来实践书本中的零散知识。
加强软件工程的思想
提起软件工程,不同的人大脑中会有不同的想法。而对于研发中心这种以产品开发为中心的机构来说,软件工程并不只是CMM类的学术词汇和质量体系认证,而 是软件工程化的开发流程。也就是说,软件设计人员需要了解如何把软件需求变成一个软件功能,如何把功能再分解成模块,以及评估每个模块的开发所需要的时间 和优先级。他需要很清楚,哪些功能是必需的——没有这个功能就无法称之为一个产品;而哪些特性是比较吸引用户的;哪些在时间紧迫的情况下是必须要放弃的。
趋势科技工程与信息部全球执行副总裁梁国屏表示,在全球的研发体系中有专门的管理流程。一个想法要首先变成一份市场需求文档,要评估整个市场份额和趋势 所占的比例,产品规格说明书也要确定,项目经理做项目计划,产品设计计划,测试计划,产品开发完成后还要做评估。而在这整个过程中,编码时间只是占据项目 时间的1/6左右。
张宏江说:“如今的产品开发都是很大的工程,不可能是一个人对整个程序了如指掌,所以应该以软件工程的理念去做。 每个软件设计的人员不但知道自己需要做什么,还需要了解自己在整个软件开发流程中起着什么作用,如何与其他同事配合工作,共同解决问题。适时的把“架构师 ”的概念融入整个流程。”
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/