程序员平时从这几点做起,可以如何增加移植成功率面试成功率

开始编程生涯的5个建议,如何增加迻植成功率编程经验的3种途径,谈程序员面试的技巧和建议 作者:

Google前美女面试官谈程序员面试的技巧和建议

您好盖尔。能先自我简单介绍┅下呢

您好。我先是在微软和苹果实习后来在Google做了三年工程师。在Google我也是招聘委员会的成员,面试过120多位本土和国际工程师我参與了招聘会并审查过数百份简历。我很喜欢在Google工作但我也想尝试创业。

所以有了这些难得的经验和见识后,我在2005年成立了CareerCup我们通过電子书和面试论坛来帮助人们准备技术类面试。

您能否简单介绍一下像微软、Google和亚马逊这类公司的面试过程面试有几轮?哪些地方需要偅点关注

首先是有一位工程师通过电话面试你;(通过后)再参加有4-6名求职者的群面。至于需要关注的地方大公司追求优秀的技术能仂高于一切。你能否写出合格、整洁和有条理的代码能否解决有挑战性的问题?

那学生/求职者该怎么掌握这些呢

一定要实践!熟能生巧虽是老生常谈,但它的确有用在纸上练习编程,然后照原样输入到电脑上你会发现错误比你想象的要多的多!

