IT外企面试问题(二)
承接上文:
二类企业
二类企业其实薪水已经非常不错了,毕业就能进入此类企业的程序员也多是学校中的优秀分子。
此类企业注重程序员的基础,认为只要基础好,他们愿意培训并培养程序员,给你机会进行学习。
此类企业招聘的时候,职位有可能是不太确定的,可能是java,可能是c++,可能是windows,可能是linux,他们认为只要你基础好,语言不是问题,平台不是问题,培训一下上手会很快。
记得面试一家与通信有关的欧企,面试官开始问了很多c/c++的基础知识,后来问了很多操作系统和计算机网络的基础知识,最后说,他们是需要有通信背景的,然后连问我三个有关通信方面的问题,我都说不知道,最后只有坦然承认,通信我确实一点都不懂。后来我认为我是彻底没希望了,没想到后来竟收到了他们的offer,并在入职后进行了长达两个月的通信方面的培训,后来我问我的面试官怎么回事,他说,你的c/c++,操作系统,计算机网络的面试题几乎都对了,我觉得你的基础不错。
所以要进入此类的企业,有关基础方面的书还是要认认真真,仔仔细细的看,下面推荐一部分:
? c: 《the c programming langage》
? c++:《thinking in c++》,《the c++ programming language》,《effective c++》,《more effective c++》,《exceptional c++》,《more exceptional c++》,《inside the c++ object model》
? java:《thinking in java》,《core java》,《effective java》,《java puzzlers》,《java network programming》,《java concurrency in practice》,《深入java虚拟机》
? windows:《windows核心编程》,《windows internals》
? linux:《advanced programming in the unix.environment》,《understanding linux network internals》,《unix network programming》
? network:《tcpip illustrated volume i》,《the linux networking architecture》
我没有在装b,也不是看过以上所有的书,不过上述书籍的确是程序员必藏书,我也只不过是在用到的时候翻开相关章节看看。
然而给大家的建议是,在做项目的时候,千万不能够做什么就只知道什么,与此相关基础知识也应该多看一些。面试的时候也经常遇到这种情况,就是面试者号称做过socket,问到tcp/ip拥塞控制却一无所知,会简单使用socket client端和server端几个简单函数人太多了,如何保证你能够脱颖而出呢?
其实很多事情我们觉得不可能,但是这个世界上就是有牛人确实做到了,比如英语六级能够考99分(满分100),就是把答案全给我,就让我写作文,我也做不到啊,再如高考满分750分,山东的状元730+分,也就意味着数理化全对,语文140+,英语140+,我的天,也是把答案给我,就让我写语文和英语的作文,我也做不到啊。
然而读以上书籍却没有上面两个例子难的不可想象,我所知道的身边的人就有c, c++, linux, network这几个分支全读过的,而且不止一个。
能进入二类的企业,混个中层,也能过上满不错的生活了。
一类企业
一类企业薪水非常高,毕业就能进入的可以说是学校中的佼佼者了,一般会名校背景,名企实习,甚至有过获奖的才能够进入。
此类企业除了注重程序员的基础之外,更加重视程序员的思想,算法及聪明程度。
所以很多奇奇怪怪的面试题在网上都流传出来了,这些题目真可谓费尽心机。面试过程长达n轮,每轮都可能因为疏漏和状态不佳被刷掉,最后剩下的几近完美。
在面试中,程序是要当场在黑板上写出来的,很短的时间,要求很强的健壮性,面试官还会在旁边施加心理压力,你确定吗?要注意。
虽然问题是经常外流的,然而新的问题却是不断的会出,可能是因为工作中有些需要解决的问题,自己想了一天多才想出的解决方案,却抽象出来考别人,让别人在很短的时间作出来,这种心理开始很爽,后来觉得很罪恶,多少有些原来自己穷,受富人欺负,后来富了又欺负穷人的味道。
有些人会质疑,这些精巧的算法在工作中真的能够用到很多吗?答案当然不是。
这其实是一个供需的问题。马克思告诉我们,商品的价格是由价值量决定的,商品应该以价值量为基础,实行等价交换。西方经济学告诉我们商品的价格会随着供需关系的变化而变化。当供需矛盾相当大的时候,商品的价格就会远离价值量。
《经济学的思维方式》一书中写到,所有的稀缺品都需要以某种方式分配,必须建立某种规则和制度,对那些要求得到稀缺品的人加以甄别,决定谁该得到多少。价格只是最常用的一种方式。
想想我们的高考吧,那些千辛万苦考上清华的学子毕业后又有多少高中的知识留在脑子里呢?学到的东西又有多少是能够在实际中用到的呢?其实很少,高考分数不过是进入清华的一个价格而已,已经由于清华只有一所,考生却有千百万这样的供需差别远远的偏离了使用价值,毕竟能够轻松看懂教科书的人太多了,他们只能够不但要全会,还要全对。
进入一类企业也是同样的,能把我上述书籍都看完的人是大有人在的,仅仅基础知识已经不能够甄别想进入一类企业的人们,所以需要奇奇怪怪的算法题。
要进入一类企业,《算法导论》这本书必不可少,要前前后后仔细的看,而且应该不止一遍。《编程珠玑》也是一本不错的书,其中的例子可以常常的回味。《编程之美》也不错,更贴近面试,更实用一些。其实更重要的是top coder,就是多看多练。
其实考入名校基本就是一种方法,多做题,以便在考场中看到题目就能够有思路,考场的时间仅仅用于保证正确率就可以了。
进入一类企业也是一样,要想很短的时间,在很大的压力下写出健壮的程序,其实只有一种方法,就是类似的题目遇到过,思路是马上就有的,在会议室的时间仅仅用于保证健壮性就可以了。
曾经一段时间,对精巧的算法十分的崇尚,甚至引以为豪,然而后来慢慢发现,天天沉浸在算法之中,沉浸在计算机的小天地里面,又对社会做了什么贡献呢?难道自己的才能,抱负就仅仅放在这些数字的技巧当中吗?
我们不应该像孔乙己一样研究茴香豆有几种写法,而是应该如阿朱《走出软件作坊》中描述的一样,虽然方案不是完美和精巧,然而逢山开路,遇水搭桥,真正的解决一个个的问题,作出一些可以影响人们生活的软件。
(完)
上一篇:迷惑面试者的面试问题
下一篇:你是否愿意做常规工作