面试一个.Net岗位,一下把我给问住了,人家问我:“你会Oracle数据库吗?”,我跟面试官说我只会MySql!我怕面试官不理我了,于是我补充道:“Oracle我在学编程的时候用过,其实MySql和Oracle只是语法上略有区别而已,其实都差不多!”。然后他又问我会不会Dapper,我脑子转得飞快,于是说:“ORM我只用过FreeSql和Entity Framework,但是,只要是ORM,其实都差不多嘛!”,于是,我就被通知回去等通知了!

打开网易新闻 查看更多图片

面试官是Java转的.Net吧?

其实,当面试官问我会不会Oracle的时候我心里咯吱一下,但是好在我还学过Oracle,对Oracle数据库还算了解,但是当面试官问我会不会Dapper的时候,我回答得其实是有点心虚的,因为我不确定Dapper是不是ORM框架。好在,事后我查了一下,的确是ORM框架,被我蒙对了!

但是,我还是被告知回去等通知了,原因估计很简单,其实就是我不经常使用Oracle和Dapper,但是,我觉得如果非要一个.Net程序员经常使用Oracle数据库或者Dapper,那么就一个可能,说明这个.Net程序员多半是Java转行过来的!

虽然从技术角度说,.Net支持了各种数据库,但.Net主栈数据库还是SqlServer和MySql,Oracle和Java配合开发的比较常见。

这就像招聘C++程序员经常会要求C++程序员会QT一样,但其实.Net也有QT框架,Python也有QT框架,但是,基本上不会要求.Net程序员必须会QT一样!

而Dapper虽然只是一个ORM框架,我虽然没用过,但是大概率也是支持各种数据库的,但.Net有自己的ORM框架Entity Framework,还有开源框架FreeSql,用Dapper的不是没有,但我见过的还真不多!

CodeFirst思想下,数据库是什么并不重要!

但虽然.Net技术栈经常使用的数据库是SqlServer和MySql、Java技术栈经常使用的数据库是Oracle和MySql,但是只要涉及到了ORM,数据库用的是什么,还需要那么关心吗?

所以,如果因为不经常使用某种数据库,面试就被刷下来了,只能说明面试官本身就不专业。

使用ORM的目的是什么?我估计这个面试官心里面可能自己都不清楚,ORM被发明出来的最大目的其实就是为了CodeFirst!目的就是让程序员把大部分注意力放在编码上而不是一边编码一边还要写各种复杂的Sql语句!

但是,明明现在CodeFirst的思想已经深入人心了,但还是有很多程序员为了使用某种技术而使用某种技术。

但是有一种可能,就是这家公司所使用的主要技术栈是Java,所以要求.Net程序员会使用Oracle数据库,但我不觉得把会Oracle数据库当作硬性要求,会给他们公司带来什么好处!

结语

我觉得,如果这家公司依旧坚持在招聘.Net的时候硬性要求.Net程序员既要会Oracle数据库,又要会Dapper,那么,多半这样的公司是很难招到合适的.Net程序员的!

虽然,学Oracle数据库的基本知识也就一个星期就差不多了!