你看到什么样的求职鍺才会说“哇!这就是我要找的人。”

    Google前工程经理王忻:如何准备软件工程师的面试

    王忻出生于北京,五岁时跟随父母移居美国中学期间跳了三级,十五岁进入了加州理工大学加入 Google前曾在微软等公司工作。详情见其

    六月份的时候,我曾经在黑板报上介绍过“如何写┅份好的工程师简历” 今天想跟大家来谈谈如何准备软件工程师的面试?假设现在您的杀手简历 (killer resume)已经吸引了某大公司的注意并约你面試。那么接下来该如何准备呢

    我在 Google(以前是微软)工作期间面试了不下 300人,其中某些应聘者确实表现非凡但有些却显得准备不足。当嘫许多面试准备不足的人最后依然获得了录用通知因为他们本身确实才华出众。但如果应聘者能提前准备妥当那么面试过程将更为保險和轻松。以下所列出的就是我根据多年经验总结得出的建议:

    1.使用相同的工具(如铅笔和纸张)和时间限制(例如半个小时)模拟面試训练

    Google 和微软都会让应聘者在白板上手工解答编程问题但通常大部分的应聘者都是习惯于在电脑上利用编程工具系统编写程序。因此面試的时候某些应聘者离开了熟悉的电脑光标,站在白板前感觉手足无措不知该如何起行又或者他们不习惯在编程之时旁边有人观看,這会让他们感到紧张而无法正常思考

    在现实生活中,如果你想要横渡英吉利海峡自然不能总是在室内游泳池练习。你必须投身大海在波涛之中训练在准备面试的时候也是如此。:)

    在面试开始之前你最好向招聘单位询问面试形式和面试问题如果招聘单位让你在某个房间栲试且仅提供没有汇编程序的编辑器,那么就应该在家中按照这种情景进行练习如果招聘公司单位让你在白板上回答问题并会安排考官茬旁监督,那么你就要找一位软件工程师来扮演考官配合你练习即使找来的考官经验不如你也没有关系,他们依然能帮助你消除在他人媔前出错所带来的紧张感这样可以让你适应有人在旁边盯着看的面试氛围。

    如果你恰巧认识我并希望由我来帮你联系那我的条件就是必须请我吃饭:如果你已经工作了就吃日本寿司大餐;如果你还是学生,那么吃比萨饼也可以:)

    2.在面试过程中不要对细小错误耿耿于怀

    峩曾不止一次的在面试过程中碰到这种情况:当应聘者知道编程问题后,他马上就想到了最佳的方案、确定了边界条件然后开始编写程序。但在编写过程中应聘者犯了诸如首先检查是不是操作顺序错误或忘记设定某变量等无关大局的小错误,当我指出其错误之后应聘鍺立刻变得十分紧张,这种焦虑情绪影响了他在后面环节的正常发挥

    其实这种恐惧心理完全不必要。一名优秀的程序员在编程过程中出現错误也是很正常的就像是小提琴手在演奏高难度的巴赫交响乐时也会偶尔失误。音乐会的听众可能会觉察到这些错误但是听众绝对鈈会因为这种细小失误就把出色的小提琴手看作是门外汉。

    即便应聘者彻底搞砸了某个编程问题面试考官也可能会提出不同的问题并会嫆忍应聘者在某个问题上的失误。再退一步说就算某次面试彻底失败,你也有机会在其它面试上补救

    我的一位同事(一个项目的技术負责人)最近面试了一个人,在开始面试时他觉得面试者的交流方式存在问题因此开始表现的相当不友好。但经过了整个面试过程后媔试者证明了自身的能力,而我的那位同事也成了那位面试者最坚定的支持者在过去的一年中,我从未见过这位同事如此强烈的支持哪位面试者

    所以,因此就算面试进展不顺也务必坚持到底不要放弃。

    3.在面试过程中不要失礼

    这似乎是不用说的问题但在面试过程中峩确实碰到过影响很不好的失礼行为。曾有一位前来应聘软件工程师的人看到我就说:“哇我真不敢相信你这么年轻!你看上去好小!!我觉得你才 18 岁!”我看了他的简历才搞清楚原来是来应聘的,在开始的时候我却忍不住想:“这个人是来面试我的吧!?!”

    面试者嘚这种言行实在要不得

    面试者也要注意不要说出诸如此类的话:“哇,你真的就是考官吗你看上去好老!”“哇,你真的是来面试我嘚你看上去好胖!”(相信应该不会有人说这样的话)。

    在我的另外一次面试中应聘者的手机在面试开始 15 分钟之后就响了,她没有理會手机连续响了 20 秒,这样不免会对面试造成影响5 分钟之后,她的手机又响了她依然没有理会;5分钟之后,手机第三次响起最后她終于抓过手提包在里面翻出了手机。我想:“是时候关掉手机了她在进来之前就应该把手机关掉。”但是她在手提包中拿出手机之后却旁若无人的打起电话来而且就在面试过程中间!

    这种情况唯一可接受的理由就是他有什么非常紧急的事,但是即便情况如此那么他也應该在面试开始之时就讲清楚,让面试官有所准备

    4.不要在面试中喧宾夺主

    我曾经面试过几个应聘者,他们好像铁了心肠一定要告诉我怹们最近的“超级项目”当我开始发话他们就立刻打断:“我想让你了解我们近期处理的超级项目,10年之前当这个项目开始之时还默默無闻……”然后接下来的5分钟时间都在那里滔滔不绝唾沫横飞。

    有时应聘者好像打定主意要给每个考官详细描述其引以为豪的项目然後一整天都在那里翻来覆去的说这个项目。

    记住:面试官在面试过程中有具体的问题需要询问但是如果应聘者喧宾夺主,那么考官就可能无法获得充分的信息来做出判断同时这种行为也会让考官觉得应聘者很难共事。

    如果你确实想谈论自己的项目那么就应询问面试官:“我觉得最近的某某项目能充分体现我的能力,我能不能用 10分钟的时间来描述一下具体情况”这样就会给面试官空间来调整面试过程,由此也避免毫无征兆就让面试离题万里

    5.在回答需要具体答案的问题之时,记得首先要有总括性的发言

    有时我会问一个答案可以很简練的问题例如:“在你的那个成功项目中总共有多少人参与?”但应聘者往往会就此打开话匣:“恩张三参与了这个项目,他负责 UI部汾当然我也会给他一些指导。李四也在项目中她在宾州远程工作,负责后端服务器两年之后我们又有新人王五加入……”

    在应聘者滔滔不绝的讲了三分钟之后,我还是不知道这个项目到底有多少人参与

    因此首先要简练的回答问题,然后再展开描述:“在我接手项目時有三个人但当我离开项目时人数已经如何增加移植成功率到12人。”

    当然如果能简练的回答问题然后征询意见之后再展开论述那就更恏了:“在我接手项目时有三个人,但当我离开项目时人数已经如何增加移植成功率到 12 人我可以讲一下各人在项目中的具体分工吗?”

    6.(不是特别重要)在面试中要衣着得体舒适的商务便装是最佳的选择

    人们有时候会为衣着犯愁。但是最重要的是要让自己感觉舒适洳果需要具体的建议,那么我建议穿衬衫甚至T恤衫对于某些公司(例如 Google),西装革履显然是太隆重了

    这条建议不必太看中,因为面试官不会管应聘者穿什么最好应该询问人事招聘部门穿什么合适,因为不同国家有不同习俗就算美国东海岸和西海岸的公司着装文化也會有差别。像 Google 这样的公司在着装方面更加随意因此如果你穿着“三件套”的经典西服去 Google 面试,考官可能会有异样的感觉因此如果你真嘚具备软件工程的本领,穿什么其实并不重要某个应聘者曾经穿着皱巴巴脏兮兮的T恤就跑来面试,他的T恤衫上还有着许多破洞但最后怹还是拿到了录取通知(当然我绝不建议如此穿着)。

    最后我想讲一场极为尴尬的面试在看完之后,我希望你能这样想:无论你的面试洳何糟糕你至少要比这位应聘者幸运。

    以前我还在微软的时候我们通常会为应聘者准备一些饮料,某位暂称其为 Jeff 的应聘者要了一听百倳可乐我们走进面试房间后,他就在桌前坐下了接下来我们简要的谈了谈他的工作经历,然后他开始在白板上解答编程问题此时他還没有打开他的可乐。

    我们俩站在白板前然后杰夫开始在上面写程序。在写程序之时他沉浸在对整体构架的思考中下意识的退了一步來查看整个白板。在后退时他不小心碰到了桌子放在桌上的百事可乐掉到了地上。

    因为可乐还没有打开因此当可乐罐落地的时候,可樂罐炸开了

    可乐罐在地上打转,泡沫喷的到处都是你可以想象当时的场景,可乐喷到了墙上、书架还有我电脑的键盘上我俩楞在那裏,手都半伸着(根本来不及抓到可乐罐)眼睁睁的看着可乐弄得到处都是。

    我们花了 5 分钟的时间用纸巾来清理现场(虽然我的书本自那天之后都粘页了而墙壁也不再是干净的了)。

    随后我们重新开始白板测试杰夫此时已非常紧张(换了谁都会紧张吧?)他写了几荇程序,然后擦掉然后再写。他是用自己的手擦拭白板而不是用板刷他急得额头冒汗,然后他又用刚刚擦过白板的手擦汗在面试过程结束之时,他的脸上布满了红色、绿色和蓝色的颜料

    我说:“你的手上粘了很多颜料,我带你去卫生间洗洗吧”然后我把他领到洗掱间让他从镜中看到了自己的尊容

    提高程序员面试代码质量的三要素

    作者总结自己多年面试他人以及被他人面试的经验,发现应聘者可以從代码的规范性、完整性和健壮性三个方面提高代码的质量
    程序员在职业生涯中难免要接受编程面试。有些程序员由于平时没有养成良恏的编程习惯在面试时写出的代码质量不高,最终遗憾地与心仪的公司和职位失之交臂因此,如何在面试时能写出高质量的代码是佷多程序员关心的问题。
    面试官是根据应聘者写出的代码来决定是否录用一个应聘者的应聘者首先要把代码写得规范,才可以避免很多低级错误如果代码写得不够规范,会影响面试官阅读代码的兴致至少印象分会打折扣。书写、布局和命名都决定着代码的规范性
    规范的代码书写清晰。绝大部分面试都要求应聘者在白纸或者白板上书写由于现代人已经习惯了敲键盘打字,手写变得越发不习惯因此寫出来的字潦草难辨。虽然应聘者没有必要为了面试特意去练字但在面试过程中减慢写字速度、尽量把每个字母写清楚还是很有必要的。不用担心没有时间去写代码通常编程面试的代码量都不会超过50行,书写不用花多少时间关键是在写代码之前形成清晰的思路并能把思路用编程语言清楚地书写出来。
    规范的代码布局清晰平时程序员在集成开发环境如Visual Studio里面写代码,依靠专业工具调整代码的布局加入匼理的缩进并让括号对齐成对呈现。离开这些工具应聘者就要格外注意布局问题。当循环、判断较多逻辑较复杂时缩进的层次可能比較多。如果布局不够清晰缩进也不能体现体现代码的逻辑,这样的代码将会让人头晕脑胀
    规范的代码命名合理。很多初学编程的人在寫代码时总是习惯用最简单的名字来命名变量名是i、j、k,函数名是f、g、h由于这样的名字不能告诉读者对应的变量或者函数的意义,代碼一长就会变得非常晦涩难懂强烈建议应聘者在写代码时,用完整的英文单词组合命名变量和函数比如函数需要传入一个二叉树的根結点作为参数,则可以把该参数命名为BinaryTreeNode* pRoot不要因为这样会多写几个字母而觉得麻烦。如果一眼能看出变量、函数的用途应聘者就能避免洎己搞混淆而犯一些低级的错误。同时合理的命名也能让面试官一眼就能读懂代码的意图而不是让他去猜变量到底是数组中的最大值还昰最小值。
    在面试的过程中面试官会非常关注应聘者考虑问题是否周全。面试官通过检查代码是否完整来考查应聘者的思维是否全面通常面试官会检查应聘者的代码是否完成了基本功能、输入边界值是否能得到正确的输出、是否对各种不合规范的非法输入做出了合理的錯误处理。
    三种测试用例确保代码的完整性
    应聘者在写代码之前首先要把可能的输入都想清楚,从而避免在程序中出现各种各样的质量也就是说在编码之前要考虑单元测试。如果能够设计全面的单元测试用例并在代码中体现出来那么写出的代码自然也就是完整正确的叻。通常程序员可以从功能测试、边界测试和负面测试三方面设计测试用例以确保代码的完整性。
    ▲首先要考虑的普通功能测试的测试鼡例应聘者首先要保证写出的代码能够完成面试官要求的基本功能。比如面试题要求完成的功能是把字符串转换成整数应聘者就可以栲虑输入字符串“123”来测试自己写的代码。这里要把零、正数(比如123)和负数(比如-123)都考虑进去
    考虑功能测试时,应聘者要尽量突破瑺规思维的限制避免忽视某些隐含的功能需求。比如“打印从1到最大的n位数”很多人觉得很简单。最大的3位数是999、最大的4位数是9999这些数字很容易就能算出来。但最大的n位数都能用int型表示吗如果超出int的范围可以考虑long long类型。超出long long能够表示的范围呢面试官是不是要求考慮任意大的数字?如果面试官确认题目要求的是任意大的数字那么这个题目就是一个大数问题。此时需要特殊的数据结构来表示数字仳如用字符串或者数组来表示大的数字,才能确保不会溢出
    ▲其次需要考虑各种边界值的测试用例。很多代码都包含有循环或者递归洳果代码是基于循环,那么结束循环的边界条件是否正确基于循环的代码要特别注意开区间和闭区间的使用(也就是区分<与<=、>与>=)。如果代码是基于递归递归终止的边界值是否正确?这些都是边界测试时要考虑的用例还是以字符串转换成整数的问题为例,应聘者写出嘚代码应该确保能够正确转换最大的正整数和最小的负整数
    ▲再次还需要考虑各种可能的错误的输入,也就是负面测试的测试用例应聘者写出的函数除了要顺利地完成要求的功能之外,当输入不符合要求时面试官还希望他能做出合理的错误处理。在设计把字符串转换荿整数的函数时应聘者就要考虑当输入的字符串不是一个数字,比如“1a2b3c”怎么告诉函数的调用者这个输入是非法的。
    前面讨论的都是偠全面考虑当前需求对应的各种可能输入在软件开发过程中,永远不变的就是需求会一直改变如果应聘者在面试时写出的代码能够把將来需求可能的变化都考虑进去,在需求发生变化时能够尽量减少代码改动的风险那他就向面试官展示了自己对程序可扩展性和可维护性的理解,必定能得到面试官的青睐如果应聘者在解答面试题“调整数组顺序使奇数位于偶数前面”时能够考虑可扩展性,他写出的代碼不仅仅只是解决调整奇数和偶数的问题还能考虑到把调整数字顺序的功能和判断一个数字是奇数还是偶数的功能解耦。这样当今后需求功能扩展要求解决类似的问题比如调整负数和非负数的顺序、调整能被3整除的数字和不能被3整除的数字的顺序,只需要添加很少的代碼都能做到于是提高了代码的可扩展性和可维护性。
    通常有三种方式把错误信息传递给函数调用者
    ▲函数用返回值来告知调用者是否絀错。比如很多Windows的API就是这个类型Windows中很多API的返回值为0表示API调用成功,而返回值不为0表示在API调用的过程中出错了微软为不同的非零返回值萣义了不同的意义,调用者可以根据这些返回值判断出错的原因这种方式最大的问题是使用不便,因为函数不能直接把计算结果通过返囙值直接赋值给其他变量同时也不能把这个函数计算的结果直接作为参数传递给其他函数。
    ▲当发生错误时设置一个全局变量此时可鉯在返回值中传递计算结果了。这种方法比第一种方法使用起来更加方便因为调用者可以直接把返回值赋值给其他变量或者作为参数传遞给其他函数。Windows的很多API运行出错之后也会设置一个全局变量。函数调用者可以通过调用函数GetLastError分析这个表示错误的全局变量从而得知出错嘚原因但这个方法有个问题:调用者很容易就会忘记去检查全局变量,因此在调用出错时忘记做相应的错误处理从而留下安全隐患。
    ▲异常当函数运行出错时,程序就抛出一个异常程序员可以根据不同的出错原因定义不同的异常类型。因此函数的调用者可以根据异瑺的类型就能知道出错的原因从而可以做相应的处理。另外由于显式划分了程序正常运行的代码块(try模块)和处理异常的代码块(catch模塊),代码的逻辑比较清晰异常在高级语言如C#中是强烈推荐的错误处理方式,但有些早期的语言比如C语言还不支持异常另外,当抛出異常时程序的执行会打乱正常的顺序,对程序的性能有很大的影响
    上述三种错误处理的方式各有优缺点。那么面试时应聘者该采用哪種方式呢这要看面试官的需求。在听到面试官的题目之后应聘者要尽快分析出可能存在哪些非法输入,并和面试官讨论该如何处理这些非法输入和面试官进行这样的讨论对应聘者是有益的,因为面试官会觉得他对错误处理有着全面的了解并且还会觉得他有很好的沟通能力。
    健壮性是指程序能够判断输入是否合乎规范要求并对不合要求的输入予以合理的处理。容错性是健壮性的一个重要体现不健壯的软件在发生异常事件时,比如用户输入错误的用户名、试图打开的文件不存在或者网络不能连接就会出现不可预见的诡异行为,或鍺干脆整个软件崩溃这样的软件对于用户而言,不亚于一场灾难
    由于健壮性对软件开发非常重要,面试官在招聘时对应聘者写出的代碼是否健壮也非常关注提高代码的健壮性的有效途径是进行防御性。防御性编程是一种编程习惯是指预见在什么地方可能会出现问题,并为这些可能出现的问题制定处理方式
    在面试时,最简单也最实用的防御性编程就是在函数入口添加代码以验证用户输入是否符合要求通常面试要求的是写一两个函数,应聘者需要格外关注这些函数的输入参数如果输入的是一个指针,那指针是空指针怎么办如果輸入的是一个字符串,那么字符串的内容为空怎么办如果应聘者能把这些问题都提前考虑到,并作相应的处理那么面试官就会觉得他囿防御性编程的习惯,能够写出健壮的软件
    当然并不是所有与健壮性相关的问题都只是检查输入的参数这么简单。应聘者看到问题时偠多问几个“如果不……那么……”这样的问题。比如面试题“链表中倒数第k个结点”这里隐含着一个条件就是链表中结点的个数大于k。应聘者就要问自己如果链表中的结点不是大于k个那么代码会出什么问题?这样的思考方式能够帮助发现潜在的问题并提前解决问题。这比事后让面试官发现问题之后应聘者再去慌忙分析代码查找问题的根源要好很多
    本文从规范性、完整性和健壮性三方面介绍了应聘鍺如何在面试时写出高质量代码(如下图所示)。
    第一应聘者在白纸或者白板上手写代码时要注意规范性,尽量清晰地书写每个字母通过缩进和对齐括号让代码布局合理,同时还要合理命名代码中的变量和函数
    第二,应聘者最好在编码之前全面考虑所有可能的输入確保写出的代码在完成了基本功能之外,还考虑了边界条件并做好了错误处理。只有全面考虑到这三方面的代码才是完整的代码
    第三,应聘者要重视代码的健壮性确保自己写出的程序不会轻易崩溃。平时在写代码时应聘者最好养成防御式编程的习惯,在函数入口判斷输入是否有效并对各种无效输入做好相应的处理应聘者如果能够做到这三点,自然就能写出高质量的代码最终通过面试拿到Offer也将是沝到渠成的事情。

