程序猿职场心理学,教你三进三出“斩”HR拿offer(跳槽必看)

今天主要涉及到的是 HR 在面试时有哪些套路,这样可以见招拆招,斩获 offer!

主要包括以下内容:

一、程序员面试过程中,面试官想要从 “ 自我介绍 “ 获得什么信息?

二、如何去提炼简历中的精华?如何在沟通中体现你的软技能?

三、如何去解释简历中的瑕疵?

四、HR 通常喜欢问哪些与技术无关的问题?这些问题背后代表了什么?如何应对?

一、面试官想要从 “ 自我介绍 “ 获得什么信息

自我介绍是面试中必不可少却也非常重要的一个环节,想要在这个环节中达到最好的效果,首先你要知道面试官想要通过你的自我介绍了解到那些信息

先来说说 HR 让候选人面试的时候先做 “ 自我介绍 “ 究竟是在听什么。

很多候选人都还没有做好推销自己的准备,可能你会觉得我投递了一份完美的简历,准备好了一套很帅很干净的装备,但是,只要你无法证明你是这份工作的最佳人选,你之前的努力就会变成竹篮打水。

“自我介绍 “ 在 HR 招聘领域属于引入式问题,通常会在面试开始时说 “ 请你在三分钟内做一个自我介绍。” 

你只有全面地分析自己,真正了解自己,你才能够在面试中成功营销自己。把你最好的一面,和面试岗位最契合的部分,或者最有成就的项目突出介绍。如果你的面试平淡无奇没有亮点会削弱面试官对你的兴趣。

请大家记住以下几个问题,并记录下你的答案,自我介绍中提到这些内容都是会让面试官在最短时间认识你。

我最突出的技能是什么;

我在哪方面的知识掌握是最全面的;

我性格上最大的优势是什么;

我最擅长的事情是什么;

我有哪些成就和贡献;

除此之外 HR 还想从中听到候选人是否能客观地评估自己,自己的描述和简历上是否有出入,另外还在考核你的语言组织和表达能力,是否自信、流畅,有条理地介绍自己的工作经验。他们又不看论文,他们更想做的是和候选人一对一口头交流。

自我介绍中非常忌讳的有几点需要注意

1. 表达含糊不清,无法体现具体的成就

如果你能够有不错的总结能力可以把工作经历整合成一篇优秀的演讲稿。但是你的回答提到了过多和公司或者和工作无关的内容,这个就会扣分。

你说的东西并不是 HR 想听的内容,他想听的你又没有提到,场面就会十分尴尬。有些不耐烦的面试官甚至会直接打断你的自我介绍切入问他感兴趣的内容,这样的行为在你眼里还会觉得这个 HR 怎么这么不友好。

2. 缺乏热情

如果你面试的过程丝毫没有兴趣,提不起热情,HR 会认为你对这个岗位的兴趣度非常低。

3. 过于紧张

很多候选人在 coding 的时候可以把键盘敲出火花,但是一面对漂亮 HR 就开始紧张结巴。不仅你没办法好好面试,HR 可能也会草率地早早结束面试。

4. 耍小聪明

有些候选人自认为很聪明,会优先发问 HR 问题 “ 你到底想知道什么 “,” 你希望我谈谈哪个方面的问题 “ 等等,面试官无非要了解的就是你的工作经验、你的优势、教育背景。

不论 HR 问什么问题,最终不会逃出这几方面信息。何不自己先整理好之后给出不错的回答呢。

5. 缺乏眼神沟通

HR 会认为你不够自信,而且回答问题眼神闪烁很有可能质疑内容的真实性。如果 HR 长的美丽,那还不多看两眼?

总结一下,在最短的时间说出你最大的优势,并且具有逻辑性,切忌一直用额,啊,然后这些词,最好提前准备下,最好可以背出来。

二、如何去提炼简历中的精华

1. S.T.A.R 法则

情境 (situation)、任务 (task)、行动 (action)、结果 (result)

