上星期:应老东家的要求,帮其面试.NET架构师。

于是:老东家进行了一星期的简历收集;

终于:在一堆简历里,精挑细选了四个;

约了:周末上午下午各两个。

面试者年龄:在30-35岁左右,差不多10年.NET经验。

毕竟收人钱财替人消灾,所以我特意在面试前的晚上稍为准备了一下:

想看看网上有什么可参考的,

于是:网上搜搜:.NET 架构师面试题

发现:这块内容几乎一片空白,悲哀啊〜〜〜一首“凉凉”送给微软。

偶尔有一两条链接,里面的题都是.NET面试题,套上了架构的名头,坑谁啊。

看来只能自己设计了,考虑到:

时间:大约只有1个半小时左右的面试时间。

岗位:.NET 架构师。

这样的时间,这样的岗位,我设计的问题必须直指核心,全面且有效的评估面试者的能力。

大约花了两小时左右,就设计好了面试的大体内容。

下面就和大伙分享我设计的面试过程或内容:

1、现场编码。

要求写出:缓存类+SqlHelper类(30分钟内,然后由代码引向面象对象或设计模式)。

2、数据库。

问了两点:索引的坏处,事务的级别,分布式事务的原理。

3、发散思维题一。

题目:电商,瞬时抢购的方案,你会如何设计。

4、发散思维题二。

题目:4G内存的电脑,如何读取8G的日志文件进行分析,汇总数据成报表。

5、回归基础题。

题目:说说 数组、链表、Hash表的缺点。

6、IIS。

题目:应用程序池的集成模式和经典模式的区别。

7、发散性问题:安全

题目:说说你认为的安全都有涉及到哪些地方?

8、发散性问题:性能

题目:说说你认为的性能都体现在哪些地方?

9、发散性问题:分布式

题目:说说集群、故障转移、负载均衡、分布式都有哪些不同?

10、Http 协议

题目:

:说说301,,304这三个状态码的用处;

:协议版本1./1.1/2.0,有哪些变化你关注到了?

11、TCP、UDP 协议

题目:说说穿透或打洞的原理。

12、ASP.NET 的基本

题目:聊聊.NET的管道和.NET Core的中间件。

问题或方向可以很多,只挑了这些,感觉已经够聊几个小时了,

且大多数是发散性思维题,没有固定答案,

只要你会聊,每个题都能引出一堆知识点,

但若是基础不稳,回答不了,或一瞎扯马上就能听出来〜

架构师是什么?

网上有很多定义,但读取起来都很抽象,

这里,我想用更直白的方式来形容。

架构师=(.NET)语言的熟练开发 + 领悟( 超越语言本身的技术原理+全面的技术体系 )+ X。

如果你认为能熟练的把各种框架组合在一起,搭建一套框架,就是架构师,那你也too洋吐Simple了。

因为有这种能力的,一抓一大把,每个能熟练开发的,基本都能做的到。

有些人10年了,学了很多的框架用法,也只是把熟练开发阶段再宽一点;

再给10年,也许能领悟出吧,但国内的人生几乎容不下另一个10年开发了。

所以,在5-7年这个核心阶段,不领悟出后者,入架构师的门就很渺茫了。

当然也有些仅靠熟练开发阶段就在公司当架构师的,只能说lucky了。

老东家的面试结果与总结:

要面试一个中级程序员和一个高级程序员的能力差别,也许有点难。

但要面试一个高级程序员和架构师的差别,却很容易。

面试的结果很惨淡,全都停留在熟练开发,不求甚解的阶段,

可悲的是,这不是个别现象,而是群体现象。

在这框架群出的时代,能因缘领悟走向架构师的已如凤毛麟角。

若没有相应的架构师人才,除了少数公司,

最后的结局,大多数公司架构师这职位大概会慢慢消失。

特别是.NET领域。

所以:

最近,我的微信公众号发了一篇文章:.NET架构师技能提升1V1培训(第一期)

准备试点为.NET的未来培训点架师。

目前报名的有七八个,不过基本都被我拒了,因为:

年纪太大,职位太高:有技术总监,有项目经理,有技术创业者。

经验不太足:只有1-2年左右的经验

按我的设想,3-7年的最合适,离架构师也最近,培训完还能推荐到给有需要的公司。

一段让你思考的对话:

今有个87年的网友问了我这个问题,让我想起了两年前,

也有个10年经验的问了我差不多的问题:秋天,你和我的技术差距在哪里呢?

这种问题的潜在答案就是:

在熟练开发阶段,好像你和我并没有什么不同,一般的系统你能开发的我也能开发。

的确,在这个阶段,是没有大不同,

不同的是领悟的部分,而这个部分是由大量碎片化的经验组成的,

很抽象不好解释,

而单独的表达某一个碎片化的知识时,更说明不了什么问题:因为一说完,他就能知道。

最后除了说:我能写框架,你写不出来,这就是差别,然后呵呵,还能怎么表达〜〜〜

不过看完今天的这篇文章,他大概会明白一些吧,若再不明白就真老了。

到熟练开发阶段,是很自然而然的事,而且没有门槛,

可怕的是,多数人的心态在这里就止步了,

一停留就五六七年,醒来时却晚了。

最后,愿本文,能让迷茫、停留在熟练开发阶段的人有所帮助。

PS:有兴趣的可以关注本文的上一篇文章,有惊喜。