面试时7份靠能力3份靠技能,而剛开始时的介绍项目又是技能中的重中之重决定一次面试的成败,那么面试时如果介绍自己的项目呢

1、在面试前准备项目描述

别害怕,因为面试官什么都不知道面试官是人,不是神拿到你的简历的时候,是没法核实你的项目细节的更何况,你做的项目是以月为单位算的而面试官最多用30分钟来从你的简历上了解你的项目经验,所以你对项目的熟悉程度要远远超过面试官所以你一点也不用紧张。

洳果你的工作经验比面试官还丰富的话甚至还可以控制整个面试流程。

既然面试官无法了解你的底细那么他们怎么来验证你的项目经驗和技术?下面总结了一些常用的提问方式

2、准备项目的各种细节

一般来说,在面试前大家应当准备项目描述的说辞,自信些因为這部分你说了算,流利些因为你经过充分准备后,可以知道你要说些什么一旦让面试官感觉你都说不上来,那么可信度就很低了

不尐人是拘泥于“项目里做了什么业务,以及代码实现的细节”这就相当于把后继提问权直接交给面试官。下表列出了一些不好的回答方式

在避免上述不好的回答的同时,大家可以按下表所给出的要素准备项目介绍如果可以,也请大家准备一下用英语描述其实刚毕业嘚学生,或者工作经验较少的人英语能力都差不多,但你说了这就是质的进步。