这里为大家介绍一个很多 HR 包括面试官在面试中运用的评估原则。也就是在什么情况下,安排了什么样的任务采取了什么样的行动,最后的结果如何,这同样是我们在写简历的时候经常使用的方式。

举个例子,100offer 平台上有位候选人的简历非常典型按照这个原则来写,我们来看一下

1)背景:

为了解决农村 X 宝各个业务线中统一规则的收拢,方便各业务线对规则的引用和修改,并提供运营可配置的简易页面,辅助开发完成业务规则的定制配置,解放开发工作力,加快业务迭代等目的。特此开发了一套针对规则的底层服务框架。

2)内容:

规则管理系统:主要负责规则的增删改查等基本功能的配置,暴漏 RPC 服务接口;

规则引擎系统:主要负责规则的计算、线程池的分配、引擎模板等内容;

规则治理中心:主要负责规则的可视化界面编写、规则的条件翻译配置等内容;

3)运行情况:

集群 QPS 为 1080,RT 为 30ms,对接业务 9 个,创建的执行规则 416 个。各个系统中分别设计了很多复杂设计点,部署独立,引用关联。

这是非常典型的 S.T.A.R 写法。这是一个什么项目,为什么要做这个项目,候选人在其中做了哪些工作,最后项目运行情况如何,面试官一目了然。

这样的项目经历可以说非常清晰。但这个是简历内容,你不可能在口述的时候一字不差,所以在这里面我们需要做点文章,让你在口述的时候一切都是这么顺其自然但是其实是精心设计过的。

我们需要在描述自己工作内容部分增加一些当时自己遇到的困难,碰到的技术难题。

比如你可以这么说:

" 当时在做某个模块的时候碰到了一个什么样的问题,之前没有经历过,感觉很无力。大家都在加班忙自己的工作内容,没时间来协助我解决这个问题。项目又非常赶,自己就只能硬着头皮上(或者类似需要跨部门沟通,推进项目进程,没人配合此类问题)"

stop!到此我们做一个铺垫,之后你需要说的是如何解决这个问题 ,不论是通过别人的协助,还是自己独立解决,成功与否都要说出来。

比如:

" 那时候自己从网上搜了很多资料,也一直在尝试。有时候实在自己搞不明白就会拉着同事一起吃中饭或者晚饭,利用大家空闲时间聊聊碰到的问题,看看他们有没有好的解决思路。最后呢是通过同事提供的思路和网上的一些方法,我自己尝试了几次,把这个问题解决了。"

OK,到此我们向面试官诉说了碰到的问题,以及自己如何解决这个问题,是那么的自然顺畅简直堪称完美。但是你以为结束了吗?并没有!

还有最后一步也是很重要的一步,也是大部分人都不会关注的一步! 那就是复盘。

你可以接着上面解决问题的话题接着往下说:

" 那个项目结束之后,自己去查了一下当时碰到的困难,在什么状态下会再次触发那个问题,自己去了解了其中的原理,觉得可以通过另外一种甚至多种方式解决,最终效果都一样,有些方式效率会更高,觉得挺有意思的,现在再碰到肯定不怕了,现在想想还是很有成就感的。"

这样的项目介绍让 HR 感受到你当时碰到了一个无比艰难的问题,但是自己一系列的行动把这个问题给解决了。解决了还不够,自己还举一反三有意外收获。那就是加分项!

相比面试官问一句你答一句,挤牙膏式的面试和描述非常简单的面试哪个效果会更好大家一目了然。与此同时你还体现了你的自学能力、抗压能力、责任心。

2. 结构化描述

面试是一个很废心的工作,面试官从早到晚真的很累,当你在做介绍的时候可以用非常清晰的结构介绍你的工作内容,面试官听了很舒服,简洁明了。

可以让 HR 在短时间抓住你的优势,并且做记录询问针对性问题,相比这一天其他的面试这个面试印象最为深刻!

如果你在面试中报账式的介绍而且逻辑很混乱,面试官还要从你的描述中做阅读理解,仔细听还要提炼重点。

