最近公司在招聘.NET开发人员,面试了一些人,有一些感悟,分享出来,以供参考。
面试的人员中,有一些是三五年的开发人员;也有几个是10年左右的技术负责人,不但自己架构过项目,还有带领导过团队。和他们交流,总体给我的感觉是,只要能实现功能,跑起来就万事大吉了,当然,我同意这种想法,能满足需求的程序就是好程序。这是站在用户的角度,甚至公司的角度看,有交付,有收款,很好。但站在开发人员角度是不够的,比如在面试时就不够了,当然面试只是面子而已,里子是设计一个高质量,低耦合的应用,或应用组就不行了,即使设计出来,后期的维护,扩展,升级,都是高成本。
可能你会说我的要求太高,那就看看具体的问题吧,别的不说,只说C#语言部分,因为这是基础的基础。
C#的class中有哪些成员?
大部分回答是方法,属性,常量,变量(字段)
C# class中成员访问修饰符都有哪些?
大部分回答是public,private,protected,还有回签static的
接口和抽象类的区别
回答五花八门,有回答只使用接口,不使用抽象类;有回答都一样,都不能实例化;还有更优秀的回答,能实现功能就行了,问这些理论干什么?
其实正确答案搜索一大把。这里的意思并不是大家按标准的答案死记硬背下来,只是觉得上面的三个问题是作为一个真正的开发人员应该掌握的,它们就像你工具箱里的工具,如果你只有很少的工具,或很原始的工具,那么你创造出来的产品也好不到那里去,甚至可能出现指鹿为马的现象。
其实在前10几年互联网技术快速发展的时代,各大厂商对开发人员需求量之旺盛来说,给大家的错觉可能是,开发人员知道分布式,微服务,高并发,高可用等一些高大上的技术就够了,我并不是说这些东西没必要学,但我觉得对于一个开发人员来说,特别是面向对像语言的开发人员来说,首先应该把语言基础掌握(不是百度,谷歌),把oop掌握,让最基本的代码有灵魂了,再去踏踏实实学习更高阶的技术。
我并不是高手,只是觉得既然当了程序员,应该把语言基础关过了。再多说一句,如果只百度,只谷歌,新人的成本更低,三十岁就该忧虑了。
一家之言,仅供参考!!!