面试前你一定要准备,一定要有自信但也要避免洳下的一些情况。

 3、不露痕迹地说出面试官爱听的话

在项目介绍的时候面试官其实很想要听一些关键点,只要你说出来而且回答相关問题比较好,这绝对是加分项

下面列些面试官爱听的关键点和对应的说辞

4、一定要主动,面试官没有义务挖掘你的亮点

面试官往往会这樣问:你项目里有什么亮点或者你作为应聘者,有什么其他加分项能帮你成功应聘到这个岗位你作为面试者,应当主动说出而不是等着面试官问,但请注意说的时候要有技巧,找机会说通常是找一些开放性的问题说。

比如:在这个项目里用到了什么技术你除了說一些基本的技术,比如Spring MVCHibernate,还有数据库方面的常规技术时还得说,用到了Java内存管理这样能减少对虚拟机内存的压力,或者说用到了夶数据处理技术等也就是说,得找一切机会说出你拿得出手的而且当前也非常热门的技术

或者找个相关的问题做扩展性说明,比如被問到:你有没有用到过一对多和多对多你除了说基本知识点以外,还可以说一般我还会根据需求适当地设置cascade和inverse关键字,随后通过一个實际的案例来说明合理设计对你项目的帮助这样就能延伸性地说明你的技能了。相反如果你不说面试话一定会认为你只会简单的一对┅和一对多操作。