比如:你说你很聪明,我在 ACM 比赛获奖,坚持一年每天早上第一个到公司,还组织过技术学习委员会。

HR 会觉得 … 信息量有点乱,他会需要记录之后重新梳理。

如果你能提前就把信息梳理好,会比之前那种描述更加具有结构化,更加清晰。

比如:我个人比较聪明,ACM 有拿过奖项。另外还很勤劳,一年时间每天坚持第一个到公司。另外还有一定的组织能力,公司的技术培训都是我来组织的。

HR 记录的内容很有可能是:有三点优势,聪明、勤劳、组织能力强,每一项都有一个事例来证明。

3. 挖掘有价值的内容

除了工作经历这个最重要的内容以外,简历我们还要自己先挖掘有价值的内容,比如学历。如果你是 985/211,千万不要吝啬从你嘴巴中说出你的学校,如果还是计算机专业,这绝对是你的加分项。

除了学历之外还有公司,有些公司已经是在互联网行业中耳熟能详的,但是有些公司名不见经传,非常低调但在行业中做出了很不错的成绩。

这个时候你就需要介绍一下公司核心产品在行业中是怎么样的一个地位,特别是同类比较知名的产品分别有谁。这样能让 HR 马上知道有可以对标的公司产品,就会很容易理解。

有些人会过多阐述个人简介这个部分。现在很多人的简历写得很有性格,很独特,但其实这些内容并非简历的重点。除了你有获得过某赛事的奖项和公司内部评定的奖项可以着重介绍一下,其他个人性格、爱好、业余时间会做什么,简单提一下即可。

不需要花很长的时间来描述这些内容。HR 也不会因为你喜欢游泳或者跑步而决定 offer 你,对吧。

那以上便是教大家如何在介绍项目和自我介绍的时候把简历中的精华提炼出来,并用适当的方式描述给面试官,大家可以看看自己简历是不是有什么可以修改或者补充的,让自己有更好的内容可以说。

三、如何去解释简历中的瑕疵?

1. 频繁跳槽

现在互联网行业中 1 年 1 跳的频率都已经是相对稳定的,可如果你在 1 年内发生过多次跳槽,HR 一定会质问你,能说说为什么 1 年中有多次跳槽的行为吗,HR 会怀疑你的稳定性。

你如果不说出个所以然,我怎么敢录用你,怎么证明你能在加入了我们公司之后能稳定呢?

首先我们再一次强烈呼吁每一位候选人在对自己的跳槽决定要负责,要考虑全面,考虑清楚。不建议在简历上作假,合并就职公司时间。

有可能你的简历稳定性看起来很好,但是其实有所隐瞒。每一段离职都会暴露出很多问题,你不敢直面这些问题,到最后会让你无槽可跳。

如果你说第一家是因为和团队不合,第二家公司是因为公司距离太远,第三家公司走是因为钱不够,HR 会觉得,团队不合,会不会代表你无法融入公司文化,也没办法好好和同事相处?

公司距离太远,那你在决定接这个 offer 之前不会自己查好路线吗?上了这么久的班才觉得公司距离太远吗?钱没给到位,没给到位你就接那个 offer 了?这样轻易做出跳槽决定是不是对自己太不负责了,也对公司不负责。

所以 100offer 建议这种问题最好在面试前就准备好如何回答,且回答的方向应该是比较正面的。切记不要在面试的时候各种吐槽你上一家公司,和上一任老板。

哪怕你之前在公司中发生过激烈的交涉,有时要学会委婉表达,但切勿随意甩锅给你的前任老大。

一般我会建议候选人这么回答这个问题:

" 之前的老大,技术能力的确很不错,但是他不太愿意分享。平时我们组织技术分享会,他也只是偶尔过来听听从未担任过讲师。"

当然这不是标准答案,但是记住这类问题的回答思路不要甩锅,不要吐槽,要客观描述事实,少用一些很刺耳的否定词语。避免 HR 面试完给你打上了负能量的标签。

2. 空窗期

