牛人博客汇总之摘抄二

http://blog.csdn.net/zjf280441589/article/details/16878347

无坚不摧——完整项目

“当他说他是OpenCC的作者的那一刻,哪个面试官不被秒杀。”
当然你不需要NB到这个程度。如果你能对面试官说:“我读书期间做的项目有x万行代码。Google关键字xxx可搜到该项目的演示视频”,就足够了。
程序员的所有技术能力都能在一个完整的项目中得到淋漓尽致的体现,因此胜过千言万语的自我推销。所谓的完整项目应该满足以下条件:
1、 完整性 。具有一定的功能,或者解决了某个问题,具有一定意义。
2、 难度 。  使用或者研究了一些较新技术,或者有一定价值的技术含量或研究内容。
3、 工作量 。是一个需要浇筑一定心血的产出品。

因此,当你决心把一个项目写入你的简历中,你就一定要能回答出面试官的如下问题:

1、你负责了哪一块?
这个问题是想知道这个项目里究竟有哪些代码是你写的,尤其是多人合作的项目。你必须强调你所做的工作。
问题就出来了。很多时候我们参与的项目,他的架构、核心技术你并不熟悉,而仅仅是写了部分逻辑代码,那怎么办呢?
解决办法是,花时间去了解项目的核心,对项目的整体有清晰的认识,至少要达到能够表述的很清楚的程度(简单的说就是能吹的很有说服力。回想你答辩的情形)。
如果你做的那一块确实微不足道,而且你也无法表述项目全局,那就放弃提及这个项目吧,否则只能让面试官越看你越觉得锉。
2、你用到了哪些技术?
这是最好发挥的一个问题。你可以介绍项目用到的每个开源库,也可以介绍你用到的源代码管理工具(如SVN、GitHub),调试工具(如WinDbg)甚至项目管理工具(UML工具、VS Project等)。总之,这是一个很好表达你的项目综合能力的机会。
如果上面的都不出彩,那尝试从你的项目架构、设计模式、接口设计等方面入手。总之要站在一个较高的角度,空谈项目的业务需求和逻辑意义不大(当然,充满创意的项目除外)
3、你遇到的最大问题是什么?如何解决的?
这个问题是最重要的,也是最具有回答技巧的问题。你必须说出一个听起来确实很难解决,但你确实又解决(或者避开)的问题。
如果你实在没有头绪,或者你觉得项目确实太简单,没发现困难问题,不妨从这些方面思考:
有网络功能的项目,考虑网络传输效率和网络同步等问题;
有多线程、多进程的项目,考虑他们之间的同步/互斥、负载、调度问题;
需要处理大数据的项目,考虑数据预处理、数据调度等问题;

如果这个项目出了论文,那么尝试描述论文解决的问题;

你解决问题的渠道,如MSDN、CSDN、开源社区的论坛、国外技术论坛、文档手册等。

面试官想要听到的,是你发现问题、分析问题、寻找解决方案、最终解决问题的思路与方法。细节并不重要,因为他也未必能完全弄懂每个技术细节。

总之,一个完整的项目能让你充分的表达你的技术能力。在项目这一块上,你需要下足功夫。

如果很不幸你没有,那么请往下看。

深厚内功——坚实基础

一般第一轮技术面都是来考察你最基本的技术功底。

招聘季节,随处可见抱着厚厚的《程序员面试宝典》啃的学生。偶尔也能看见《编程之美》《剑指Offer》的神书。这些经验书确实有用。但是要想全面的掌握笔试面试的基础考点,还是需要完整的复习。

其实,笔试面试对计算机基础的考察是万变不离其宗的。其考点无非分为:

语言语法 (以C/C++为例)。
指针(数组),函数指针,操作符运算顺序,const(常指针与指向常量指针),static四大用法,字符串(字符数组),字节对齐(sizeof),位运算。秒杀书籍:《C++ Primer》
面向对象
构造与析构顺序、多态、重载、覆盖、C++对象模型等。秒杀书籍:《深入理解C++对象模型》。
数据结构
栈,队列,链表(双向、循环),树,堆,哈希表。
基本算法
排序(最重要的是快速排序)、查找、图算法、贪心算法、动态规划。秒杀书籍:《算法导论》。
设计模式
考察最多的就是单例模式。只因为他实在是太常见又太简单了。秒杀书籍:《设计模式》,《重构》。
数据库
主要是SQL语句与存储过程。

操作系统

进程与线程、互斥与同步、死锁、进程间通信,页表,虚存等。秒杀书籍:《Windows核心编程》,《Unix核心编程》。

计算机网络

ISO七层架构,TCP,UDP,IP地址等。


如果你还有充分的时间,建议认真看上面推荐的秒杀书籍。如果时间不够,就有针对性的去掌握这些考点。
不得不吐槽的是,很多技术不错的朋友,有着很好的项目,反而挂在了笔试的基础知识考察上面。因此不要小看这些考点。该背的还是要死背的。