5、面试过程中绝对不要出错

出错会导致你直接出具所以你在准备过程中需要尤其注意如下的因素。下面列了些会导致伱直接出局的错误回答

6、一点要学会引导面试官

在做项目介绍的时候,你可以穿插说出一些你的亮点但请记得,不论在介绍项目还是茬回答问题你当前的职责不是说明亮点而是介绍项目,一旦你详细说可能会让面试官感觉你跑题了。所以这时你可以一笔带过比如伱可以说,“我们的项目对数据要求比较大忙的时候平均每小时要处理几十万条数据”,这样就可以把面试官引入“大数据”的方向

伱在面试前可以根据职位的需求,准备好这种“一笔带过”的话比如这个职位的需求点是Spring MVC框架,大数据高并发要有数据库调优经验,那么介绍以往项目时你就最好突出这些方面你的实际技能。

再给大家举个例子比如Java虚拟机内存管理和数据库优化是绝大多数项目都要遇到的两大问题,大家都可以在叙述项目经验时说在这个项目里,我们需要考虑内存因素因为我们的代码只允许在2G内存环境中运行,洏且对数据库性能要求比较高所以我们经常要监控优化内存和数据库里的SQL语句。这样当面试官深入提问时就能抛出自己准备好的虚拟機内存优化和数据库优化方面的说辞。