对于有些候选人选择了裸辞,辞职之后不论是选择去旅行来放松自己还是处理家务事都是没问题的。但是你也要理解 HR 从他的视角中看到这些事需要询问清楚。

或者有些候选人会选择辞职目的为了转行,自己在家闭门修炼啃书带训练花了 3 个月时间甚至更多。

HR 也不是苛刻的要死,非要你每段经历都 100% 无缝衔接上,那么这段时间空白期为什么没有衔接上?都是做了什么事?说明白了就 OK 了。

3. 个人创业

还有种情况就是辞职和朋友合伙创业。这里面有一个小细节,就是假设你之前的背景很不错,优秀互联网 /IT 公司的资深程序员,被好朋友的商业模式吸引,你的 title 突然摇身一变成为了 “技术负责人” or “CTO”,你一定要平常心去对待这个问题。

并不是你的技术能力真的达到了这个水平,而是你算是公司成立的第一位程序员,这个 title 不给你,给谁呢?所以这里要和大家说明,并不是当你 title 成为了 CTO 之后,下一份公司也一定要看 CTO 的岗位或者技术经理的岗位。

回归市场之后你还是原先那个你。别让 HR 觉得你创业过心就浮起来,如果显露出了不够谦卑的态度,人家这么小的庙还能容纳你这尊菩萨吗,真的厉害你继续创业呗为啥还要找工作呢?

其实 HR 对你创业的经历更有兴趣询问的是你当时为什么想创业,是不是有好的想法还会辞职去创业,你的稳定性如何,你能在我们这里做多久,你会热爱我们这份工作吗?所以知道 HR 在想什么之后,你知道怎么回答 HR 了么?

四、HR 通常喜欢问哪些与技术无关的问题?这些问题背后代表了什么?如何应对?

首先这个行业中懂技术的 HR 占少数,自然 HR 关注的点一定是技术以外的内容。面试中排在最优先的问题称之为 “行为式问题”,就是要问到候选人参与过一些具体活动的事例,来了解这个人做事的一些特征,他的能力水平和素质状况。 

那这一点在之前一个问题中已经教大家利用 S.T.A.R. 方式来整理自己过往经历并且在面试中有结构地描述给面试官。除了这类问题以外 100offer 来教大家识别一下 HR 其他问题中的套路。

1. 虚拟情景问题

HR 在问这类问题的背景很有可能是公司或者部门现在正在碰到的,HR 会从这类问题中考察候选人在未来实际操作中会怎么做。很有可能是看你之前如何处理,

这类方式是否适合在未来公司适用。会利用前面提到的 S.T.A.R 的原则来考察你的回答是否符合他们的预期。

假设你面试的公司目前正处在创业初期,因为方向的不确定性导致项目经常变更,HR 可能会问一些 “ 你是喜欢有既定方向去做事还是可以根据实际情况随机应变?” 

这样他能了解你的内心更偏向哪一类的工作模式,根据你的回答他能知道你在面对项目变更的时候你的心态是接受还是抗拒的。

这类问题的回答建议从你内心出发,尽量不要说自己违心的话,因为这样很有可能你为了想面试通过欺骗自己,等到真实工作的时候发现情况和自己预期的完全两样,工作出现负面情绪最终短时间离职。

2. 压力测试问题

压力测试问题通常是用来对应一些抗压能力比较高的岗位。压力测试是面试官用来刺探你,考验你在被打压、紧张、不自在的状态下会如何作答。

此时往往人类的自我保护意识会非常明显,所以真实的一面一般都会显露。同时还会和动机式问题结合在一起,HR 特别喜欢这样的组合拳,因为效果的确很好。

什么情况下会问出压力性问题呢。对你过去的某一个类事件进行追问(行为面试法 BEI)

比如,在问过你最有成就感的项目回答很不错的时候(之前已经教过大家了),HR 会问,可以谈谈最失败的一个项目或者经历吗?这类问题通常都是以 “最难忘 / 最成功 / 最失败….. 的方式提问”,随后不断追问细节。