笔试或者面试如果让你在纸上写程序,会有2种情况:

1、写一个函数或算法。

不要因为题目简单就想在最短的时间写出来。请一定要注意,对所有参数做边界检测和有效检测。这才是考察的重点!

如果一个算法具体实现你记不清了,就写伪代码,在每行代码后加上详细注释。如果是面试,写完以后跟面试官解释说具体的代码你忘了,但是你记得算法思想,因此用了伪代码。

如果具体思想也忘了,就尝试用自己的思路解答问题。总之,尽量别交白卷。

2、设计一个软件或系统。

这种情况不要求你写详细代码。你需要在程序结构、框架、设计模式或者系统架构等方面进行设计。

这种框架性的东西最好先打草稿,想好了再重新画一遍,把每个模块的功能,模块之间的关系、各个模块的功能接口画出来,如果是面试,写完以后给面试官详细解释。


锦上添花——无限潜力

通常技术一面是面基础,二面更多的是双方的进一步了解。如技术方向,技术潜力等。
如果二面面试官不问你技术问题,那么你一定要积极主动的与他沟通,并表达你的意愿。尝试以下几个方向:
1、表达你的技术潜力与热情。
面试官可能会问你一些和技术看上去没有任何关系的问题,比如问你最近在看什么书,学习之余喜欢做什么,常去哪些网站之类的。
如果你说最近在看《诛仙》,平时喜欢玩LOL,你就是在把自己往悬崖上推。实际上面试官希望听到的回答如下:
“我最近在看《C++ Primer第5版》,因为我在项目中用的C++11的特性越来越多了...” 
“我业余时间喜欢看看TED,上面总有很多让我激动的新技术出现...”
“前段时间比较闲的时候,和朋友参加了xxx组织的开发者大会...”
“虎嗅和猎云是我获取IT信息的常去地方...”

回答如此平凡的问题却能体现你的闪光点。你是技术人员,请记住,告诉面试官你时刻对技术保持着激情,时刻关心的IT动态,比你告诉他你是学生会某干部有用的多。(当然非技术人员,或者国企的面试除外!)

但是,一定要如实回答。面试官会针对你的回答进行紧逼追问。如果正好是他熟知的范畴,而你只是接触过而没有认真学习,就会陷入很尴尬的境地。

所以在回答这些问题的时候不用过于急着回答,不妨先想一想,要有能预测到面试官针对你的回答会问什么样的问题的能力。

就像上面的例子,面试官问你最近看的书,你未必要选择最近看的一本书,而是应该选择一本你吃的比较透的,最好还是面试官也会感兴趣的书,这样接下来的交流就能得心应手。

总之,平时的积累才是王道。

2、表达你的技术爱好。
进入正确公司的错误岗位,相当于考上了正确学校的错误专业。
所以请一定要记住,你的最终目的不是要进入该公司,而是要进入该公司你最想去的部门乃至项目组。

所以,试探得知面试官来自哪个项目组也很关键,因为面试官可能跟你想去的项目组毫无关系。技术方向的不对口的面试官面试你,对你是不利的。

这个时候你要清楚的表达出你的技术方向,并注意考虑你想去的项目组收你的可能性。如果发现该组招的人少,或者加入难度大,你需要考虑是否表现出来你有同样的热情加入其他项目组。

不服从分配可能导致你一无所获。你之前面试的表现越优秀,在这一步能够选择的余地就越大。

3、态度和情商。

如果你面试次数多了,拿的Offer多了,通常到了最后一面,有多大的希望能拿到Offer,你心里应该有所感觉。

如果感觉不好,最后一面你需要更努力表达你的优势。最后一面打动面试官的可能往往是你的真诚和热情。

当面试官问你有多少Offer,不要惧怕回答。Offer是企业对你能力的证明。有Offer的学生更容易被青睐。通常如果你有了该公司最大竞争对手的Offer,你可以尝试追求更好的岗位和待遇。但切忌用这个来漫天要价,除非你牛到了他们非要你不可的程度。

T3,Tx类的企业可能会问你一些很奇葩的问题。比如A公司问你他的竞争对手B公司怎么样。

很多计算机专业的学生思维过于死板,说了大实话,比如”B公司是最大的xxx企业“,于是死的很彻底。
你可以说”A公司的优势在与xxx,而B公司的优势在于xxx。不过在我看来,我更欣赏A公司的xxx,因为xxx“
这类企业就是这样。他们的面试和T1,T2企业的面试差别很大,你要学会避重就轻,这不是谎言,而是策略。


写在最后


只要你资质不差,有针对性的进行努力,拿下国内IT巨头的Offer并不难。
最后,请记住,拿下Offer,你的技术生涯仅仅是进入了下一轮新的迭代。
技术之路最公平也最残酷的原因是:没有捷径,需要日积月累的积累,以及对技术持久的热情。



