惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The Last Watchdog
The Last Watchdog
Stack Overflow Blog
Stack Overflow Blog
IT之家
IT之家
Vercel News
Vercel News
F
Fortinet All Blogs
博客园 - 三生石上(FineUI控件)
M
MIT News - Artificial intelligence
Google DeepMind News
Google DeepMind News
人人都是产品经理
人人都是产品经理
MyScale Blog
MyScale Blog
博客园 - 聂微东
Martin Fowler
Martin Fowler
H
Hackread – Cybersecurity News, Data Breaches, AI and More
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
小众软件
小众软件
V
V2EX
博客园 - 司徒正美
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
The Cloudflare Blog
博客园 - 【当耐特】
Recorded Future
Recorded Future
Recent Announcements
Recent Announcements
MongoDB | Blog
MongoDB | Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
T
Tailwind CSS Blog
D
DataBreaches.Net
Last Week in AI
Last Week in AI
腾讯CDC
Engineering at Meta
Engineering at Meta
宝玉的分享
宝玉的分享
B
Blog RSS Feed
Apple Machine Learning Research
Apple Machine Learning Research
H
Help Net Security
V
Visual Studio Blog
U
Unit 42
SecWiki News
SecWiki News
Blog — PlanetScale
Blog — PlanetScale
S
Secure Thoughts
S
Securelist
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Security Latest
Security Latest
C
Cybersecurity and Infrastructure Security Agency CISA
雷峰网
雷峰网
T
Threatpost
Latest news
Latest news
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
H
Heimdal Security Blog
S
SegmentFault 最新的问题
Attack and Defense Labs
Attack and Defense Labs
GbyAI
GbyAI

酷 壳 – CoolShell