这个方式会让候选人非常不自在,感觉受到了严刑逼供式的拷问,但是往往在这样的情况下是可以测试出你是否有说谎。因为一般来说一个谎言需要 3-5 句话来圆谎,如果你编造了一个故事,说的越多,你的漏洞就越多。

还有一种情况会使用压力面试。你的简历很优秀,一般的面试官 hold 不住你,觉得问了一些问题都难不倒你,可能会有压力测试来看看你的反映。

实际上他们是想控制这个面试节奏,不被你带跑。

有些候选人在面试完之后给我们顾问的反馈是,哎呀那家公司的面试官好像不太好相处啊,整个面试都是板着脸,眉头紧锁。我也不知道他在想什么,感觉自己面试发挥的不是很好。

比较极端的就是,因为面试官问的技术问题和候选人直接在现场怼起来,结果可想而知。

碰到这类情况我们怎么分辨呢?其实在我看来没必要想明白什么是压力测试什么不是。兵来将挡水来土掩,用平常心面对整个面试,回答问题的状态不急不慢有条理。

但要说这类问题有什么建议,其实还是有的,就是当你感觉到某个问题是你很难招架或者不太合乎常理的时候,你可以当即反问回去。

举个例子,当面试官说:

“我们部门最近项目要赶进度,你来的话会经常加班”

这时候如果真的是你不能接受加班,那就实话实说。不排除这是一个压力测试,所以你可以马上反问:

“会经常加班吗?公司经常加班的强度频率如何?”

当你这么一问,你也能知道公司究竟是怎么加班的?是赶项目还是硬性规定?这样面试官在接收你这个问题的时候会开始解释他定义的加班强度是怎么样的,你听清楚之后可以根据自身情况判断是否可以接受,就能巧妙化解这个问题。

最后你还可以这么说,面试官听到之后就可以做出相应判断了。

“这个加班方面自己有一些想法,赶项目加班属于正常,自己也非常支持希望看到项目早点上线,但是如果每天的工作可以按时完成,这样还需要加班,这样不太合适。”

另外还有类问题是:

“你之前和老大和同事关系都不错,公司福利待遇也不错,那你为什么要走呢?是不是你觉得钱太少了”

这是 HR 通过动机和压力的结合型问法。他们想确认什么?第一,你真实的离职原因,同时用薪资福利待遇这个来测试是否是你最重要的原因之一,或者也不是薪资方面的问题,还是另有原因。

我会建议大家在离职动机方面首先自己要很清楚,不管你是因为和老大吵架一气之下要走,还是因为公司不允许办公室恋情而成全另一半,你都要找到一个 HR 认为合理的理由。

我总结了几点大家可以选择回答的:

1)如实回答。面试是需要非常真诚的,如果你欺骗了面试官,当入职前背景调查查出问题,那抱歉,你可能就会因为不诚信而被用人公司放弃录用。

2)公司的产品项目调整了方向,后续这个方向和自己的规划有出入。(不能说技术有出入。如果说后续会用一些其他技术,因为这点你觉得有出入,那潜台词就是你不想学习新技术咯?)

3)自己有很多想法没办法得到实现,团队提供的空间太小了,没施展空间(想要换个环境晋升,要飞得更高)

4)根据自身情况回答(搬了新家,公司离新家太远无法接受,或者犹豫个人家庭原因离开,类似老婆要生了,想请假去陪产。但是公司不批假,无奈辞职。)

压力测试还有一个作用,用于测试候选人所说是否真实。这个就要看各位候选人自己的回答是否夹杂水分了。

3. 应变性问题

“井盖为什么是圆的?” 这种问题是没有标准答案的,他更关心的是你为什么会这么回答,告诉我你的理由是什么。那么怎么判断这类是应变性问题呢?

这类问题你在思考过程中会发现有且不止一个可能性:因为下水道是圆的,所以井盖是圆的;因为圆形可以滚,方便搬运;因为圆的好看 … 等等。

所以这类问题要理清自己回答的逻辑,说出你的回答并且用你的逻辑去支撑。这样 HR 会知道你是从什么角度看待这个问题。

