现在大三,从4月份开始一些企业陆续到学校进行校园招聘,为了大四能去一个适合自己的地方实习,自己也开始写了简历,参与其中。建议一开始去面试一些小公司,就当是积累经验。这里主要说的是如何去准备面试以及面试过程中的一些小技巧。
如何去准备面试
我的面试分为三面,一面笔试,二面技术,三面HR面试。笔试是关于计算机基础,这个没的说,看自己掌握的程度,基础知识无非来说就是编程语言,数据结构和算法,操作系统,计算机网络,好在大一大二软件工程专业都有学到,如果是认真听了问题不大,临时突击的话的要下功夫。一些大公司很注重数据结构和算法,这里需要熟练掌握链表,树,栈,队列,哈希表以及它们的操作,重点是链表的插入和删除节点,二叉树的各种遍历方法。一些经典的链表面试题例如——环形链表,双向链表,复杂链表。树也是面试过程中经常被问到的,算法花时间去了解二分查找,归并排序,快速排序,对比每种的时间复杂度和空间复杂度,具体问题具体分析。推荐每个准备面试的人去看《剑指Offer》这本书,即使没有把里面的面试题都独立完成,也可以从中学到很多宝贵的经验。
二面是重头戏,耐心去准备,这里可以是拿自己满意的一个项目,深刻理解它的来龙去脉,以点带面。以下是我总结的二面过程中的一些注意点。
面试过程中的一些小技巧
多去说,避免出现一问一答
一些人会在接收到面试通知前感到紧张,一部分原因是因为不知道面试官会问你哪些问题以及不知道自己该如何去说清楚自己的项目。如果一件事你不能讲清楚,十有八九你还没有完全理解。对于第一个疑惑,面试官会首先根据你的简历给你提问,自己会什么就写什么,一些“美化”过的简历,面试官相应提问难度也会有增加,千万别给自己挖坑写自己很少用过或者知道的技术,面试的时候答不出来会很尴尬。第二个疑惑我推荐就是拿出笔和纸把你能想到和面试官交流的情景写下来,列出一个大概的提纲,也就是让自己去引领面试官,而不是在面试的过程中出现一问一答,在写下来的时候我们的大脑会进入到理性分析模块,也就是说写着写着就有思路知道该怎么去介绍自己的项目
举个例子,我在面试前准备的是关于网上购物的App,它的特点结合全国334个城市,选择自己需要的物品,也可以是旅游,美食,还有一些搜索功能,地图提示。先说它是干什么,有哪些功能,接着就可以根据某个功能深入了,例如数据是实时更新的,那么你是怎么实现网络交互的?具体用到什么框架?可以说说其中原理吗?加载数据过程中会有图片的下载,那么你是怎么优化内存的,如果网络情况不佳,你该怎么处理,或者尝试多线程开发呢?这些疑问都是我写在纸上想到的,不妨你也可以试一试,总的来说,你要尽可能多去把自己知道的告诉面试官,在他不打断你的情况下。也许你觉得自己知道的技术不是那么出众,没关系,多说会让面试官觉得你在学习的过程中善于思考(个人理解,反正我是这么做的)。
掌握一个表达方式
普通工程师范例:我用过XXX,我做过XXX。
优秀工程师范例:我在做XX项目的时候遇到XX问题,后来引入XX,引入后发现XXXXX,后来研究了XX,发现XX和XXX的不同,为此我去看了XX原理,自己尝试XX,总结了XX文章,我甚至尝试自己实现了一个XX来解决问题,并且将其推广到XX。
显而易见,掌握后者的表达方式可以使你在介绍一个项目时,有更多的技术点可以去说,当然这需要你有丰富的项目经验,这个表达方式会让你更会“说话”,面试官对你的印象也会加分,至少认为你是一个喜欢钻研并且对技术充满好奇心的人。对于只做过简单项目的人还是有一说一,说的天花乱坠,面试官稍微问一个基础的问题,你答不出来也不好自圆其说。上面那个范例可以说是“套路”,根据自己的水平去介绍,起码也能体现出沟通和表达能力。
再深一步来说我们在从既有经验中总结知识的时候,应利用适当的抽象来得出适用范围更广的知识(不仅仅是一个萝卜一个坑);另一方面,在遇到新问题的时候,同样应对问题进行抽象,触及本质,去除不相关因素干扰,从而有效提取之前抽象出来的知识。在面对问题时多抽象其本质也是一个有力的办法,表面不相似性阻碍了知识的迁移运用,我们常常说有些人善于看到事物的本质,他们更能够举一反三,将一个地方领悟的道理推广到另一个看上去很不一样的地方。
体现自学能力和对专业的浓厚兴趣
IT行业技术日新月异,吃老本停滞不前早晚会被淘汰,掌握自学能力是非常有必要的。
一生的知识积累,自学起码占90%。逃课自学,上网找书自学,程序员行业是最适合自学的行业,网络是他们的天堂,需要的资源,工具,比课堂上多出何止百倍要掌握一门专业知识,其实每天花一点时间,专注,积累和持之以恒也就够了。
这里为什么还要说体现对专业的浓厚兴趣呢?兴趣遍地都是,专注和持之以恒才是稀缺的。我想说的是你要热爱你所从事的行业,拿IT行业来说这可以体现在你对开源社区的贡献,GitHub的影响力,技术博客里的精致文章,这里都可以出现你的身影。
最后要说的就是,多去做一些你认为现在“没有用”的事情,可能不会立马出现你想要的效果,如果你对你的将来充满迷茫,相信我你并不孤独。然而,充满迷惑本身,并不意味着你要不知所措,只要不停地往前走,总是可以走到一个鲜花盛开的地方。二面快结束的时候把自己写的两个有关iOS的小游戏展示给了面试官,一个是关于重力感应的俄罗斯小方块,另一个是时间定时催眠器(iOS编程第四版的小Demo)当时写的时候并没有想它可以立马给我带来技术上的提高,完全是凭兴趣。所以“不知道学习有什么用”而选择努力学习的人,每时每刻都充满了收获,并且会在将来的某一天,获得意外的收获,哪怕他们可能显得“漫无目的”—结果真是天壤之别。
三面HR面试,聊得话题就很轻松愉快了,唠唠家常,说说自己的职业规划,因为是实习所以主要围绕实习时间和签订三方协议来谈的。
其实面试也是一个学习的过程,没必要为了面试而面试,养兵千日用兵一时,平时注重积累,相信你能在面试的过程中游刃有余。