目录
- 一、心理准备
- 1、内心的答案
- 2、表述的答案
- 二、简历准备
- 三、知识准备&面试流程
- 1、一面:技术面
- 2、二面:BOSS面
- 3、终面:HR面
- 四、面试的技巧有哪些
- 1、自信
- 2、真诚
- 3、主动
- 4、复盘
- 五、补充:其他面试内容
- 1、逻辑思维
- 2、技术开放题
- 3、逻辑思考
- 4、方案设计
- 5、学习与技能
- 6、团队
🏆本文收录于,Java基础教程(进阶篇)。
目前已经800+订阅,CSDN最强Java专栏,包含全部Java基础知识点、Java8新特性、Java集合、Java多线程、Java代码实例,理论结合实战,实现Java的轻松学习。
通常来说,找工作是一件需要严肃认真对待的事情,它像是职业路上的某个十字路口,一旦走错了可能荒废掉一段光阴。
虽然现在习惯跳槽的年轻人越来越多,但对大多数人来说,换工作并不是一件比较随意的事情,经验的不足常常导致我们对一些预期以外的事情手忙脚乱、犹豫不定。
这些年也有不少自己被面试和面试别人的经历,也有好些人来咨询一些前端的面试题目和准备方法,所以今天就来分享一些面试的方法和技巧,希望能给各位求职人一些帮助。
一、心理准备
面试也好、答辩也好、分享也罢,我们做任何事情,做好准备是很重要的。在这里,我将面试的准备分成三方面来讲述:心理准备、简历准备和知识准备。
其实只要给予充分的时间准备,以及每次面试后进行复盘和总结,我们总能取得最终的胜利。更多的时候,我们之所以陷入犹豫不决的困境,常常是因为没有做好心理准备。
为什么要换工作?这是每个求职者必须要思考的事情,这个问题常常也会被面试官问起。关于这个问题,可以分为内心的答案和外在的答案两种。
1、内心的答案
首先是内心的答案。
求职者千千万,不同的人有不同的缘由。有些人想要出去了解外界的情况,有些人想要保持自身的能动性,但大多数的人换工作的原有无非是钱少、工作强度不适合、团队氛围不喜欢、工作内容不感兴趣等。
通常来说,我们对当前的工作不满意的因素,会成为我们寻找下一份工作的关注点。如果没有进行足够的思考,我们虽然换了一份工作,但可能依然不如预期,频繁地跳槽也容易使个人的职业发展受限。
生活常常不如所愿,更何况一份工作。我们遇到喜欢又如意的工作的概率很低,所以常常需要寻找平衡点。钱多的工作常常强度较大,而合适的团队氛围更是难找,所以我们需要做取舍,以及在一定范围内调整自身的心态和预期。
这些问题其实平时也可常常思考,这样我们对自身的需求和意愿有较好的认识,对于现有的工作也可以及时地进行调整和适应,而不是让负能量反复积累,或许便不会陷入困境了。
2、表述的答案
接下来是表述的答案。
为什么有两种答案呢,因为面试官在考察求职者能力的同时也会考察对方的其他品质,求职者希望能获得一份理想的工作,面试官同样也想要招来能力强、负责任又稳定的人。
我们换工作的理由本应该是积极的,例如寻求更大的挑战、更感兴趣的工作内容等,但很多时候我们也的确处于各种各样的工作中,像强制性非必要的高强度加班、团队氛围浮躁膨胀、组织管理低效、不够人性化等。
我们常常迫于管理上的一些原因更换工作,这些本不应如此、却又无可奈何的问题阻碍了自身的发展和追求,但管理的问题常常无法避免,这些无法通过自身改变的问题可以不必再说。
职场中常常要求我们带着解决方案来提出问题,所以我们可以用更积极的回答来参与面试,从自身的职业发展角度来描述,而不是执着于上份工作存在的问题。
以我自身为例,刚开始工作的那几年遇到过很多奇奇怪怪的领导和团队,再加上非科班和转行的原因导致待遇上的一些问题,因此前面几年基本上跳槽比较频繁。
后面面试的时候基本上都会被问到这样的问题:换工作这么频繁的原因是?我们是否可以认为你的稳定性不是很够?
其实除了职场上遇到的一些奇葩的事情,整体的方向我一直有在跟着自己职业规划的节奏走。
因此,对我来说每一次跳槽的原因基本上只有一个:在原有团队中的成长机会和可能性已经不够了,因此需要去更大的平台进行学习。我换工作的方向基本上也是满足外包公司到创业公司、创业公司到大公司,而在大公司里也有换团队的经历,也同样满足往技术广度和深度发展的方向。因此,我都是如实告诉面试官:每一次换工作都是为了获得更多的成长。
也有面试官反问过我:如果新的团队在未来某个时候可能转型、不再是你期望的样子,是否会选择离开?我的回复是:团队中成员选择离开的原因可能是各种各样的,而团队进行大的转型其实算是几率较低的一件事,因此未发生的事情还是低概率的事情暂时不需要现在担心。
面试中会有一些忌讳,比如说原团队的不足、抱怨的话语,这些比较容易给面试官留下不够友好的印象。我们不需要在面试过程中表达出来,但如果的确很在意一些事情,可以通过一些疑问和关注点来像面试官们提出自己的想法,比如自己加入团队后会负责哪些工作、团队对加班的态度、团队的技术氛围之类的。
二、简历准备
确定好要找工作之后,便需要开始准备简历了。
首先是工作内容和技能的关键字。大多数求职过程都是通过投递到HR手中开始,而HR小伙伴们对于专业技能并不了解,所以面试官常常会给到HR一些筛选简历的关键点,例如需要掌握哪些技能、有怎样的项目经验等。我们可以通过网上搜索相应的职位要求,相应地调整简历中的关键字。
其次是简洁、清晰的工作经验和技能描述。过于臃肿、排版混乱的简历会让面试官较为烦躁,一目了然的简历可以让面试官如沐春风。一些比较久远又无法体现个人能力的工作经验,可以省略或概括性描述。
所有出现在简历上的内容都需要有足够的把握,避免出现面试官问到又回答不上的尴尬情况。如果回答不够好,面试官可能会认为候选人对技术研究/项目开发经验的深度不足,对候选人的好学程度和个人思考印象也会大打折扣。
接下来要突出简历的亮点。项目经验不是越多越好,尽量突出描述有挑战性、体现个人能力的内容。除了专业技能,也可以表现出项目过程中的主动性和思考。
最后是补充内容。可以针对自身的优势进行一些补充说明,来体现个人的能力或是潜力,例如业界认可的一些沉淀或成就,像著名开源项目的参与度、书籍、博客等。
下面是个人比较喜欢的一份小朋友的简历:
首先,这份简历整体上比较简洁,内容也保持在大概一页纸以内,工作经验、项目经验、个人优势都比较清晰。
其次在这份简历中,候选人的自我评价部分有比较高的加分,主要包括对一些较著名的开源项目的pull request,以及一些比较著名的论坛、网站也有较高的活跃度,可以体现出该候选人对技术的热情、主动性上很不错。
除了这些,我们能看到该候选人的项目经验虽然不多,但对于项目的描述有些自己的特点,虽然也基本上是管理端的经验,但给面试官的感觉会区别于大多数人对管理系统的描述。
在描述项目经历的时候,可以尽量把一些较少见、或是对面试官来说比较新颖的内容,可以更有吸引力。
🏆哪吒多年工作总结:Java学习路线总结,搬砖工逆袭Java架构师。
三、知识准备&面试流程
具体的知识准备是很大一部分工作,每个岗位的侧重也不同,所以我在这里就大致谈一谈“一面”、“二面”、“最终面”等这些过程中需要侧重的知识内容。
在这之前,首先是刷题。互联网发达的今天,不少人会将自己面试大公司的过程记录下来,同时也常常附有相关的问题和答案,可以作为参考进行同类型题目的准备。大家也可以买本力扣CTO推荐的《程序员面试金典》看看,刷题很好用。
我的建议是用理解取代背诵。我们都是经历过高考的孩子,背东西对我们来说只要花时间就可以解决。尽量使用自己的语言组织表达,过于僵硬的回答容易让面试官失去耐心。如果在记忆的过程中加于理解,结合个人的项目经验来复述,会有更好的效果。
1、一面:技术面
技术面试一般分为好几场,需要由2-3个相应的专业面试官多次考察,然后汇总各自的评分得到一个综合的评价。该过程对于候选人的等级评定和最终定薪都有比较大的影响。
技术面除了考察基础技术,对于工作经验较少的候选人,也通常会加一些逻辑题来考察思维和逻辑。对于工作经验较多的候选人,则会更侧重地询问工作中、项目中的一些亮点/过程/结果/思考,以及方案选型、方案设计等内容。
如果你是应届生或者刚毕业没多久,可以侧重复习基础知识(刷题),以及改善思考方式和表达能力。同时如果有一定的项目经验,或是参与了一些开源项目、有自己的技术博客或是文章积累,也都是不错的亮点。
如果你工作两三年了或更多,需要更侧重关注自己的实践经验的积累、解决问题的方法、对项目的贡献等。不同于应届生是招来培养的,社招更多是招来干活和解决问题的,因此候选人需要让自己在思考、经验沉淀、解决方法等方面更加突出。面试官也通常会出一些“这个项目给到你,你要如何解决、你会如何考虑”等问题来考察候选人。
如果你面试的岗位中有管理团队(无论大小)的工作、或是面试核心技术开发,面试官会需要你能做出合适的技术架构,也要求你对团队管理常见问题以及如何解决有一定的了解。
除此之外,面试官有时候也会问一些较灵活的题目,例如“你最近半年比较有挑战性的事情”、“你觉得自己的优势在哪里”、“你最擅长什么”等,来考察对方对项目和技术理解的深度、个人的优势和长处等。
2、二面:BOSS面
一般来说,BOSS面的面试官会是部门/大团队的管理者,常常在HR面试前面,通常来说都是走个流程(当然也有例外)。
既然是走个流程,很多时候问的问题会根据面试官的心情不同而不一样。一般来说,你的简历里有让面试官感兴趣的内容,对方就会稍微问一下。如果没有比较特别的地方,可能会比较简单地聊一下天。
3、终面:HR面
HR面试通常也是比较流程化,会问一些生活或者非专业相关的工作问题。
HR更多是在考察候选人的稳定性,常见的问题包括“为什么跳槽”、“结婚了没”、“有木有男/女朋友”、“是否异地恋”、“家在哪里”等。有些公司也会考察候选人的价值观,有的甚至还会有一套价值观的题目让候选人完成。这些也都是从稳定性方面来把控,如果个人的价值观和公司文化不符合,并不适合长期合作。
这个环节淘汰率也很低,毕竟招人不容易,但是如果没过也不用太纠结,勉强得到的工作常常会更让人折磨。薪酬待遇的谈判也在这个环节,有些HR比较真诚,有的就喜欢砍价,具体还是得根据自己的个人能力来进行谈判。
总的来说,一次面试过程算下来可能多的有七八轮,少的也有四五轮,找工作是场持久战,需要好好准备。
🏆面试必备面试题:10万字208道Java经典面试题总结(附答案)
四、面试的技巧有哪些
面试的过程中也会有一些小技巧和注意事项。
1、自信
自信很重要,如果我们连自己都不相信自己,面试官又怎么会觉得你可靠呢?
自信的培养其实更多在日常生活和工作中,并不是临时准备就可以拥有的。但充分的准备也可以一定程度上提升我们的自信心,如果面试官问到的问题都在预期中,就可以很好地表达出来了。
2、真诚
真诚地表达自己,个人觉得是面试中最重要的部分。
我们可以从网上或是书本里学到一些面试技巧,也可以通过各种刷题来获得一些“最优”答案。但如果通过掩饰自身的一些真实情况而获得了一份工作,这份工作常常不会持久、也不会如意。因为面试官看中的是我们“装演”出来的品质,而不是真实的我们。
工作几乎占用我们生命的三分之一时间甚至更多,选择一个真正接纳自己的环境会舒适更多,也更能发挥个人的能力。
除此之外,专业技能方面若是问到了不懂的内容,诚实地表达出自己不了解,比强行进行解释给面试官留下的印象要更好。不懂可以学,但不懂装懂的行为可能会导致工作中或大或小的失误,是不大可取的。
当然,我们不需要很直白地告诉对方“我不会”,可以表达出愿意学习的态度,比如“这方面还没仔细研究过” “这块后面我可以去了解下”等。
3、主动
很多时候面试的时候我们会觉得自己是处于被动的一方,但其实找工作是双向选择的过程。
面试官常常要看不少的简历,也需要面试很多人,时间长了会容易疲惫,有时候也不再主动寻找对方的亮点。对求职者来说,适当的主动表现是加分项。
我们花费了很多的时间准备,如果面试过程对方连我们的优势都没有问到就结束了,那其实这样的面试效率会很低,我们也可能因为这样的问题而失去理想的工作机会。
在回答问题过程中,可以主动地将话题引向更能体现个人优势的地方。很多时候,面试官也会问你最擅长或者觉得有挑战性的一些工作内容,可以做好充足的准备来回答。而主动进行自我补充,有时候也可以带来一些额外的机会。
有一次面试过程中,一些比较基础但工作中接触不到的问题我都没答上来,我向对方解释自己还没来得及准备,后来面试官给了一周的准备时间,最终也顺利通过面试。
除此之外,我们换工作的时候,对新的工作内容也有一定的预期,如果这些预期无法从网上或是其他渠道了解到,可以在面试的时候主动询问和了解,例如团队氛围、工作内容、工作强度、团队定位等等。既然要花那么多精力找工作,当然要尽可能找到一份适合自己的。
4、复盘
大多数人都会在前面几次面试的时候因为准备的不够充分而没有通过,但每一次面试后做好复盘和总结是很重要的。
对于同样的职位,我们在某个面试过程被问到的问题,出现在后续其他面试的概率很大。所以面试结束后,不管顺利与否,都可以简单记录一下面试过程和相关问题,思考下是否有更好的解决方案、是否有优化的空间。面试过程会成长很多,也是通过不断地总结、反思、以及二次学习得到的收获。
我在面试一些候选人的时候,有时候也会参考他们之前的面试评价,挑一些对方之前没有回答上来的问题再次提问。如果这位同学能很好地回答出来,意味着他有很认真地进行总结和反思。光是这样一个习惯,在面试官眼里也会加分不少。
除了没有回答好的一些问题以外,我们也可以在面试结束后,让面试官给出一些建议。大多数人都“好为人师”,一般来说面试官都会给出比较真诚的建议,同时还会给面试官留下一些印象。根据面试官给到的建议,我们可以更新对自身的认知,补齐自己的不足。
五、补充:其他面试内容
专业知识也好,项目经验也好,比较难体现日常工作中的一些能力。而通过一些其他的问题,面试官可以更加全面地掌握候选人的信息。
1、逻辑思维
逻辑思维主要考察候选人思考的能力,是否结构化、是否有条理,表达描述是否清晰等。
2、技术开放题
使用技术相关的开放题,既可以考察面试对象对技术的掌握和灵活使用的程度。例如前端面试可能会包括以下的问题:
- 如今需要一次性插入1000个
,要怎么优化插入的性能;
- 在内存不足的情况下,如果一次只允许你装载和操作1亿条数据,怎么对100亿条数据进行排序;
- 在浏览器端,用Javascript存储2万个单元格的信息,包含单元格的宽高,位置,背景颜色,边框属性等,如何做到对这2万个单元格信息进行最优检索和存储;
3、逻辑思考
除了方案设计,一些逻辑推导的题目也可以作为考察的一部分。通常来说这类题目有时候让人觉得像脑筋急转弯,可能是这样的题目:
- 一个5L、一个6L的瓶子,要得到3L的水,要怎么做?
- 在一天之中,时针和分针共重叠多少次,时间分别是多少?
- 1=5,2=15,3=215,4=2145,那么 5=?
- 现有64匹马,8条赛道,至少跑多少个回合可以得到前4名?
还有一些开放性的题目,包括:
- 为什么下水道的盖子是圆的?
- 一个是两种药片,每种有两个,一个人需要早上吃两种药片各一个,现在这四个药片混在一起了这个人什么方法吃?
- 一盒蛋糕切成8份,分给8个人,但蛋糕盒里还必须留有一份,怎么分?
4、方案设计
设计方案的方式,比较贴近工作过程,可以从多个角度考察候选人的知识面、问题瓶颈和边界情况的考虑。举些例子:
方案设计会涉及候选人的思维能力、逻辑能力、结构化表达能力,一般来说会基于比较常见的一些功能进行设计,候选人需要考虑到正常的逻辑以及异常的情况,比如高并发、网络异常、用户的非正常操作等。
5、学习与技能
对于程序员来说,自学是很关键的一个能力,而面试过程可能会问到:
通过这些问题,面试官会了解到候选人对技术的热情、是否好学、抗压能力、解决问题能力等,来判断候选人是否符合团队要求、是否适合团队氛围。很多时候,这种看似随意的问题,也可以在面试过程中加分噢。
6、团队
团队相关的一些问题,可能会包括:
面试内容通常会因为面试官的喜好而不一样,所以运气也是面试过程中的一个因素。因此我们不需要太在意结果,但每次面试之后都可以思考自己是否还有可以改善的地方。
在准备面试的过程中,下面这本书会是你的好帮手:
🏆本文收录于,Java基础教程(进阶篇)。
目前已经800+订阅,CSDN最强Java专栏,包含全部Java基础知识点、Java8新特性、Java集合、Java多线程、Java代码实例,理论结合实战,实现Java的轻松学习。
🏆哪吒多年工作总结:Java学习路线总结,搬砖工逆袭Java架构师。