怎样花两!年!时间去应聘互联网公司

本文是对“怎样花两月时间去应聘互联网公司”一文的一点回复。并不是针对lz个人,语气如果不中听也请莫见怪。

首先,现在的互联网行业还很年轻,在招聘的时候因为面试官甚至公司整体对招聘标准都还没个清醒的认识,所以存在很多混乱的地方。 但是如果因此就急就章似的搞什么速成,针对行业的漏洞投机进去混口饭吃,那么不管是对公司还是对自己的职业生涯都是很不负责的行为。

互联网行业技术人员的工作又不是看看报纸喝喝茶的闲差,靠拍马屁基本上也没什么前途可言,就算你找到敲门砖钻进了这个行业迟早也是原型毕露。耽误青春之后苦苦挣扎着想转非技术,然后像某帖里的“前辈”一样教导后来人“不能靠技术生存一辈子”,何苦来哉?


其次,招聘和考试不一样,没人会按照“1、50分的算法和C语言,2、15分的项目分,3、15分的知识面和扯淡分,4、10分的开发语言细节分,5、5分的其他。 ”这样给人打分。

更常见的做法是每个面试官对招聘对象各方面的能力有个最低要求,然后在满足所有这些要求之后寻找candidate闪光的地方。

今天director开会的时候给出来的一个半开玩笑的问题列表是这样的:
1. Coding是否足够好?
2. 如果#1的答案是否,那么回到#1
3. Problem Solving怎么样?聪明么?
4. 如果3的答案是否,那么回到#3.
5. 考察领域知识背景,项目经验,性格,领导力,沟通能力,etc

如果coding很烂,挂掉;如果不会Critical Thinking,挂掉;项目经历可以烂但是如果描述不了或者对具体技术掌握的不清楚经不住问,挂掉;沟通能力太差,挂掉……

这里面的每一项,在稍微有点经验的面试官面前,都不是两个月时间可以补回来的。你的代码有多干净漂亮,你的命名风格是否合理,你做了多少边界检查,你写不写注释,你能不能解释清楚你接口设计的理由,你用异常还是用返回值,你为什么做这样的决定,你清楚你算法的时间复杂度么,你清楚你实现的空间复杂度么,你能给出证明么?你两个月能突击出来这些么?

那么,有什么捷径么?

很遗憾,没有。你想做什么行业,你对这个行业的准备,你能否进入这个行业,拿到什么级别的薪酬,在很久以前就已经决定了。这篇帖子对偶贴的作者,如果没有花那么多时间做上“10几个玩具似的小网站”,而是把他可以用以闲扯的“PageRank,搜索引擎倒正排索引,数据库优化,web性能优化,浏览器渲染,etc”这些话题里的随便哪一个做得精深一点。他可能就可以有一份更简洁却更闪光可以通得过他心仪职位筛选的简历,并且以对某项技术的傲人理解获得面试官的青睐了。

在这个时候说这样的话特别令人沮丧。可好消息是,不管你是已经接近求职尾声,还是为了来年、后年的求职准备来翻帖子的在校生,我们都还很年轻。我们现在都还有的是时间开始,为了我们真正想做的事情,做最充分的准备:)

怎么做?我想我的同事刘未鹏同学说得比我更多,也远比我更好。所以还是读读他最近的长文《怎样花两年时间去面试一个人》吧。



http://mindhacks.cn/2011/11/04/how-to-interview-a-person-for-two-years/
--

节选,拉书单

刚才我就收到一位同学邀请我上知乎回答一个问题“找工作的首要原则是什么?”,当然,这个问题的答案是:“弄清雇主的需求到底是什么”。

列一下我所认为的,你面试微软前必须要读的十本书:

Code: The Hidden Language of Computer Hardware and Software (《编码的奥秘》)
Computer System: A Programmer’s Perspective (《深入理解计算机系统》) / Windows via C/C++ (《Windows核心编程》 / 《程序员的自我修养》
Code Complete 2(《代码大全》)/ The Pragmatic Programmer (《程序员修炼之道》,我也把这本书称为《代码小全》)
Programming Pearls (《编程珠玑》) / Algorithms / Algorithm Design / 《编程之美》
The C Programming Language
The C++ Programming Language / Programming: Principles and Practice Using C++ / Accelerated C++
The Structure and Interpretation of Computer Programs (《计算机程序的构造和解释》)
Clean Code / Implementation Patterns
Design Patterns (《设计模式》) / Agile Software Development, Principles, Patterns, and Practices
Refactoring (《重构》)

(注:1. 以上同一条目下用“/”隔开的表示任选,当然你也可以都读了,相信我,时间是足够的。2. 读这些书并不意味着逐字逐句从第一页读到最后一页——当然你也可以这么做。怎么是聪明高效的读法,可以参考我之前写的关于如何阅读和查找/鉴别书籍/资料的博文)

注意:以上是我个人认为你面试微软开发职位前必须要读的10本书,它不代表我的雇主的观点。它也只是一个初步的书单,肯定会受到我个人经验和眼界的限制。欢迎大家提意见。

此外,IT不同子领域的必读书单可能千差万别,所以在发布之前我把这篇文章发给了一些朋友,他们给出了自己的书单(你是不是能看到一些有趣的共同点呢):

云风(中国游戏编程先行者,前网易游戏部门资深程序员,简悦创始人):

如果面试,我会挑以下的我自己读过的书,让人选择他也读过的部分,再了解他对这些书的理解。这些书其实本质上就是两类,对所面对的东西(程序语言也好,操作系统也好,底层设施也好)本身的理解程度。以及另一类:对设计思想和原则的理解:

C++编程思想
Effective C++
深度探索C++对象模型
C++语言的设计和演化
C专家编程
C陷阱与缺陷
C语言接口与实现
Lua程序设计
Linkers and Loaders
COM本质论
Windows核心编程
深入解析Windows操作系统
程序员修炼之道
代码大全
UNIX编程艺术
设计模式
代码优化:有效使用内存
深入理解计算机系统
深入理解LINUX内核
TCP/IP 详解

冯大辉(丁香园CTO,贝塔咖啡创始人):

软件随想录
黑客与画家
重来
UNIX编程艺术
编程人生

洪强宁(豆瓣技术总监):

StackOverflow上有一个程序员必读书单帖子,这里仅列出top10,更多参考这里。

Code Complete 2
The Mythical Man-Month (《人月神话》)
Code: The Hidden Language of Computer Hardware and Software (《编码的奥秘》)
TAOCP (不解释)
The Pragmatic Programmer (《程序员修炼之道》)
Design Patterns (《设计模式》)
The Structure and Interpretation of Computer Programs (《计算机程序的构造和解释》)
Refactoring (《重构》)
The C Programming Language
Introduction to Algorithms (《算法导论》)

郑昀(窝窝团研发副总裁):

工程师入门:
Code Complete 2
程序员修炼之道
深入理解计算机系统
工程师升级:
设计模式
重构——改善既有代码的设计
工程师转型:
快速软件开发——有效控制与完成进度计划
人月神话
IT项目管理那些事儿
软件随想录
最后期限
走出软件作坊
你的灯亮着吗?——发现问题的真正所在

张峥(微软亚洲研究院副院长):

Algorithms (by Sanjoy Dasgupta, Christos Papadimitriou and Umesh Vazirani)
Data Structure and Algorithms
The C Programming Language
The Design of the UNIX Operating System
Compilers (龙书)
Computer Architecture: A Quantitative Approach
Flow
Outliers (why hard work and luck are both important)

邹欣(MSRA创新工程中心首席研发经理):

关于创新的书籍(http://book.douban.com/doulist/1253169/):

The Myths of Innovation
The Innovator’s Dilemma
The Innovator’s Solution
Crossing the Chasm
Inside Intuit
盛田昭夫
杰克·韦尔奇自传
梦断代码
Innovation
浪潮之巅

你可能感兴趣的:(怎样花两!年!时间去应聘互联网公司)