感染新冠的经历 | 酷 壳 - CoolShell 从一次经历谈 TIME_WAIT 的那些事 | 酷 壳 - CoolShell 网络数字身份认证术 | 酷 壳 - CoolShell 我做系统架构的一些原则 | 酷 壳 - CoolShell 源代码特洛伊木马攻击 | 酷 壳 - CoolShell Go编程模式 : 泛型编程 | 酷 壳 - CoolShell 如何做一个有质量的技术分享 | 酷 壳 - CoolShell Go 编程模式:k8s Visitor 模式 | 酷 壳 - CoolShell Go编程模式:Pipeline | 酷 壳 - CoolShell Go编程模式:委托和反转控制 | 酷 壳 - CoolShell Go 编程模式:Go Generation | 酷 壳 - CoolShell Go编程模式:Map-Reduce | 酷 壳 - CoolShell Go 编程模式:错误处理 | 酷 壳 - CoolShell Go编程模式:切片,接口,时间和性能 | 酷 壳 - CoolShell 百度为什么掉队了 | 酷 壳 - CoolShell 程序员如何把控自己的职业 | 酷 壳 - CoolShell 计时攻击 Timing Attacks | 酷 壳 - CoolShell Rust语言的编程范式 | 酷 壳 - CoolShell HTTP的前世今生 | 酷 壳 - CoolShell 记一次Kubernetes/Docker网络排障 | 酷 壳 - CoolShell 可视化编程 | 酷 壳 - CoolShell 程序的本质复杂性和元语言抽象 | 酷 壳 - CoolShell 伙伴分配器的一个极简实现 | 酷 壳 - CoolShell C++11的Lambda使用一例:华容道求解 | 酷 壳 - CoolShell C++面试中string类的一种正确写法 | 酷 壳 - CoolShell C++模板”>>”编译问题与词法消歧设计 | 酷 壳 - CoolShell 数据即代码:元驱动编程 | 酷 壳 - CoolShell 数据的游戏:冰与火 | 酷 壳 - CoolShell 7个示例科普CPU Cache | 酷 壳 - CoolShell 加班与效率 | 酷 壳 - CoolShell 类型的本质和函数式实现 | 酷 壳 - CoolShell C语言全局变量那些事儿 | 酷 壳 - CoolShell 二叉树迭代器算法 | 酷 壳 - CoolShell Alan Cox:大教堂、市集与市议会 | 酷 壳 - CoolShell IoC/DIP其实是一种管理思想 | 酷 壳 - CoolShell 无锁HashMap的原理与实现 | 酷 壳 - CoolShell 浏览器的渲染原理简介 | 酷 壳 - CoolShell 疫苗:Java HashMap的死循环 | 酷 壳 - CoolShell Unix考古记:一个“遗失”的shell | 酷 壳 - CoolShell PFIF网上寻人协议 | 酷 壳 - CoolShell 实例分析Java Class的文件结构 | 酷 壳 - CoolShell 并发框架Disruptor译文 | 酷 壳 - CoolShell AWK 简明教程 | 酷 壳 - CoolShell Linus:利用二级指针删除单向链表 | 酷 壳 - CoolShell 从面向对象的设计模式看软件设计 | 酷 壳 - CoolShell 应该知道的Linux技巧 | 酷 壳 - CoolShell Web工程师的工具箱 | 酷 壳 - CoolShell 程序员疫苗:代码注入 | 酷 壳 - CoolShell 如何测试洗牌程序 | 酷 壳 - CoolShell TF-IDF模型的概率解释 | 酷 壳 - CoolShell xkcd 神图“Click and Drag” | 酷 壳 - CoolShell Bret Victor – Learnable Programming | 酷 壳 - CoolShell C/C++语言中闭包的探究及比较 | 酷 壳 - CoolShell 对九个超级程序员的采访 | 酷 壳 - CoolShell “单元测试要做多细?” | 酷 壳 - CoolShell 一次Ajax查错的经历 | 酷 壳 - CoolShell 为什么我反对纯算法面试题 | 酷 壳 - CoolShell GCC 用 C++ 来编译 | 酷 壳 - CoolShell K Nearest Neighbor 算法 | 酷 壳 - CoolShell 对技术的态度 | 酷 壳 - CoolShell InfoQ的ArchSummit大会对我的采访 | 酷 壳 - CoolShell 各式各样的验证码 | 酷 壳 - CoolShell 代码执行的效率 | 酷 壳 - CoolShell 28个Unix/Linux的命令行神器 | 酷 壳 - CoolShell 少即是极多 | 酷 壳 - CoolShell 关于闰秒 | 酷 壳 - CoolShell K-Means 算法 | 酷 壳 - CoolShell 持续部署,并不简单! | 酷 壳 - CoolShell Git显示漂亮日志的小技巧 | 酷 壳 - CoolShell 性能调优攻略 | 酷 壳 - CoolShell 抄袭,腾讯 和 产品 | 酷 壳 - CoolShell Lisp的永恒之道 | 酷 壳 - CoolShell Javascript 中的 var | 酷 壳 - CoolShell Huffman 编码压缩算法 | 酷 壳 - CoolShell 扎克伯格的一封信:关于Facebook IPO | 酷 壳 - CoolShell 用Unix的设计思想来应对多变的需求 | 酷 壳 - CoolShell 做个环保主义的程序员 | 酷 壳 - CoolShell 游戏:VIM大冒险 | 酷 壳 - CoolShell 我们需要专职的QA吗? | 酷 壳 - CoolShell 谈谈数据安全和云存储 | 酷 壳 - CoolShell 需求变化与IoC | 酷 壳 - CoolShell 再谈javascript面向对象编程 | 酷 壳 - CoolShell 千万别惹程序员 | 酷 壳 - CoolShell 由一个问题到 Resin ClassLoader 的学习 | 酷 壳 - CoolShell 腾讯,竞争力 和 用户体验 | 酷 壳 - CoolShell SteveY对Amazon和Google平台的吐槽 | 酷 壳 - CoolShell 千万不要把 bool 设计成函数参数 | 酷 壳 - CoolShell 重构代码的7个阶段 | 酷 壳 - CoolShell 10个必需的iOS开发工具和资源 | 酷 壳 - CoolShell 你确信你了解时间吗? | 酷 壳 - CoolShell 为什么Scrum不行? | 酷 壳 - CoolShell 一个空格引发的惨剧 | 酷 壳 - CoolShell 一些软件设计的原则 | 酷 壳 - CoolShell 再谈“我是怎么招聘程序员的”(上) | 酷 壳 - CoolShell 超强的验证码 | 酷 壳 - CoolShell 我是怎么招聘程序员的 | 酷 壳 - CoolShell 到处都是Unix的胎记 | 酷 壳 - CoolShell 谁写了Linux | 酷 壳 - CoolShell 在线代码编译服务Codepad.org | 酷 壳 - CoolShell 简单实用的Code Review工具 | 酷 壳 - CoolShell
再谈“我是怎么招聘程序员的”(下) | 酷 壳 - CoolShell
陈皓 · 2011-04-20 · via 酷 壳 – CoolShell