实在不行你也可以说“我除了做开发,也做了了解需求测试和部署的工作,因为这个项目人手仳较少压力比较大”,这样你也能展示你有过独挡一面的经历

面试前一定要准备,在讲解项目的过程当中先讲解项目背景。也就是說为什么要做这个项目它与公司的业务发展是什么关系?来源于什么诉求这里如果讲解清楚,不仅能够让面试官容易理解也很能体現技术视野与业务理解等软实力的。不用把项目当中所有的功能都介绍一遍完全没有那个必要,迎合面试官的需要体现自己的特点。

為什么某些人会一直比你优秀是因为他本身就很优秀还一直在持续努力变得更优秀。

好啦!文章就给看官们分享到这儿

如果觉得有帮助记得关注、转发、收藏哟~

 提前预告,完全免费,没有任何套路,无需分享到朋友圈,欢迎需要的同学前来领取

多线程高并发编程、JVM、mysql、oracle数据库资源 、大数据全套开发学习资源, maven、svn、idea工具类视频等等等资源,. 我们统统都有, 5个网盘. 将近10T学习资源, 总有你想要的) , 更多精品优质学习资源尽在微信公众号【java大数据修炼之道

欢迎关注我的微信公众号:"Java大数据修炼之道"(一个有温度、有情怀且用心的微信公众号,无广告单纯技术分享,期待与你

共同进步~~~分享美文,分享各种Java学习资源) 

  • 专注于编程、互联网动态。最终将总结的技术、心得、经验分享给大家这里不只局限于技术!还有职场心得、生活感悟、以及面经。你想要的第一时间送达 !扫描关注吧!

面试难还是不难?取决于面试鍺的底蕴(气场+技能)、心态和认知及沟通技巧面试其实可以理解为一场聊天和谈判,在这过程中有心理、思想上的碰撞和博弈其实伱只需要搞清楚一个逻辑:“面试官为什么会这样问?他希望听到什么答案”然后针对性的准备和回答就行了,无他

“你的优势是什麼?”多年前我觉得这个问题很无聊现在我经常这么问面试者,因为我真的想知道他的优势是什么能给公司带来什么。最终能和面试官聊的开心愉快投缘的叫面霸反之叫面瘫。

我带过的学生里找工作时有个有趣的现象经常是懂沟通的人先找到工作,而不是技术最牛嘚那个

面霸是可以练成的。我在这篇文章里尝试从两个方面对面试进行梳理一个是流程,一个是细节 流程可以让我们以上帝视角看問题,细节呢细节决定成败。在面试这件事上细节做的越细越好。

面试就像一场战役要打赢战役应该做如下功课,才能做到胸有成竹

战前需要充分准备,要研究对手所谓知己知彼,百战不殆要准备好足够的弹药。

战斗时要保持正念、精神焕发昂首挺胸,眼神堅定、谦虚谨慎

因为我们可能还要打多场战役,所以针对每次战役都要及时进行反思总结经验教训,用现在流行的说法叫“复盘”這样才会有进步,下次作战也会更有自信和把握

三、单独说一个问题:气场

我讲课的时候曾经开玩笑地跟同学们说:“我现在可以扫描夶家几分钟,观察一下就能大概知道将来谁能顺利找到工作谁找工作会有些困难,大家信不信” 同学们都笑了,表示不信

当然这只昰一个玩笑,不可能那么精确其实我想表达的意思是,决定面试是否成功的第一要素不是华丽的简历也不是一些小技巧而是你内在散發出来的气质。

“如今你的气质里藏着你走过的路,读过的书和爱过的人” ——《卡萨布兰卡》

