接着又一次凡客面试体验_1说第二次凡客面试,7月3号又开始了我的凡客面试之旅,又一次的被打击。面试结束后我问面试官(一个中年男士,一看就能看出来是个老手了)对这次面试的评价,哎,虽然说他是带着安慰的口气来回答我,可还是被打击了。以下是他的原话:
“首先说,我面试过的一般都是3年以上工作经验的,连2年工作经验的面试的都很少,对于只有一年多工作经验的我以前就只面试一个。但是呢,按你只有一年工作经验的能学到这么多东西,还算比较可以的。由于你的情况比较特殊,我们项目组现在没有需要一年工作经验的人,反正我现在也给你不了结果,我都是把面试结果交给领导,就看领导有没有意愿培养,如果有需要可能就有空缺,如果没需要就没办法了。”
我当时就纳闷了,凡客的MM呀,你这不是叫我来被打击吗?哎,还是进入正题开始第二次面试之旅。。。
第一道题:你有用过WCF吗?你知道WCF通信底层的5中机制吗?我开始以为是那wshttp什么的,结果他说这都是高层次的,这些总共有10几种。后面就吞吞吐吐的回答了三个:TCP/IP、HTTP、 MSMQ,另外还有其他的两种不知道了。
第二道题:MVC你用的多吗?这个我只是很久之前用过,现在差不多都忘了,我就只知道View、Controller、Model三个层,还有说对于MVC来说URL的路由解析比较重要。然后他就说那问我ASP.NET的。你知道ASP.NET服务控件中的三个数据展现控件吗?我开始说的是GridView、DataList还有个搞忘了我说是DropDownList,最后又纠正Repeater。然后他说“看来Repeater你用的比较少”。肯定不是呀,以前这个用的是最多的,因为他的灵活性比较强,开发人员对于界面展现的可控性最高。然后他又问我这三个控件的区别。Repeater的主要体现在界面展现的灵活性,开发人员可控性高;GridView主要用于数据管理方面,例如比较方便的更新、删除等操作;DataList我当时没回答上来。
第三道题:Ajax你属性吗?我说我现在一般都用的Jquery,然后出了个Jquery的题:
<select>
<option>2</option>
<option>3</option>
<option>4</option>
</select>
在前面插入1,在后面插入4:我写了$("select").append("<option>5</option>") 、$($("select")[0]).beforeInsert("<option>1</option>")当时beforeInsert这个函数有点不确定,确实错了应该是insertBefore。又悲剧了。
第四道题:用Sql写数据库的分页查询。当时我说我一般用的aspnetpager这个额控件来实现分页的,她说那是asp.net方面的。然后叫我用sql语句写。这个其实自己在很久以前用存储过程写过。但用sql语句还真没写过,我就写了:
select top 10 * from A where id not in (select top 20 id from A)。我觉得这个就可以查出第20到30条的记录。当时心里很没底呀。悲剧。。。
第五道题:关于C#的访问权限:
private、protected、internal、protected internal、public。private只有本类才能访问,protected只有本类或子类能够访问,internal本程序集,protected internal本程序集的的本类或子类才能访问,public所有类都可以访问。当时说了自己都觉得有些地方不合理。他又问protected其他程序集能够访问吗?开始犹犹豫豫的,最后想了下这个权限层次都是从低到高的,所以就果断的说了不能。然后他又问internal其他程序集能够访问吗?我记得我有些写过这个东西,就是internal修饰的类可以给他标记个什么属性,这个属性传的参数就是可以访问这个累的程序集。他表示有点怀疑,然后我又继续的蒙了。。。
第六道题:关于asp.net的缓存。然后我说asp.net的缓存其实包括页面数据缓存和页面缓存。数据缓存使用的比较多的是Cache,page.Chache、Httpcontex.Current.Cache。我还没说完他就说数据缓存这个概念太大了,很多东西都可以说是数据缓存。就问我页面缓存,我就初略的说了下整个页面的缓存,和局部页面的缓存。页面的OutputCache、用户控件的OutputCache,还有个HttpCacheProxy什么的名字记不清楚了。然后他问我OutputCache的依赖对象你知道吗?我就说依赖对象有CacheDependency、SqlDependency,他马上就问我有CacheDependency吗?其实CacheDependency我只是在用Cache的时候用过,可以设置依赖于文件,但我不确定OutputCache有没有,我就说SqlDependency我确定肯定有。感觉又是蒙了。。。
可能还有些问题现在也记不得额,最后他问我最近在学习什么,我本来想说《CLR via C#》,当时老子一片空白就直说了个CLR,连名字都搞忘了,这本书我以前看过一次,但是当时的理解不是很深,就这两个月有把CLR和垃圾回收机制看了一遍。他就问我知道GC吗,这个肯定知道呀,然后我就按照我的思路来说,正开始说托管堆,就被他打断了。我觉得对于垃圾回收机制,你肯定要首先了解对象是怎么在托管堆上创建的呀,然后才抛出什么时候用对托管堆进行垃圾回收。可能他想听到的不是这些。他就问我GC.Collect的方式的显示调用时立马执行吗?我当时说是,然后他就举了个例子:
GC.Collect(0);
int i = 0;
GC.collect(0);
问我这两个会立马执行吗?都会执行吗?我说第一个GC.Collect(0)会立即执行。他又问我第二个GC.collect(0)会不会执行呢,我真不知道了。于是我就说,对于GC的执行,会专门分配一个高优先级的线程执行,。。。然后也不知道说什么了。后来我想了下,GC是有专门的线程执行,即使你显示的执行GC.collect(0)操作,如果此时正在执行垃圾回收,线程应该会阻塞,直到垃圾回收执行完后才会执行,这也是自己的一面之词。看来自己对于细节还是没把握住。
通过这次面试,我觉得自己学的东西太杂了,就比如最近工作有在用批处理命令打包程序,还有NSIS,还有给程序加密(使用MD5)。而且最近我们、有一块东西不方便细说,反正就是把Java代码,翻译成C#,然后也要调用c++的接口。真感觉自己学的东西太杂了。自己反思总结。
现在由于客观原因,自己需要换工作了。所以特此恳求工作一份:
地点:成都;
电话:18200598011。
具体:不知道你们可不可以看到我的简历。
由于现在在职不方便透露更多信息,希望能求到一份自己希望满意的工作。努力吧。