1、引子

  最近一直在负责.net(B/S方向)技术面试相关的工作,前前后后面试了不少人,但是通过率较低,大概只有20%左右;有颇多感慨。

  最近也一直比较困惑,原因究竟是什么?

  是我们要求太高,应聘者本身的问题,还是是面试的内容本身的问题?

  2、我们的岗位要求

  这是之前项目组整理的一个简单的岗位(.Net中高级职位)要求,贴一下:

必须技能:

  • 有2~3年实际的项目经验(特别说明:工作经验不一定要进入实际的公司才能积累的)
  • 思路比较清晰,有较强的独立解决问题的能力
  • 熟悉b/s开发的各项基本知识(如css、javascript、html、asp.net),不要求全会,但至少能看懂别人写的东西,另外各项里面必须有一项较为突出;
  • 对.net框架比较熟悉,熟悉多层模型,编码能力较强,编码规范,打字速度不能太慢(特别说明:这应该属于最最基本的技能,但是很让人不解的是面试过程中有不少的应聘者竟然尖着个手指头在那儿慢慢敲字!!!)
  •  数据库知识比较扎实

优先考虑:

  •  对web报表比较熟悉者
  •  有过多种数据库开发经验,能够罗列出各种数据库之间的一些细微差别
  •  有过一些c/s开发经验者
  •  前端开发经验比较丰富者(如实际负责过ExtJS、JQuery、Dojo、YUI、AjaxPro相关工作的)

  3、使用的面试问题

  面试过程中针对上面的岗位要求主要会涉及到以下几项内容

  1)给10分钟左右的时间,做一个详细的自我介绍

  2)C#、Asp.Net、前端、数据库等基础知识

  一般会问到以下一些问题

  • a) 下面三句代码有没有错,以inboxing或者unboxing为例,解释一下内存是怎么变化的
  • int i=10; 
    object obj = i; 
    int j = obj;
  • b) 编码题目, 如限定时间编码求菲波拉契数列第n项的值,求函数f(n)=1/1!+1/2!+1/3!+...+1/n!的值,求两个二维矩阵相乘的值等等;
  • c) 谈谈对委托、事件的理解等等;
  • d) 为什么asp.net控件能够保持住状态;asp.net button的客户端事件是如何映射成服务器端事件的;详细谈一下asp.net的管道模型;
  • e) 下面css中“一段文字”最终在浏览器中显示什么颜色;如果用js原生脚本改变class为“xyz”该如何写,将“一段文字”替换成“其它文字”如何写等;
  • .abc{color:red;}
    #abc{color:blue;}
    <div id="abc" class="abc">一段文字</div>
  • f)谈谈ajax原理的了解程度以及目前业界流行的ajax框架的熟悉程度;
  • g) 表结构:
  • 成绩表(Grade),包含字段:GradeID(Int,自增), SNO(int, 学号), CNO(int, 课程号), Score(float,分数)

  查询每门课程的平均(最高/最低)分及课程号;

  查询每门课程第1名的学生的学号;

  查询每门课程中超过平均分的所有学生的学号等等。

  3) 设计方面的能力

  • a) 给出一些具体的应用场景,如多数据库支持、工资计算方式多样的情况,如何来设计;
  • b) 谈谈对设计的理解;
  • c) 偶尔还会让画画设计类型,写写代码实现常见设计模式(如单例模式等)

  4) 解决问题的能力/学习习惯/个人特长等等

  主要涉及到以下一些问题

  • 让应聘者自己挑一个自己以往做过的他认为具有代表性的项目,详细聊一下,主要聊一下他/她在这个项目中的职责,这个项目曾经遇到过哪些问题,如何解决的,他/她在解决这些问题的过程中起到了什么作用等等。
  • 给应聘者一个他目前不会的问题,让其解决一下;
  • 课外时间都在干什么,常上的技术网站是什么,最近看的基本书(电子书当然也算)的名字还记得吗;
  • 聊聊自己最擅长的方面;

  4、我期望得到的答案

  当然上面这些问题不可能一次全部都问到,时间上也不允许,但是四部分的内容我会根据实际情况都会问到一些;时间一般在1个小时左右。

  下面谈谈从项目组以及我个人角度出发希望得到的答案,希望能够给大家带来些许启示:

  1) 首先是自我介绍部分

  这部分的内容我本人之前被面试的时候也很是郁闷,认为:“我的简历都有了,你自己不会看吗,还让我再多说一遍,真实吃饱了撑的!”;这种想法真的是非常错误的,原因有以下几点:

  •  简历是hr筛选的,技术面试官一般都比较忙,虽然hr可能会提前将简历发送给技术面试官,但是面试官一般都比较忙,面试之前未必会仔细看简历;所以通过自我介绍可以让面试官更好的了解你;
  •  自我介绍可以看出你的语言组织能力、逻辑思维能力;
  •  自我介绍可以引导面试官往应聘者自己熟悉方向上去发问,争取面试的主动权。

  所以我所期望从应聘者的自我介绍中得到以下一些信息:

  •  有组织、有条理的进行自我介绍;
  •  自我介绍的内容包括简单介绍教育背景、工作经历、项目经历、自我评价(优缺点、特长【说明:重要,亮点,如果应聘者自己提到了的话我一般会接着这个话题继续聊下去】),个人的短/中/长期职业规划。

  2) 基础方面

  这部分的内容不一定要求全部精通,但是至少应该知其然,最好也能知其所以然,比如css的优先级,这里我举两个简单的例子:

  a) 编码题目,这个我一般都会让应聘者写一段代码,编码是开发人员最基本的功底;针对编码问题,我期望看到以下的结果:

  • 编码之前先写思路,比如,第一步怎么怎么做,第二步怎么怎么做,体现出良好的思维习惯及逻辑思维能力,这样即使最终没有写出来也没有太大的关系;
  • 良好的编码习惯(如命名规范、注释,在应聘者开始写之前我也会),这里我多说几句,常常听到有人说良好的命名就是最好的注释,强掉少些注释啥的;我面试过程中有一个原则,通篇代码没有一句注释的我直接不聊了;

  b) 引用类型/值类型,装箱/拆箱问题。这个问题也比较典型,可能有人会说,这些东西又不会在工作中用到,问这种问题有什么意义! 我要说的是,不是没用到,只是你没注意到而已。其它不多说了,我期望应聘者能把下面这张图画出来。

  总之一句话就是,我希望应聘者能够对原理性的东西多了解一些。

  3) 设计方面

  设计知识其实也是作为高级开发职位必须具备的知识。

  我期望应聘者能够对设计模式有比较深入的认识,通过我给出的经典场景能够立刻联想到应该使用的设计模式。

  4) 解决问题的能力/学习习惯/个人特长等等

  a) 解决问题的能力一直是我个人也好,还是项目组也好,比较看重的,给一个不会的问题(写一个Windows服务小工具来搜集服务器的CPU、内存等信息),我期望得到的答案包含以下信息:

  •   首先要制定一个计划(包含可能需要用到的资源、可能遇到的困难及解决思路,这个问题需要分几个步骤去做,制定大致的时间进度计划等等);
  •   按照规划好的步骤去做这些事情,遇到困难通过最快的方式/方法去解决,并及时修正计划;
  •   解决完以后及时总结、汇报等等。

  b) 期望应聘者有良好的学习习惯,对新技术、新知识持续不断的学习;

  c) 在知识面上既要有一定的广度,同时也有自己的专长。

  5、总结与建议

  1) 总结

  通过这段时间的面试,发现面试者主要有以下几点不能完全让我满意:

  • 思路不够清晰,主要表现在:自我介绍的时候没有条理,比较乱;解决问题的能力有所欠缺;
  • 比较浮躁,基础不扎实。 动不动就写精通XXX,对基础的问题(如装箱、拆箱)稍微聊得深入一点就清楚了;
  • 不诚实:经常在简历或者自我介绍中提到:做过项目经理、技术经理,但是问到项目经理、技术经理的职责啥的却说不清楚;
  • 知识面比较窄,学习习惯不够好;
  • 职业目标不够清晰;

  2) 建议

  结合自己的一些真实感受,这里给出几点简单的建议吧:

  • 给自己制定一个短/中/长期的职业目标,并为此不懈努力;
  • 夯实基础,项目中用到的知识当然要学习,基础原理性的东西更要掌握;
  • 多总结,把知识沉淀下来;
  • 诚实;
  • 培养良好的编码习惯;

  ============================

  希望本文能给各位求职者带来一些启发;

  如有不当之处,敬请批评指正。

