怎样在技术面试中刷掉牛逼的程序员 | Career Engine



怎样在技术面试中刷掉牛逼的程序员 | Career Engine

Homebrew 的作者 Max Howell 发了一条推,说因为没法在白板上手写翻转二叉树的算法,没通过Google面试。


我们曾经画过的这期漫画,描写了不少面试失败的奇葩案例。没想到在Google又出现了。有人说算法很重要,有人说算法不重要也能写程序。在不同的背景下,这两种完全相反的观点有可能都是正确的。大部分公司招聘工程师都会有算法面试,但这种面试并不是考验如何背诵算法实现,这对于刚应付过一堆考试的应届毕业生实在太容易了,对于工作10年的资深工程师反而不那么简单。算法面试真正目的,并不是要一个标准答案,而是让面试者和面试官一起聊聊一个相对复杂问题的解决方案。这个过程会有很多考察的点,在技术和思考模式之外,甚至可以考察性格和表达能力,或者合作精神。


可惜大部分公司的面试中,算法面试当然是有的,可是只是冷冰冰的做一道题,面对的是HR。他们当然不懂实现过程,就看一下能不能做出来,做出来结果跟标准答案是不是一样。漫画里面提到的,翻转一个单向链表,标准答案是递归,辛苦实现了迭代算法的面试者反而被淘汰,这种事情是真实发生过的。


当然了,另外一种极端看法是根本没必要考算法,因为工作中压根用不到。事实上,没有什么程序不用到算法,只不过算法常常被封装到库里面,程序员并不去关心实现而已。(如果碰上一个每个算法都要自己实现的家伙,你要小心了,这家伙很可能让项目变得一团糟)很多公司会用讨论一个更具体的问题方式来替代算法面试,效果也不错。但没必要关心算法,甚至鄙视精于算法的程序员,这种观点显然是错的。


算法面试这种面试形式,和算法本身一样,要明白为什么这样做,这样做的意义是什么,才有可能正确得使用它。但不幸的是,我认为HR部门通常不具备这个能力,需要有经验的工程师才能有效果。


当然,如果公司使用算法面试的目的是筛掉一些候选者,降低面试成本,这就是另外一回事了。


Read full article from 怎样在技术面试中刷掉牛逼的程序员 | Career Engine


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts