我们组的开发人力一直比较紧张,今年春节后,高层终于给了几个headcount,我们可以开始招人了。从三月初我们就开始找简历,渠道有拉钩,内推,我司自己的招聘网站和智联等。简历筛了很多,也打了很多电话,叫过来面试了很多人,可是到目前为止,已经三个月了,我们只招到了两个人,这两个人都是内推来的。

我负责第一次电话面试,如果电话面试觉得可以,我们会叫过来 做一份笔试题,然后我会针对笔试题再进行提问。我们想要招聘的,是一批中级.net开发工程师,工作经验最好在3到6年,在这三个月的面试过程中,这些候选者鲜有我觉得满意的。所以我就想,作为工作了3到6年的.NETer,到底应该掌握哪些知识。

我负责的电话面试和笔试,着重考察.NET基本概念和基础知识,不涉及任何项目经验。在电话面试时,我问的第一个问题就是介绍一下.NET的类型系统,不过很遗憾的是,很多候选者在听到“类型系统”这个词后,完全不知道我的发问点在哪里,他们并不知道“类型系统”指的到底是什么,所以我不得不换个提问方式,转而问“什么是引用类型什么是值类型,有什么区别“,后者的问法,只是前者的一个子集而已。从.NET类型系统,可以发问.NET如何实现跨语言开发,所有类型的共同父类是什么,为什么要分引用类型和值类型,堆和栈的区别,装箱拆箱等等一系列问题,遗憾的是到目前为止还没有人能够说出我想要的答案。关于引用类型和值类型,候选人的回答也是五花八门的,有些人根本没听所过这两个术语,有些人听过,但是搞不清楚栈和堆的区别。而大部分的人,则完全不清楚拆箱和装箱的概念。让我感到吃惊的是,很多人认为拆箱装箱就是父类型和子类型之间的类型转换。最近面试的一个有10年经验的.net开发者,竟然认为装箱拆箱与反射有关。

除去考察类型系统,我电话里还会问到泛型,委托,linq,多线程编程,异步。遗憾的是大部分候选者对于这些在.NET编程中经常用到的技术掌握的也并不好,这几个发问点里,可能多线程和异步编程的问题会有点难度,不过我认为作为一个有五年左右工作经验的人,理应掌握一些多线程和异步编程的技能。当我问道大部分候选者关于多线程和异步编程的问题时,他们都会回答工作中没有用到过所以不清楚,在我看来这根本不是理由。而前三个发问点:泛型,委托,linq,则是非常基本的.NET编程技能,但是很多人仅限于用过,但是却从未进行过一丁点的思考过,为什么.NET要引入泛型,委托和linq,引入它们是为了解决什么样的问题,关于它们的实现原理大致是什么样子的。

在笔试题中,我们会考察进程线程的基本概念,ado.net的使用,闭包,简单的设计模式。遗憾的是,很多人并不能描述清楚进程的概念。在orm大行其道的今天,很多.NETer已经不知道如何使用原始的ADO.NET来访问数据库了,有些工作了五年的候选者从未听说过闭包,有些人无法画出经典设计模式的uml类图。在面试了众多候选者之后我很惊讶,关于这些软件开发的基本技能,竟然有这么多人已经无法掌握。

我面试的这些候选者,有相当一部分人都有在大公司的工作经历,包括微软的,携程的。简历上的title也有不少写的是开发组长,技术经理,架构师之类。简历上的项目经验列出来有好几页,多的我都看不过来。然而他对于基本技能的掌握情况实在令人堪忧。有相当一部分人,满足于做了一个又一个的项目,沾沾自喜。

我在我上一家公司时,我的直属leader对我说“我们是软件工程师,不是码农,不要满足于做成了多少个项目,这些项目都大同小异,能做一个就能做一百个。”这个leader对我的影响非常的大,他教会了我思考问题的方式。任何技术的出现,都是为了解决一类实际问题,并且有个逐步完善的过程。当我们在进行软件开发用到了某种技术手段时,有多少人会去思考一下为什么我要采用这种技术,这种技术解决了什么问题,如果不用会有哪些不便,在这种技术出现之前,是如何解决这类问题的。反过来,能不能自己尝试造个轮子,简单实现一下这个技术手段的功能。论语中说“学而不思则罔思而不学则殆”,学与思结合,收获会有很多。

最后回到题目中来,3到6年的.NETer到底该掌握哪些知识。我认为答案就在clr via c#中。其实我面试时问到的所有问题都可以从这本书中找到答案。c#的经典书籍并不多,如果只看一本的话这一本就够了,而且要反复看,常常看,每次看可能都有新收获。

我们人还没有招满,如果你觉得自己对.NET的掌握非常好,可以发简历到我的邮箱里lukexywang@qq.com。如果你还会c++的话,就更好了。工作地点在深圳南山区。