谈谈.Net技术面试的更多相关文章

  1. 浅谈C# .Net技术面试 , 正在找工作的人一定要看看

    1.引子 最近一直在负责.net(B/S方向)技术面试相关的工作,前前后后面试了不少人,但是通过率较低,大概只有20%左右:有颇多感慨. 最近也一直比较困惑,原因究竟是什么? 是我们要求太高,应聘者本 ...

  2. 十大面试问题解惑,秒杀一切HR、技术面试

    最能体现求职者能力的就是面试,能不能拿到Offer,取决于你面试时的表现,只有有准备才能在面试过程中游刃有余.小编收集了10个面试官最爱提的问题,虽然题目千变万化,但是万变不离其宗,只要掌握了答题的技 ...

  3. Android开发如何准备技术面试(含Android面试押题)

    今年毋庸置疑是找工作的寒冬,每一个出来找工作的同学都是值得尊敬的.现在找工作,虽然略难,但是反过来看也会逼迫我们成为更加优秀的自己. 但是不管是旺季还是寒冬,有一些优秀的同学找工作还是挺顺利的.所以说 ...

  4. 虚言妙诀终虚见,面试躬行是致知,Python技术面试策略与技巧实战记录

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_183 2021年,对于正在找工作的朋友来说,笼罩在新冠肺炎疫情之下,今年的就业季显得更加具有挑战性,更有意思的是,每当这个时候,各 ...

  5. 谷歌技术面试要点(Google面试)(14年5月20日交大专场)

    技术面试的主题 1.简要自我介绍: 姓名.学校.专业 做过的项目与实习 个人主要成就 2.技术评估: 构建与开发算法 编程 计算机基础知识 数据结构 现实世界问题解决能力 设计问题(主要针对博士生) ...

  6. Amazon前技术副总裁解剖完美技术面试

    Amazon前技术副总裁解剖完美技术面试 投递人 itwriter 发布于 2014-03-03 14:30 评论(0) 有1729人阅读  原文链接  [收藏]  « » 英文原文:The Anat ...

  7. 以技术面试官的经验分享毕业生和初级程序员通过面试的技巧(Java后端方向)

    本来想分享毕业生和初级程序员如何进大公司的经验,但后来一想,人各有志,有程序员或许想进成长型或创业型公司或其它类型的公司,所以就干脆来分享些提升技能和通过面试的技巧,技巧我讲,公司你选,两厢便利. 毕 ...

  8. 引用面试官文章 :如何准备Java初级和高级的技术面试

    本人最近几年一直在做java后端方面的技术面试官,而在最近两周,又密集了面试了一些java初级和高级开发的候选人,在面试过程中,我自认为比较慎重,遇到问题回答不好的候选人,我总会再三从不同方面提问,只 ...

  9. 顽石系列:Java技术面试

    顽石系列:Java技术面试 JDBC相关 1.Statement与PreparedStatement的区 别,什什么是SQL注⼊入,如何防⽌止SQL注⼊? PreparedStatement支持动态设 ...

