有人提问: 看了很多的面试题之类的,感觉虽然自己数据结构与算法基础知识很扎实,但还是做不出来,所以请高人指点。
这个问题看似迷惑, 其实提问的人搞混了两件事 - “数据结构与算法基础知识很扎实": 知识; “在实际面试中解决问题": 能力。 知识和能力是两码事。
知识和能力的例子1:
知道圆周率pi 小数点后面20位甚至100位: 知识
看到一个不规则的圆柱体, 能估算出它的体积: 能力. 这个时候, 我们用 pi 约等于3 都可以解决问题。
知识和能力的例子2:
一些在校学生都有鲲鹏之志, 都觉得自己自己怀才不遇, 流落至此, 一旦逃出樊笼, 定可大显身手。 有些时候, 大家都知道你有某些知识, 都成了众所周知的事实 – common knowledge.
但是你有没有越狱的能力, 和在监狱外独立谋生, 实现梦想的能力呢?
知识和能力的例子3:
三个代表到底是哪三个: 知识
三个代表如何抓贪官, 平房价, 立法制: 能力。 在其位者为什么做不了呢? 非不能也, 是不为也。
扯远了, 扯远了…
咱们说什么来着?
基础知识很扎实 - 但是面试就是做不出来, 怎么办?
BBS上就有一个靠谱的回答:
你好,我以前也觉得自己算法不错,有认真学过数据结构,看过算法的书,但是后来再准备找工作面试的时候一开始遇到问题也发现无从下手,主要遇到两个问题,不知道是否跟你的情况一样。
一个问题是有些知识在自己感觉里理解了,但是遇到实际的题目要深入细节了,却使用不上这些知识。比如n个元素的数组,取前m大的元素,这个题有一个思路是利用快排的思想,每次partition把数组分成两类:大于partition元素的,小于partition元素的,然后递归地根据两类中元素的数量与m的关系再某一类中再做partition(当然这只是一种思路),我们会快排的算法了,但是如果没有真正理解到它的思想,往往给不出这个思路。所以说在学习算法的时候建议是不要流于表面,要认清算法的本质思想。这里当然推荐看英文版的算法导论,比如我看了里面动态规划的四个题目以后,可以根据里面的讲解举一反三,得到一些规律性的东西,收获颇丰。还有就是邹欣老师主编的《编程之美》,里面的题目解法思路很详细,给人很多启发。
另一个问题是有些题目会做,但是一提笔写code就遇到障碍,就是不习惯在纸上写code,严重依赖IDE,这个问题只能通过多写多练来克服了。这里我推荐topcoder,这个site上有和北大online judge一样的在线做题系统,你可以在上面脱离IDE而用类似记事本的方式写code,同时里面的题目也有不同层次的,开始可以做一些SRM里面DIV1的简单题目,慢慢的练习使得code一次写完编译通过,然后再开始做难一点的题目。当然也要在白纸黑字上写,我写了五六公分厚的16开纸的code,最后终于在笔试面试时可以写得非常顺畅了。。。
以上是我准备笔试面试过程中的一点经验,最后也拿到了理想中的offer,希望对你能有帮助,欢迎拍砖~
下面是摘自 《编程之美》 一书中有关面试的内容
背景
每年从金秋九月起,校园里的广告栏中、BBS上的招聘信息就逐渐多了起来。小飞是一名普通高校的应届计算机专业毕业生,他勤奋好学,成绩中上,爱好广泛。看到身边的同学都在准备精美的简历,参加各种各样的招聘会,笔试、面试,他也坐不住了。他在BBS上看了各式各样的“面经”,也挤过招聘会上的人潮,长叹:“行路难,行路难,好工作,今安在?”
小飞从网上了解到了有关招聘的各种术语,他整理了一个列表:
名词 | 解释 |
面经 | 面试的经历。 |
默拒 | 投了简历,进行了面试,但是公司从此再也没有消息,询问也不回答。 |
Offer | 公司给学生发的入职邀请。 |
群殴 | 通常指一群人一起参加面试,一般以多对多的形式同时进行,最后总是会有人被不幸淘汰,这一过程就叫做“群殴”。 |
听霸 | 凡校内招聘演讲会都出席旁听的。 |
投霸 | 凡公司招人都投简历的。 |
笔霸 | 凡投出简历都能得到笔试机会的。 |
面霸 | 凡参加笔试都有面试通知的。 |
巨无霸 | 在招聘过程屡屡被拒、机会全无的,江湖人称“巨无霸”! |
霸王面 | “霸王面”指没有获得面试资格,却主动找用人单位,要求面试的人,源自吃饭不给钱的“霸王餐”,即“没机会面,创造机会也要面”。 |
小飞获得了一个在微软亚洲研究院实习的机会,在工作中认识了一位有丰富招聘经验的研发经理。他对经理进行了非正式的采访,希望能得到第一手的“内幕”消息。下面就是小飞整理出来的问答。小飞的问题用Q来标注,经理的回答用A标注。
典型面试
备注:在本文中,应聘者(英文为:candidate, interviewee)指应聘公司职位的学生或其他社会人士;面试者(英文为:interviewer)指公司里进行招聘和面试的人员。
Q: 经理,您好。我就开门见山,能否分享一下当年您第一次去面试的故事?
A: 好,大学毕业后,我进入了学校“产业办”开的公司。有一天,一家美国公司(我们姑且叫它H公司)来招人,这是我的第一次面试。那个公司的代表和我寒暄之后,递给我一道题目,题目大意是“写一个函数,返回一个数组中所有元素被第一个元素除的结果”。我当时还问了一些问题,以确保理解无误,所谓clarification是也。那位面试者简单地解释了一下,然后就在电脑上敲敲打打,也不理我了。我想这也不难,如何能显示我的功力呢?于是我就把循环倒着写 for (i=n; i>=0; i--),因为我当时看到一本Unix书上是这么写的。
转载于:https://blog.51cto.com/softwareeng/1562999