http://blog.csdn.net/zjf280441589/article/details/16878377

http://blog.csdn.net/zjf280441589/article/details/16878411

——————准备的内容——————

要说校园招聘我自己学到什么重要的东西,最重要的有2点——第一个是不要抱死一家公司不放:有个目标是很好的事,但是如果抱着一种“非这家公司不去”的心态,忽略了准备其它公司的笔试、面试,那么一旦真的有闪失,后果会非常严重,我自己在校招初期就是这样遭到很大打击的;第二个是笔试成绩非常重要,一定要重视:以前总有一种错觉,就是觉得只要笔试通过了一个门槛,进入面试那就基本只看面试表现了,后来经过多次经历能明显发现笔试成绩在面试过程中也占着非常重要的地位。

先从大处基本的方面说,如果我重新准备笔试面试,会怎么准备?我现在看来,从大二的最后一次假期开始准备,也不为早。尽早确定自己到底是要读研还是要找工作,尽早有个目标,我心里其实一早就是想直接找工作的,但是奈何一开始父母比较倾向于走保研的路,而我自己当时也觉得其实没有那么不想读研,因此也没有太过准备找工作的事,后来越到临近找工季,越是感受到心里对于直接工作的向往,于是不但放弃直博,连保研也放弃了,可以说是直接把自己推到一条没法后退的道路上。这几个月我看资料、看书的效率实在是大学任何一个时期都比不上的,很辛苦,但是不得不这样!

在准备找工作开始到现在,下面列出的材料大概是在3个月时间内阅读、完成的(我是偏后台开发的):

《Effective C++》,看了之后绝对获益匪浅;

《C++ Primer》,其实我个人不觉得这本书有多么震撼(起码没有Effective C++给我的那种感觉),但是确实是对C++一些细节查漏补缺的好书;

《编程之美》、《剑指OFFER》、《编程珠玑》、《Cracking the Coding Interview》,其中《编程之美》和《Cracking the Coding Interview》看得差不多,《剑指OFFER》和《编程珠玑》大概看了一半。这四本书是准备面试(甚至一部分涉及写代码的笔试题)的非常好的材料,其实很多公司的题目都能在里面找到踪影,看了后要着重记住解题的思路;

leetcode,直接搜索,上面有非常多很赞的题目,既是基础,但是又是十分考验功底的题目,我到现在还十分后悔没有早一点开始刷这个oj,因此只能挑我觉得大部分公司着重考到的题目——所有和链表、树、数组有关的题目。我到目前也就做了50多题,很惭愧,如果全部做完,那么能力肯定会提升一个level。另外,leetcode里面的题目和《Cracking the Coding Interview》里面的风格比较类似,都是非常考验基本功的;

《UNIX环境高级编程》《UNIX网络编程-第2卷》,这两本书是我应聘所有与Linux或者后台相关岗位时觉得很有用的,两本合起来大概用了20天看完,而且《UNIX环境高级编程》的代码全部由手敲并运行过,而且写了一个小程序,里面运用了锁、多线程等技术点,可以对操作系统有个更好的理解,个人感觉是很值得的;

《构建高性能WEB站点》,其实这本书的用途没有想象那么大,当时是为了准备面试中可能碰到的系统设计题而看的,但是看了也很难回忆起比较深刻的东西,主要是没有接触过,理解起来也困难。不过面试过程中也基本没有到那么多,但是还是能作为开开眼界的一本书;

手写插入、冒泡、选择、快速、归并、堆排序,同时敲入了实际代码,其中快排和归并排序练习了几次,已经做到信手拈来,可惜面试中还没碰到直接写排序的,当然了各种排序算法的时空复杂度以及特点都是要理解好的;

编写链表、队列、栈、堆、哈希表数据结构,一开始没有写总是觉得思路比较简单,到实际去实现就会发现没那么简单了,后来面试中确实要直接手写一个栈的实现代码,有所准备了;

当然还有July的博客中的关于海量数据处理的题目,以及他所提供的各类笔试面试题,精品!我时常在想如果没有了这个博客那么这些有价值的内容会封闭到什么时候?当然有人觉得这些都是题目,看了有什么意思呢?但是看了的人确实更有竞争力了,要找工作的你看还是不看?我笔试面试中有几题就是在July的博客中有的。

包括www.ahathinking.com中关于lcs等一系列题目的讲解,以及网上各种有用的资料,别人的面经,包括我的博客中的某些内容,例如C++类、结构对象内存布局浅析找出带环单向链表的环入口(交点),等内容,尤其是第一篇,几乎所有的笔试题都会考。

其实还有很多很多的内容,我这里根本就列不完,所以越早准备校园招聘越好。另外我也深深感觉到一份相关的实习工作经历也是很重要的……














  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值