随机推荐

  1. http_build_query 的一个问题

    当我们使用CURL来post数据的时候,需要设置post的数据 curl_setopt($c, CURLOPT_POSTFIELDS, $post_data); 假如这里的$data是 $data = ...

  2. Windows7 + Ubuntu双系统安装过程记录

    本文为在已安装Windows7系统的前提下安装Ubuntu Kylin 14.10系统的过程以及期间出现的各种问题的记录. Ubuntu系统下载 Ubuntu Kylin中文官方网站:http://w ...

  3. jq 实现无限级地区联动 样式为bootstrap

    HTML 部分 <div class="row" style="margin:100px auto;"> <form method=" ...

  4. 《sqoop实现hdfs中的数据导出至mysql数据库》

    报错Access denied for user 'root'@'localhost' (using password: YES)  参考一  参考二 登陆mysql时,root密码的修改 参考帖子h ...

  5. 十二天 mysql操作

    本节内容 数据库介绍 mysql 数据库安装使用 mysql管理 mysql 数据类型 常用mysql命令 创建数据库 外键 增删改查表 权限 事务 索引 python 操作mysql ORM sql ...

  6. selenium常用的js总结

    1. 对input执行输入 直接设置value属性, 此方法主要应对输入框自动补全以及readonly属性的element,sendkeys不稳定 比如: //inputbox is a WebEle ...

  7. cocoaPods 的使用

    打开 终端 1. 移除系统自带的 因为该rub已经被和谐了 使用ruby.taobao.org MCJ:~ MCJ$ sudo gem sources -l *** CURRENT SOURCES * ...

  8. Python字符串倒序-7. Reverse Integer

    今天做了下LeetCode上面字符串倒序的题目,突然想Python中字符串倒序都有哪些方法,于是网上查了下,居然有这么多种方法: 个人觉得,第二种方法是最容易想到的,因为List中的reverse方法 ...

  9. Windows phone 8.1布局控件

    布局控件(4种  第一种) Grid:相当于 HTML 中的 Table 标签,但是注意 Table 更重要的是展示数据,   而 Grid 则是专门为布局所生 属性标记: Grid.RowDefin ...

  10. linux 内核与用户空间通信之netlink使用方法

    转自:http://blog.csdn.net/haomcu/article/details/7371835 Linux中的进程间通信机制源自于Unix平台上的进程通信机制.Unix的两大分支AT&a ...