程序虽然很难写,却很美妙。要想把程序写好,需要学好一定的基础知识,包括编程语言、数据结构和算法。程序写得好的人通常都有缜密的逻辑思维能力和良好的数理基础,而且熟悉编程环境和编程工具。古人说“见文如见人”,我觉得程序同样也能反映出一个人的功力和风格,好的程序读来非常赏心悦目。我以前常出的一道面试题是“展示一段自己觉得写过的最好的程序”。
编程很艰苦,但是很有趣。从游戏中遇到的编程问题谈起,介绍了数字和字符串中的很多技巧,探索了数据结构的窍门,还发掘了数学游戏的乐趣。 找到编程的快乐,欣赏到编程之美。人类的生活因为优秀的程序员和美妙的程序而变得更加美好。
我们恰恰不太需要没什么想法的人,这也许和企业文化有一些关系。在中国一些企业的文化中,往往是领导安排你做什么,你就做什么。在微软,我们认为每个人都是独立的个体,我们希望雇员能够“在其位,谋其事”,同时能考虑到自己三五年后的发展,并且能自己制定计划去实现事业目标,这是公司的文化。
很多人说,面试是一个不公平的游戏,因为信息不对称。比如:面试者知道问题的答案,而应聘者不知道,面试者知道今年公司要招几个人,而应聘者不知道。 但是,应聘者手头有几个Offer,面试者也不知道。应聘者是否喜欢公司提供的职位和薪酬,面试者也不知道。一方面,应聘者在“求”职,另一方面,面试者也在“求”才。面试也是一个增进双方互相了解的有效途径。
对于在校学生,觉得自己写的程序,涂涂改改,大概逻辑能通过就行了,面试者指出的问题能答出来一些就行了。但是对于将来的公司员工,我们要考察:程序设计的思路如何?编程风格如何?细节是否考虑到?程序是否有内存泄露?是否采用了最优算法?是否能对程序进行修改以满足不断变化的需求?是否能举一反三? 除了专业技巧,我们在面试中还会考察应聘者的职业技巧(professional skills,也有人称为 soft skills)。 这个人的交流能力、合作能力如何,对自己的评价和期望是什么?在有压力的情况下,能否发挥水平?是否追求卓越?这些“非技术”的因素相当重要。
1. 知己知彼。知己,就是要了解自己的能力、兴趣、职业发展方向;知彼,就是要了解公司的文化、战略方向和择才标准。
2. 笔试就是基础,用扎实的理解和考虑完备的解答来征服阅卷者。
3. 面试就是探讨,用缜密的代码和严密的分析赢得未来同事的尊重。思考问题的方法比结果重要,面试者会更加在乎你解决问题的思考过程。
4. 你的工作就是最好的面试,不要把时间花在寻找捷径和背诵答案上,要通过实际的工作和产品来体现自己的水平。
千里之行,始于足下,要想在入职竞争中脱颖而出,自己得先下苦功夫,在平时就要用职业的标准来要求自己。他相信,只要自己付出了足够的努力,就会有收获