相关文章:

  • C#读书雷达 | TW洞见

原文地址:http://www.cnblogs.com/onepiece_wang/p/5558341.html


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

3到6年的.NETer应该掌握哪些知识相关推荐

  1. 3到6年的.NETer应该掌握哪些知识?

    我们组的开发人力一直比较紧张,今年春节后,高层终于给了几个headcount,我们可以开始招人了.从三月初我们就开始找简历,渠道有拉钩,内推,我司自己的招聘网站和智联等.简历筛了很多,也打了很多电话, ...

  2. DotNetCommon-搜集.neter开发常用的功能

    介绍 搜集.neter开发常用的功能,运行环境:.net4.7:.netstandard2.0:net5.0: 得益于在BC公司负责维护底层框架代码,自己的精力逐渐从 "全栈" 转 ...

  3. .Neter们,你真的应该了解下EFCore3.x

    本期导读: 技术文,带你了解关于EntityFrameworkCore3.x的那些事,本文共1493个字,阅读大约需要3分钟.文末福利不要错过哦! 是的各位.Neter,不用怀疑,使用O/RM的开发者 ...

  4. .NETer,如何用.NET Core 3.0武装自己?这样学效率提高10倍!

    都2020了 你还不会.NET Core? 2019年,.NET Core 3.0横空出世,越来越多的开发者开始关注.NET Core,越来越多的互联网软件公司开始使用.NET Core,各大.NET ...

  5. 推荐.neter常用优秀开源项目系列之二

    .net社区有很多优秀的开源项目,我们今天再推荐12个开源项目: 1. Domain-Driven-Design-Example DDD 示例 挺不错的. github https://github. ...

  6. 推荐neter常用优秀开源项目系列之一

    .net社区有很多优秀的开源项目,我们今天先推荐6个开源项目: 1.MassTransit MassTransit 是一个自由.开源.轻量级的消息总线, 用于使用. NET 框架创建分布式应用程序.M ...

  7. 野路子土鳖ASP.NETer谈互联网的发展趋势

    有些话别在憋在心里太久了,容易伤身体,总得找个借口吐槽一下,今日不小心看到园有关于互联网发函趋势的文章,作为一名ASP.NET程序员,自然要说说什么是趋势,机会找到了,好高兴. http://zzk. ...

  8. Linux下mysql支持中文,linux下mysql环境支持中文配置步骤

    sql脚本执行前加上: CREATE DATABASE IF NOT EXISTS mydatabase DEFAULT CHARSET utf8 COLLATE UTF8_GENERAL_CI; u ...

  9. 重磅发布:Redis 对象映射框架来了,操作大大简化!

    欢迎关注方志朋的博客,回复"666"获面试宝典 前言 最近,Redis 官方博客宣布推出四个用于 Redis 的客户端工具库:Redis OM(对象映射库,Object Mappi ...

最新文章

  1. Python IO编程-组织文件
  2. OpenCV捕获视频和摄像头
  3. 你认为手机会取代个人电脑吗?
  4. android 反射调用方法可不可以重载,使用Java进行反射投射和重载方法调度
  5. linux系统安装宝塔面板
  6. 根据文件扩展名获取系统图标
  7. maven 打包替换文件_使用Maven打包生成文件 | 学步园
  8. Find Minimum in Rotated Sorted Array leetcode java
  9. 不爱跳槽、月薪集中在 8K-17k、五成欲晋升为技术Leader|揭晓中国开发者真实现状
  10. openmp配置指南_[z]OpenMP编程指南
  11. C++中默认选中预编译头#includestdafx.h作用
  12. windows系统查看md5
  13. 10 QT - 自定义信号和槽
  14. 网络基础之冲突域和广播域
  15. Flutter - 图片/视频选择器(支持拍照及录制视频)
  16. 广东工业大学计算机专业分流,2017年广东工业大学大类招生学生专业分流工作小组...
  17. 网联到智能,上汽要靠R汽车打赢新一轮“卡位战”
  18. android 高光动画,分享AirDroid高光时刻:它是如何使我高效工作和生活的?
  19. Sass文件的导入import和Partials
  20. Android7.0 PackageManagerService (2) PKMS构造函数的主要工作

热门文章

  1. Blazor University (4)组件 — 单向绑定
  2. ABP vNext微服务架构详细教程——架构介绍
  3. .NET 6新特性试用 | ArgumentNullException卫语句
  4. Dapr + .NET 实战(十二)服务调用之GRPC
  5. 【litrpa专题】首个rpa程序,使用litrpa采集百度地图地铁数据
  6. 入门K8s:一键脚本搭建Linux服务器集群
  7. C# this关键字的3种用法
  8. 阿星Plus:基于abp vNext开源一个博客网站
  9. asp.net core 使用 TestServer 来做集成测试
  10. 浅谈 Kubernetes Scheduling-Framework 插件的实现