综上这几类问题是 HR 比较常见会询问的:行为面试法、虚拟场景、压力测试、应变性问题。

4. 其他几个比较常见的问题(附上回答思路)

Q:X 年内的规划是什么 / 自己的职业规划是什么 / 半年后你觉得你能做出怎样的成绩?

HR 考察重点:公司的发展目标与你个人长期目标是否一致?

有些候选人寻求急速发展的空间和平台,但是公司是一个非常稳定的状态,那怎么给你这样的空间呢?或者你在加入之后晋升获得了更不错的 title 及薪资,你的工作目标和初衷是否已经变得完全不同了?

A:这类问题回答如果只是把你的工作内容复述一遍,是无法打动 HR 的,这样的答案太笼统,很多人这么回答就会变得毫无新意。

首先这个问题会有一个时间跨度,需要了解这合理的时间跨度中你的发展会如何。比如做开发的,一般能力达到了,且涉及到了一些比较不错的核心项目,顺利的话一般 1-2 年是可以有一个晋升的过程,你可以这样说:

" 首先还是做好本职工作,另外自己的优势会在大数据方向,也是自己感兴趣的内容,公司在之后的发展中大数据对业务支撑会起到很重要的作用。自己通过实战结合理论个人是想在以后的工作中承担更多的职能,想负责管理一个团队。"

你有野心,想成为 leader,看好公司发展同时自己发展和公司能保持平行,且为公司业务出一份力,这些都是你的目标。这样就给 HR 传递了一个非常积极且有目标性的信号。

Q:你最失败的经历 / 最丢脸的事 / 最大的缺点是什么?

HR 考察重点:这类问题都是需要将负能量转化成积极的答案,如果你顺着答案只说了不好的信息,那很有可能让 HR 继续追问如果碰到同样的情况你是不是会有同样的处理方式——也就是离职。这样你就被带到坑里去了。

A:你需要简单介绍一下一个案例,告诉面试官你碰到了什么样的情况,当时自己的想法和状态。话锋一转就要说自己通过什么样的方式做出了如何的改变,让 HR 知道你的心态和行为都从负能量转化为了正能量。

面试的方法是了解的差不多了,但是工作是个看硬本事的地方,没有好的技术,你把面试官忽悠的天花乱坠也是没有任何作用的,就算侥幸拿到了offer,正式工作的时候还是被打回原形。

那么作为一名Java程序员,应该掌握那些基本技能呢?以下是我根据自己十余年工作经验总结出来的一下知识点,相信这些技术你都能掌握,并且熟练使用知道那些底层原理的时候,绝对少不了你的offer。

基本语法

这包括static、final、transient等关键字的作用,foreach循环的原理等等。今天面试我问你static关键字有哪些作用,如果你答出static修饰变量、修饰方法我会认为你合格,答出静态块,我会认为你不错,答出静态内部类我会认为你很好,答出静态导包我会对你很满意,因为能看出你非常热衷研究技术。

集合

非常重要,也是必问的内容。基本上就是List、Map、Set,问的是各种实现类的底层实现原理,实现类的优缺点。

集合要掌握的是ArrayList、LinkedList、Hashtable、HashMap、ConcurrentHashMap、HashSet的实现原理,能流利作答,当然能掌握CopyOnWrite容器和Queue是再好不过的了。另外多说一句,ConcurrentHashMap的问题在面试中问得特别多,大概是因为这个类可以衍生出非常多的问题,关于ConcurrentHashMap,我给网友朋友们提供三点回答或者是研究方向:

ConcurrentHashMap的锁分段技术

ConcurrentHashMap的读是否要加锁,为什么

ConcurrentHashMap的迭代器是强一致性的迭代器还是弱一致性的迭代器

设计模式

当然咱们不能这么功利,为了面试而学习,设计模式在工作中还是非常重要、非常有用的,23种设计模式中重点研究常用的十来种就可以了,面试中关于设计模式的问答主要是三个方向:

你的项目中用到了哪些设计模式,如何使用

知道常用设计模式的优缺点