<<<再谈“我是怎么招聘程序员的”(上)

在上篇中,我们说到了一些认识人的方法(操作,知识,经验,能力),还有一些面试的方法(算法题,实际生产活动中的挑战),下面我们来说说,面试的风格,还有一些点评。

把应聘者当成你的同事

有些公司的面试官,在面试过程中问你一个算法题,然后等着你解答了,如果你给出一个答案,然后就会问你有没有更好的答案,如果你给出了正确的答案,他们就会问你一个更难的问题,如此循环下去。他们基本上很少给你提示,甚至不停地质问你,挑战你,搞得应聘者很紧张。

另外,有很多问题是没有标准答案的,或者说是,同一个答案的描述方法有多种,很多面试官会觉得你没有回答到他想要的答案,因此表现得有对你不屑,并表现出你不行的样子,并觉得你的能力有问题。真是可笑了。比如我一个朋友在回答什么是异步的问题时,举例说明了异步调用就是不能处理完就返回,并且需要传递一个回调函数给调用方以便完成后回调通知结果。这样的回答并没有错,但是这并不符合面试官心里想要的答案,面试官对此并不满意,进而认为我这个朋友还需要去多读读书。

我相信大多数面试官都会这样干的。我想问问这样的面试官,你们有没有用面试的方式对过你的同事?在你的工作场景中,你会不会用面试的风格和你的同事进行交流和说话?不妨让我们来问我们自己下面几个问题:

  • 你在工作当中遇到难题时你是怎么解决的?你会和人讨论吗?你只用15分钟就能得出最优解吗?
  • 你在工作当中解决难题时是否会有一个人在旁边质问你并给你压力吗?
  • 你在工作当中会为难你的同事吗?会让你的同事紧张吗?你觉得在紧张的状态下能做好工作吗?
  • 你在工作中觉得同事的回答并不是你想要的答案,不是符合你的答案,你会认为你的同事不行吗?
  • 你的成长过程是什么样的?在是压力和天天被人质问的情况下成长的吗?
  • 大家都知道学校里应试教育的弊端,你觉得你的面试是不是一种应试呢?
    (看看这么多的应聘者们都在做各种各样的算法题,这不就是一种应试吗?)

想一想你的日常工作,问自己一下上面这些问题,想一想你自己的成长过程,想一想你和你的同事是怎么相处的,想一想你的日常工作中是什么样的,相信你自己也能得出结论的。

如果你把应聘者当成自己未来的同事,那么你的面试会有下面的收获:

  • 面试的气氛会很不错,应聘者会放松,表现自然,更接受于真实的状态。
  • 面试中的交流和互动(而不是一问一答)会让你更全面的考查和了解一个人。
  • 非应试的面试,会让你了解得更多。
  • 真实的了解一个人,你才能做出真正正确的结论。

向应聘者学习

下面有几个观点

  • 面试的过程是一个相互学习的过程,并不是你为难面试者的过程。
  • 一问一答是很一种呆板死板的过程,相互讨论相互学习,有良好的互动才是好的面试过程。
  • 面试官要证明的不是你有多强有多聪明,而是要挖掘应聘者的优势和能力。
  • 面试官用为自己的问题预设好一个标准答案,看看应聘者能为你带来什么。
  • 向来应聘的人学习,而不是刁难。

无论你多牛,要难倒你实在是太容易了。出难题不是目的,难倒人也很容易,出难题只不过是用来了解应聘者能力的一个手段,而不是面试的全部