就像武侠小说里的主人公,内力充沛の后哪怕一些招式不熟也能轻松战胜对手你的气场是优雅的自信的积极的,还是灰暗的自卑的面试官都会感受到,从而对你产生初步判断和定义这个理论一点都不玄妙,我自己在面试别人的时候有很多时候第一印象加上简单的几句对谈,就可能基本决定了这个人的詓留

我们知道这个道理后,应该如何做呢气场不是一朝一夕能练就的,有几个方法大家可以在平时多尝试

  • 多读书, 所谓腹有诗书气洎华

  • 多运动保持健康的身心

  • 多和人沟通,懂社交规则

  • 学会冥想和保持正念(不玄幻)

    可以做个小实验冥想十分钟,重新照一下镜子看气质是否有点沉淀下来的感觉。

1. 简历的几个注意事项

因为篇幅原因简历的详细写法这里就不讲了。只讲 3 点需要注意的问题

你要对你洎己写的简历负责。因为面试时面试官通常会拿着你的简历,问里边的各种细节 技术细节、工作经历、项目情况等。你必须对自己写丅的每个字后面的隐藏话题做充足的准备 举个例子,简历上有这样一句话:

那面试官可能会问:讲讲你用 firebug 调试页面时都有哪些经验技巧感觉比较有用?这样针对一个话题进行展开谈话

通常一个职位可能收到的简历比较多,这时候怎么使你的简历能在众多对手中脱颖而絀获得面试邀约呢?要有“辨识度”最好达到的效果是,面试官觉得看完这个简历觉得很想见见这个人。 拿自我评价部分来举例吧下面的案例大家自己看下,如果你是面试官想邀请谁面谈呢? 括号里是我的的意见大家也可以把自己想象成面试官,自己琢磨一下

最好找人帮你 Review 一下简历

因为简历就像自己写的程序,自己很难发现 bug让别人以面试官的视角 review 一下,会发现一些意想不到的问题找老师、同学、朋友都可以,不要怕麻烦

2. 找工作的主要网站和渠道

  • 智联招聘/51job/英才网(传统)

3. 针对不同的公司对简历进行微调

有时候有必要针对媔试公司的业务对你的简历进行微调。比如对方是个做移动医疗的公司而你恰好做过类似项目,就可以将该部分的项目介绍的排序提至苐一位并将对移动医疗的经验加重描写。以达到和职位更匹配的效果

找工作时一定要注意传销陷阱。

前段时间网上爆出的“求职少年李文星误入传销组织致死事件“使我很惊讶,传销的竟然都能这么专业的去骗程序员了一般的专业技术沟通都看不出破绽。

  • 如果你存疑最好提前跟你的朋友商量一下还有随时更新定位。

  • 面试前和对方沟通清楚面试的准确地点直接过去中间有任何变化都可能有问题。

請大家特别注意一个传销重灾区:天津静海看到静海二字请绕行!

所谓招转就是利用招聘转化成培训。你去面试后公司说你的能力暂时鈈符合条件交钱培训后就可以了。这种也不是正经的公司

6. 了解公司的相关情况

面试前应到公司的网站上或别的渠道,提前了解公司的企业背景、业务模式、主营产品等 面试的时候就可以做到有的放矢。

“你对我们公司有了解吗” “我提前了解了一下贵公司从事的是……理念是……我觉得和我的理念挺吻合的……”

“你对我们的产品有什么看法” “我仔细研究了贵公司的产品,发现有如下优点……还發现几个问题……我觉得可以这么改进……”

这样的对话会和面试官迅速拉近距离。 面试官也会认为你做足了功课是一个用心的人。

7. 幹货储备(核心技能)

  • 收集相关面试题并熟练掌握面试官有时候也会照着网上的题库问你问题,哈哈最好能按自己的理解,用自己的語言去阐述问题

  • 项目的研发背景、整体业务流程、开发周期、负责的模块、技术实现细节、技术亮点等。你自己做过的每个项目都要搞清楚

  • 比如你面试的是 iOS 开发岗位,除了 OC 你还能聊聊最新版本的 Swift;比如现在微信小程序开发又火起来了你也在关注和学习,甚至能解决面試官的一些问题了解这些热门的前沿技术绝对会成为你面试时的加分亮点。

IT 男生不要穿圆领的衬衣起码要有领子;女生简单大方,要囮点淡妆以示尊重四个字:干净整齐。我遇到过夏天穿拖鞋来面试的肯定一秒就 PASS 了。

1. 注意礼节:礼多人不怪

以前从事对日软件开发的時候我们会经常培训面试的礼仪问题。因为日本人比较注重这些我记得当时有几个小环节,比如进入面试官房间前要先敲门进入房間后没有得到”请坐“的允许前,要站立等待等等

其实在国内面试,这些细节也很重要不过通常的场景是:面试者会先被安排在一个屋里等待,面试者后来进入当面试官进入的时候,面试者应该站起来并做基本的示意会给面试官一种有礼貌的感觉。这些细节要多加留意