能画出常用设计模式的UML图

多线程

这也是必问的一块了。因为三年工作经验,所以基本上不会再问你怎么实现多线程了,会问得深入一些比如说Thread和Runnable的区别和联系、多次start一个线程会怎么样、线程有哪些状态。当然这只是最基本的,出乎意料地,几次面试几乎都被同时问到了一个问题,问法不尽相同,总结起来是这么一个意思:

假如有Thread1、Thread2、ThreaD3、Thread4四条线程分别统计C、D、E、F四个盘的大小,所有线程都统计完毕交给Thread5线程去做汇总,应当如何实现?

JDK源码

要想拿高工资,JDK源码不可不读。上面的内容可能还和具体场景联系起来,JDK源码就是实打实地看你平时是不是爱钻研了。面试过程中被问了不少JDK源码的问题,其中最刁钻的一个问了String的hashCode()方法是怎么实现的,幸好平时String源代码看得多,答了个大概。JDK源码其实没什么好总结的,纯粹看个人,总结一下比较重要的源码:

List、Map、Set实现类的源代码

ReentrantLock、AQS的源代码

AtomicInteger的实现原理,主要能说清楚CAS机制并且AtomicInteger是如何利用CAS机制实现的

线程池的实现原理

Object类中的方法以及每个方法的作用

框架

老生常谈,面试必问的东西。一般来说会问你一下你们项目中使用的框架,然后给你一些场景问你用框架怎么做,比如我想要在Spring初始化bean的时候做一些事情该怎么做、想要在bean销毁的时候做一些事情该怎么做、MyBatis中$和#的区别等等,这些都比较实际了,平时积累得好、有多学习框架的使用细节自然都不成问题。

数据库

数据库十有八九也都会问到。一些基本的像union和union all的区别、left join、几种索引及其区别就不谈了,比较重要的就是数据库性能的优化,如果对于数据库的性能优化一窍不通,那么有时间,还是建议你在面试前花一两天专门把SQL基础和SQL优化的内容准备一下。

不过数据库倒是不用担心,一家公司往往有很多部门,如果你对数据库不熟悉而基本技术又非常好,九成都是会要你的,估计会先把你放到对数据库使用不是要求非常高的部门锻炼一下。

数据结构和算法分析

数据结构和算法分析,对于一名程序员来说,会比不会好而且在工作中绝对能派上用场。数组、链表是基础,栈和队列深入一些但也不难,树挺重要的,比较重要的树AVL树、红黑树,可以不了解它们的具体实现,但是要知道什么是二叉查找树、什么是平衡树,AVL树和红黑树的区别。记得某次面试,某个面试官和我聊到了数据库的索引,他问我:

你知道索引使用的是哪种数据结构实现吗?

Java虚拟机

谈谈Java虚拟机中比较重要的内容:

Java虚拟机的内存布局

GC算法及几种垃圾收集器

类加载机制,也就是双亲委派模型

Java内存模型

happens-before规则

volatile关键字使用规则

这还只是Java程序员的最基本要求,你不可能在基础的程序员上面干一辈子所以我们只会慢慢的往上走,下面是我收藏的一个系统的学习图谱,如果需要可以加入我的Java架构交流学习群:650385180,我会在群里分享多年工作经验的梳理和总结,带着大家全面、科学地建立自己的技术体系和技术认知!

以下是我收藏的一个系统学习的图谱,一共六个专题:

并发编程专题

源码分析专题

性能优化团队协作专题

微服务架构专题

项目实战专题

分布式架构专题

总结:

以上就是我今天所要书写的内容,希望以上的内容可以帮助到正在默默艰辛,遇到瓶疾且不知道怎么办的Java程序员们,我能帮你的只有这么多了,要是想深入学习、系统掌握的,可以加上面的群,希望这些知识点可以帮助在这个行业发展的朋友和伙伴们,在论坛博客等地方少花些时间找资料,把有限的时间,真正花在学习上。

猜你喜欢

转载自my.oschina.net/u/3778089/blog/1795365