我不知道你喜欢不喜欢一些竞技类的运动?比如踢球,打篮球,羽毛球,下象棋等,你一般想和什么样的人玩?是差的,还是强的?所以,能够从面试者那里学到东西,喜欢和面试者一起工作,这才是面试真正的目的

对于一个团队来说,如果大家都是一样的想法,一样的主张,一样的倾向,那么这个团队最终会是一个闭塞的团队,你如果不能真正接纳不同想法的人,不同主张的人,那么你也将失去进步的机会。如果你的团队总是在招入和你一样的人,那么你的团队怎么可能会有out-of-box的想法呢?世界因为不同而美好

另外,对于公司来说,如果你招进来的人还不如已经有的人,作为一个公司,你又怎么能有更好的人让你的公司进步呢

所以,面试应该是向面试者学习的一个过程。当然,如果你从他身上学不到什么,那么你就教他一些吧。这样,就算是面试不通过,面试者也会欣然接受的。不然,让面试者产生一些负面情绪,出去说一些不好的话,也有损你和公司的形象。

一些相关的点评

下面是我根据酷壳的一些面试题的文章后的回复、还有我朋友的经历,还有这篇有关豆瓣的产品经理的这篇文章的一些点评。大家可以看看我从这些地方看到东西靠不靠谱。

酷壳的面试题中的答复

先说酷壳的那篇“火柴棍式的面试题”,这个面试题其实很没什么意思。主要考查你对代码逻辑的了解程度。因为设置了回复可见答案,所以这篇文章的回复量达千把条。从回复中,我看到:

  • 一些朋友想不出来就直接看答案了。我可以看出,有一些朋友习惯获得知识,而不习惯独立思考。甚至有畏难情绪,从另一方面来说,可以看出我国的教育还真不是一般的差。
  • 一些朋友想不全。从这点来看,我觉得很正常,尤其是想出两种来的,我可以感觉到他们的努力思考了,可能还做了一些尝试。挺不错的。可惜我看不到你思考的方式,是在纸上画了画,还是编译了个程序跑了跑,还是别的什么。这样我会了解你更多。
  • 一些朋友给出的答案中有错的。这说明了这类朋友可能不喜欢做测试,时常想当然,或是做事比较冲动,并不足够严谨。这么简单的程序,验证能花多少精力呢?
  • 还有少数的朋友没有看明白题目要求。这说明了这类朋友太粗心了,在工作当中可能会表现为误解需求和别人的话。沟通有问题。

再说说那篇“火车运煤”的问题,这个面试题我觉得主要是看看大家的解题思路,表达能力。

  • 首先,我很惊喜有人很快就用数学做了解答,很不错,这个人的数学功底很不错。能用数学解题的人一般来说都是算法比较强的人。
  • 有人说抱怨我没有说火车可以调头回去,所以没有想到这样的方法。如果是在面试中我会做提示的。我不会因为你不知道调头这个潜规则而否定你的。当然,如果你能想到的话说明你的脑袋还是比较灵的。
  • 还有很多人说他的方法比较土,只运了400吨煤,416吨的或333吨,一看就是没有看提示的,我觉得这些人能够通过独立思考找到方法,这类的人其实已经不错了。顺着这个思路优化也只是时间的问题了。
  • 更可喜的是,我看到了有一些朋友在看到别人的更好的方法后和自己的方法进行了比较,并找到了为什么自己的方法不如他的原因。这样的人我认为是懂得“总结”和“比较”的,这样的人总是在不断地学习和改善自己的。
  • 还有人说到了动态规划,如果是在面试的时候,我很想向这位朋友学习一下用动态规划来解这题。
  • 还有朋友说到了火车调头只能在有站的地方。这个朋友一看要么就是搞需求分析的人,要么就是较真的人。需要进一步了解。但不管怎么样,这样的朋友的观察能力是很不错的。
  • 还有一些朋友给出的答案是正确的。但是表达方面比较复杂,有些没有看懂。可见,解题 的能力是有的,只是表达能力还有待提高。

豆瓣产品经理的面试