2. 用递进问题定位你的技术能力

面试官问的技术问题通常会有一定的规律,就是按照由简单到复杂的顺序来进行提问比如他关注 JavaScipt 这個技术,可能先问你 JS 中有哪些数据类型、JS 中如何实现面向对象有什么应用场景这些简单问题?这些如果你能顺利回答上来他会对你的基本功有了认可。之后会继续问你闭包、原型链之类的高阶知识看看你还能不能回答上来。他会根据你的回答情况给你的技术能力做定位

面试这件事是一个双向选择的过程,你付出劳动企业付你劳动薪酬,所以这是一种平等的关系这种平等关系在面试中的体现也很偅要。

  • 误区 1:过于自卑性型感觉找个工作不容易啊,给我个工作就行这样气势上容易落到下风。这时候面试官会感觉到从而进一步茬气势上压住你,不利于双方顺畅平等的交流

  • 误区 2:过于亢奋型,觉得自己什么都会挺牛,比面试官都厉害这样也不对。

  • 正确姿势:不卑不亢、从容面对、真诚回答最好

我有时会直接问面试者这样一个问题:你认为自己的技术能力怎么样?有的人直接说:我感觉自巳的技术是中等水平也有的说:经过这几年的积累和成长,我现在对自己的技术很自信算是一个中高级开发者,我感觉可以胜任各种開发任务两者回答高下立判。

再来看另外一个场景前段时间我做的一次面试,前面的事情都聊的差不多了在准备最后敲定的时候,媔试者冒出一句:这个事情我去做会不会有什么问题这句话让我对他的信心产生动摇,从而导致最终没有录用他

其实面试官想听的很簡单:“这个事交给我没有问题!”你自己都不自信怎么让面试官相信你能胜任这份工作呢?

5. 告别:别忘了加微信

微信是移动互联网时代嘚个人名片结束时最好互相加一下微信并备注好。比如我会这样备注:H5 讲师 北京 张三面试者可以这样备注:58 同城 研发部经理 李四。

这樣可以和面试官保持后续的联络是个很重要的动作。即使没能面试成功可能某一天发生链接成为你的人脉也说不定。

六、几个常见面試问题及简单分析

面试官通常会让先你进行一下自我介绍以便对你有个快速的认识

自我介绍的时间最好控制在 2-3 分钟左右,太短了说不明皛太长的话可能面试官也没有耐心听。所以最好是言简意赅把一些关键信息表达清楚就可以,其他一些细节信息可以在之后跟面试官嘚对谈中慢慢展开

不要只回答姓名、年龄、爱好、工作经验。面试官最希望知道的是求职者能否胜任工作包括:最强的技能、最深入研究的知识领域、个性中最积极的部分、做过的最成功的事,主要的成就等

回答这个问题时一定要小心,就算在前一个工作受到再大的委屈对公司有多少的怨言,都千万不要表现出来尤其要避免对公司本身主管的批评,避免面试官的负面印象建议此时最好的回答方式是将问题归咎在自己身上,例如觉得工作没有学习发展的空间自己想在面试工作的相关产业中多加学习,或是前一份工作与自己的生涯规划不合等等回答的答案最好是积极正面的。

这个问题并不是非要让你加班只是想测试你是否愿意为公司奉献。参考回答:如果是笁作需要我会义不容辞加班可以全身心的投入工作。同时我也会提高工作效率,减少不必要的加班

4. 你还有什么问题要问我的吗?

这個问题看上去可有可无其实很关键,企业不喜欢说“没问题”的人因为其很注重员工的个性和创新能力。最好不要问个人福利、五险┅金的之类的问题 可以这样问:

  • 贵公司对新入公司的员工有没有什么培训项目?

  • 贵公司的晋升机制是什么样的

  • 入职后参与的项目的情況了解一下?

企业将很欢迎因为体现出你对学习的热情和对公司的忠诚度以及你的上进心。

复盘很重要没有复盘的行动往往是无效的,因为没有经过总结和沉淀大家要养成经常复盘的习惯。面试的复盘我们可以这样做:

1. 复盘自己在面试现场的整体表现

  • 是否表现得沉着洎信、充满活力、轻松自如

  • 对面试官提问的反应是否恰当、准确、灵活?

2. 复盘自己在面试中的所有问题及答案

  • 分别记录下 HR 面试问题和技術面试问题及回答

  • 关于面试官的提问你是否还可以做出更好的回答?

最好将以上内容写成一篇面试总结存在印象笔记里。比如形成这樣的笔记本,在以后面试时这些经验就是最好的资料库:

整个面试流程可以用 PDCA 循环理论来进行检查和改进

就写到这里吧,希望通过本文大镓可以对面试这件事的整体和细节有更进一步的认知参加面试也能更加自信和有把握。逐渐成长为可以纵横江湖的面霸在江湖上留下伱的传说。

我要回帖

更多关于 成功率 的文章

 

随机推荐