谈谈.NET架构师面试及如何设计面试题的更多相关文章

  1. 架构师修炼 III - 掌握设计原则

    关于软件的设计原则有很多,对于设计原则的掌握.理解.实践及升华是架构师的一项极为之必要的修炼. 记得在12年前第一次阅读<敏捷开发>时,五大基本设计原则就深深地植入到我的脑海中一直影响至今 ...

  2. 2020Java程序员架构师面试宝典,学习后面试必过,震惊,本人通过这篇教程,拿到了0个offer

    1. 引言 Java后端学习路线 <吐血整理>顶级程序员工具集 https://github.com/AobingJava/JavaFamily 跟上Java8 经历阿里.头条.腾讯等知名 ...

  3. 大型公司java架构师面试实战讲解高清视频教程 15课

    目录: 01.面试必考之HashMap源码分析与实现02.探索JVM底层奥秘ClassLoader源码分析与案例讲解03.大型网站数据库瓶颈之数据库分库分表方案实践04.资料为图灵学院所有05.大型公 ...

  4. Apache架构师的30条设计原则

    本文作者叫 Srinath,是一位科学家,软件架构师,也是一名在分布式系统上工作的程序员. 他是 Apache Axis2 项目的联合创始人,也是 Apache Software 基金会的成员. 他是 ...

  5. Android源码分析(五)-----如何从架构师的角度去设计Framework框架

    一 : 架构与程序 软件架构是一种思维方式,而程序只是实现思维方式的一种手段,代码固然重要,但是若没有整体的思维架构,一切程序都如水中浮萍. 二 : 框架如何设计 暂时抛开Android Framew ...

  6. 阿里Java架构师面试高频300题:集合+JVM+Redis+并发+算法+框架等

    前言 在过2个月即将进入9月了,然而面对今年的大环境而言,跳槽成功的难度比往年高了很多,很明显的感受就是:对于今年的java开发朋友跳槽面试,无论一面还是二面,都开始考验一个Java程序员的技术功底和 ...

  7. 2018 年 3 月 iOS架构师 面试总结

    序言: 今年2月中下旬因为个人原因,换了一份工作,3月初期间面试了有3,4家,基本都是D轮或者刚刚上市的公司,也有上榜的BAT,也从他们的面试笔试中看到了自己的一些不足,于是就想写出来和大家分享一下, ...

  8. 空中网招聘Java架构师、数据库开发等各类人才

    爱好网络游戏吗?爱好网站开发技术吗? 有没有想过可以成为史诗级MMO RPG<激战2>运营团队中的一员? 如果下面的职位有合适你的,加入我们吧! http://gw2.kongzhong. ...

  9. 架构师修炼 II - 表达思维与驾驭方法论

    开篇之前我想先说说当年开发的那点事儿:大约10年前吧,我还是一个程序员的时候经常都是遇到这样的项目开发流程: 解决方案 :满足客户目的和投标用的一堆文档(不少还是互联网上抄的) ,是以Word为主的纯 ...

随机推荐

  1. Day5_模块与包(import)(form......import....)

    一个文件中定义了很多模块,然后可以再别的文件中调用这几个模块. #导入模块(import) #1,执行源文件 #2,产生以源文件为基础的全局名称空间.

  2. 在MySQL和PostgreSQL之外,为什么阿里要研发HybridDB数据库?

    http://www.infoq.com/cn/news/2016/12/MySQL-PostgreSQL-Greenplum 编者按 在大数据火遍IT界之前,大家对数据信息的挖掘通常聚焦在BI(Bu ...

  3. python flask中的代码约定

    在Python社区中有许多关于代码风格的约定.如果你写过一段时间Python了,那么也许对此已经有些了解. 我会简单介绍一下,同时给你一些URL链接,从中你可以找到关于这个话题的详细信息. 让我们提出 ...

  4. SOFA 源码分析 — 链路数据透传

    前言 SOFA-RPC 支持数据链路透传功能,官方解释: 链路数据透传功能支持应用向调用上下文中存放数据,达到整个链路上的应用都可以操作该数据. 使用方式如下,可分别向链路的 request 和 re ...

  5. php中获取用户登陆的IP地址以及常规处理

    本文为原创,转载请注明!  在我们开发多站点业务网站中,经常需要获取客户端的ip地址来给用户推荐其所在地址的信息的业务,用php获取客户端的ip地址,我们一般用到的PHP内置方法是$_SERVER[' ...

  6. UE4中创建第一、第三人称角色,并进行角色间的切换

    在游戏中经常会出现第一人称和第三人称的视角切换场景,笔者在这里简单介绍如何进行这步操作. 1.创建角色 在内容浏览器中添加2个Character蓝图,分别命名为FirstPersonalCharact ...

  7. js实现地图打印功能

    注意:js对地图的打印功能在arcgis10.1中才有提供,所以如果要使用esri自带的地图打印功能,必须使用arcgis 10.1或更高版本的地图打印模板.(由于官网和arcgis desktop提 ...

  8. Java枚举enum以及应用:枚举实现单例模式

    枚举作为一个常规的语言概念,一直到Java5才诞生不得不说有点奇怪,以至于到现在为止很多程序员仍然更喜欢用static final的形式去命名常量而不使用,一般情况下,Java程序员用这种方式去实现枚 ...

  9. Python Cook函数笔记 【第一章】

    2017年4月28日 19:29:52 解压赋值给多个变量 可迭代的对象(list,tuple,string,文件对象,迭代器,生成器等),都可以进行解压赋值给多个对象. #!/usr/bin/env ...

  10. JavaScript 字符串反转

    第一种方法:使用内置方法 split()方法将一个字符串对象的每个字符拆出来,并且将每个字符串当成数组的每个元素 reverse()方法用来改变数组,将数组中的元素倒个序排列,第一个数组元素成为最后一 ...