再说说豆瓣上的这篇文章,那篇文章里,面试官问了一个比较大的问题,那是仁者见仁,智者见智的问题,并且面试官并不满意应聘者给出的答案,并在用其主观意识强加一些东西给应聘者,并不断地和应聘者纠缠。后来,面试官回复到“重点测了两个问题:一是判别事情的标准和方法;二是在多种PK下产品经理的压力反应”。

下面是我观察到的:

  • 其一、这种似事而非的仁者见仁,智者见仁,一万人有一万个答案。所以,这种怎么答都可以的问题是很难有标准的,我认为豆瓣的面试官以这种问题来考查面试者的标准太有问题了。更好的问题是:比较一下新浪和twitter这两个产品。
  • 其二、多种想法PK的压力反应。这点没有问题,如果有机会我想问问这位面试官,豆瓣产品经理们的PK各自的想法时是以这种纠缠的方式吗?如果是这样的话,那我很为你们担忧啊。
  • 其三、很明显,应聘者不知道面试官想说什么,所以应聘者总是给出一些模棱两可的回答。回答得很政客,呵呵。
  • 其四、问的问题都是一些假设性的问题,假设技术人员不可沟通。人家说了,还没有见过不能沟通的情况。结果还要继续追问。这样你既要观察不到你想要的,也搞得大家不愉快。更好的问题的:“请你给一个你和一个很难沟通的人沟通的示例”,或是当应聘者说了“坚持己见”的时候,也应该追问“能给一个你坚持己见的例子吗?”。
  • 其五、整个面试过程完全是在谈一些虚的东西,就像天上的浮云,一点实实在在的东西都没有。比如下面这两个实实在在的问题:“你以前设计过什么产品?”,“你和你的技术团队是怎么合作的?”

这是一个完完全全失败的面试,这个面试官根本不懂面试,甚至工作方法也可能很有问题。也许他只是想找一个能够在工作中附和他的人。

朋友的面试

最后说说我那个朋友的面试,我的这个朋友学习能力很强,也很好专研,工作中解决了很多很困难甚至很底层的问题。他做软件开发时间并不长,但是他对这个行业很有热情,也很执着,并有着相当不错的技术功底。这天他遇到了一个面试官,根据朋友的描述,这位面试官,主要问题了三个问题,一个是关于异步的,一个是关于性能调优的,还有一个是关于学习能力的。

  • 问到异步的问题,我这个朋友说到了多线程中的异步调用,但是他可能问的是网络或是业务中的异步,要不然就是Linux 内核中的异步,当然他也没有说清楚,但他很不满意我朋友的答案,并让我朋友回去多看看书。
  • 问到性能调优的问题时,我这个朋友说了性能调优分三级,业务级,指令级和CPU级,并举例说了使用了一个叫VTune的性能分析工具。面试官却说原来你只懂Windows,有点不屑,并说他只会使用商业工具,更不屑。
  • 当我朋友向他澄清问题时,面试官只是摇头,叹气。并在应聘者作答的过程中不断的打断对方。

我的看法如下:

  • 对于异步来说,我认为这是一种设计或是一种想法,可能会有很多种不同的实现方式,在不同的场景中会有不同的用法。面试官并没有考查应聘者对异步方法的理解,也没有考查异步方法可以用来解决什么,异步方法的优势和劣势,等等。只是觉得应聘者没有给出他想要的答案。
  • 对于性调优的问题,我认为应聘者的思路和知识都很不错,还有使用VTune的经验。无论使用Windows还是Linux,无论使用商业的还是开源的Profiler,很多东西都是相通的,怎么能够因为这个东西不对自己的口味而下结论。为什么不向人家学习一下VTune呢?使用工具只是操作技能啊。
  • 面试官应该是用微笑来鼓励应聘者的,而不是用摇头和叹气,频繁打断对方也是一个相当不好的习惯。看来这个面试官很不能接受不同的东西。

这位有很不错的技术能力的人,看来并不适合做一个面试官,因为他面试的东西都只在知识层次,而且这位面试官有强烈的喜好和倾向,所以,他必然会错过那些有能力但并不合他口味的人。

哎,面对这样的面试官,大家伤不起啊!

(全文完)

(请勿用于商业用途,转载时请注明作者和出处)

Loading...