马云曾说:辞职的原因无非两种,心委屈了或者薪资待遇上不去,其实二者之间总是并发共存的,笔者近些时间也是因为如此比较郁闷,投了几家简历,于是就有了下面一段比较耐人回味的面试谈话,借此谈谈我对。net,技术宅的一些理解。

  首先,扯一段废话,程序员抱怨最多的话题就是,30岁前拿命换钱,30岁之后是拿钱换命,抱怨加班的各种辛苦,这个观点我想说两句,如果你是外包公司,兄弟的确你很可怜,公司的性质在那,时间决定金钱啊,如果你是游戏公司,或者做移动开发,每天都要无休止的改漏洞,做更新,但你拿着IT界技术男的高端薪资,又有什么好说的呢,付出等于收获,至于悲剧的应届生,实习生么,那点苦不算什么的。如果做了三年程序以上,您还是不能游刃有余,每天抽出三分之一的时间休息,学点自己喜欢的玩意,指引自己的师弟师妹们,那么真的该有点不好意思抱怨了。

  嗯,言归正传。还是谈谈面试吧,说下当时的情景,笔者工作将近三年,应聘职位为高级软件工程师,说白了也就是高级程序员,招聘要求是工作五年,五年以上开发经验。面试官是一位40多岁的leader,开场还是做笔试题,这种面试题我相信所有的,net开发者都做过,无非是一些类成员啊,ado,构造函数的执行顺序,再加递归,排序这种千篇一律的基础理论知识,做的很郁闷。60分钟的题目,只用了十几分钟就匆匆的交了答卷。以下是我们的面试谈话。

  hr开场白:你觉得你面试题做的怎么样?

  答曰:主要都是一些理论基础知识,很多东西我都用自己的心得去诠释了一下。

  面试官不置可否。

  然后又问了问我的工作经历,问我为什么当初要来上海,我比较纳闷,为什么基本所有的面试官都会问你这个无聊的的问题,我们都会回答:想学习更先进的知识,迎接挑战,得到更好的发展机会,因为我们热衷于软件开发。其实事实无非是寻求人生价值,拥有美好的前途,多赚点钱娶妻生子,报孝父母么。

  又问:你离职的原因是什么?

  答曰:其实我们都知道公司培养一个人才不容易,都希望寻找一个踏踏实实稳定的员工,但是面临自己的职业规划最终要做一个选择,不过对我来说一个成功者应该找准自己的方向,离职的时候应该选择在自己成功的时候,如果你是迫于公司的压力,面临挑战退缩,连本职工作都做不好,又有什么资格谈理想追求,谈人生规划?现在的公司规模比较小,想找一家大点的公司去学习新东西,发展人生规划,之前在小点的公司就是想多锻炼自己,起点低,但是步子大,一个好的teamleader我觉得是从一个好的技术做起。--以上都是自身体会

  hr说:你的意思也就是说,你觉得你功成名就了,就离开公司了,那么你觉得你的net怎么样,到了哪种层次?

  我愕然:也不算是功成名就吧,我就是这么想的而已,学的怎么样我不敢说,学无止境嘛,不过还可以吧。

  hr:那么你谈谈你对。net的认识吧?

  。。:不知道从一个技术角度该怎么出发,我说。net最大的核心思想其实就是面向对象,我觉得架构思想都是围绕面向对象思想而言,说实话面向对象真的入门理解花了笔者2年的时间,可能会有人笑话我,不过我敢说这四个字真正能理解精髓的人真心不多,为什么说呢,下面会提到我自己的理解。

  hr很严肃的说:就这么点么?你说说你平时遇到的最大的技术难题。

  我当时挺受打击的,确实愚钝,资质不够,我当时脑子一想,技术难题其实做多的出现就是合理的架构设计与算法的实现上:答曰,其实技术难题并不是什么大的问题,可以请教资深人士,或者自己查阅资料挑战一下自我,程序员之间最大的问题是沟通,一个好的架构师往往决定一个项目90%的成败,然后team之间又能拥有良好的沟通,因遭一个和谐的气氛,往往就能事半功倍。

  hr说:不是这样的,很多项目都是架构打好,做到一半时候要推翻出新,在IT界是很常见的,那么你遇到像你所说的沟通问题,你会怎么解决?

  笔者很无语,无论说什么都遭到否定,这个问题很无奈,说:中国人的沟通普遍存在问题,(心想,我也没有什么好的解决方案,这个问题我都能解决,我还坐这?),首先需要一个好的teamleader组织大家,定义不错的架构体系,每天开会的时候各抒己见拿到最佳解决方案,然后实施工作。

   又曰:程序员最重要的是有自己的思想,拿出自己的思想。IT界说net程序员最不值钱的原因也不是空穴来风的,但是话说回来了,net不值钱不是因为net不行,恰恰相反,是因为微软太厉害,拖控件,集成开发,封装,linq,EF,bug机制,极大的简化了开发者的开发难度,说白了就是提高用户体验啊!反观有些语言,基本上就会拿拖控件说事,自己拿几段千篇一律的未封装代码,说这个比较高级,呵呵,说到高级,我很想说算法实现,高级架构,。net哪里会输给你,微软无非是输在一个跨平台与开源上,如果你买了微软的服务,你会发现这个服务真心不错,例如eclipse的用户体验与vs的高下我就不说了,又比如Ios设备昂贵,object-c语法稍微麻烦之外,真的不是那么神秘莫测。

   但是也就是因为微软的高用户体验,导致我们的net程序员先生们深受其害,动手能力强,应变能力差,今天让你做个抽象工厂,明天让你换个mvc就各种晕,导致思维固化,这点确实不如java,三大框架,引领java同志们举一反三。其实话说回来了,框架就是设计模式的整合,设计模式也就是面向对象的客观实现,各种对象处理,如果真懂了面向对象 ,公司的架构很短的时间就会一目了然,自己的思想也就顺流而出,看其它面向对象的语言也会很快手到擒来。

   结果,笔者很悲剧,当场就被Gameover了。估计是被认为不太谦虚吧。

   只是针对这次面试阐述一下自己对。net的理解,谈谈自己对技术的看法。