你见过程序员跳槽宝典吗,35岁后慎点

还有俩月就又要到一年一度的金九银十跳槽季了,你们开始做准备了吗。

马云曾经总结过,一个员工在你这不想干了,无非两个理由:

  1. 钱没到位
  2. 心里受委屈了

这两句话可谓是道出了多少跳槽人的心声。很多人都说程序员是吃青春饭的,虽然我本身并不是特别赞同这句话,但也可以看出一个问题,那就是现在还在市场上四处求职的人,基本上都是处于二十多岁到三十岁之间的,也就是我们所谓的九零后居多。(资深程序员是不会拿简历去面试的,都是内推!内推!内推!重要的事儿说三遍!)

不管是不是内推都需要去面试,都需要去过HR那一关,差别只在于面试的机会多与少了。

由于每一次机会都很宝贵,为了保证各位成功率,今天与大家分享一下JAVA程序员面试技巧与知识点,让你面试跟开了挂一样,让你拿offer的几率提升百分之八十。

来吧,看干货。

前言

不论是校招还是社招都避免不了各种面试、笔试,如何去准备这些东西就显得格外重要。不论是笔试还是面试都是有章可循的,我这个“有章可循”说的意思只是说应对技术面试是可以提前准备。

运筹帷幄之后,决胜千里之外!不打毫无准备的仗,我觉得大家可以先从下面几个方面来准备面试:

  1. 自我介绍。(你可千万这样介绍:“我叫某某,性别,来自哪里,学校是哪个,自己爱干什么”,记住:多说点简历上没有的,多说点自己哪里比别人强!)
  2. 自己面试中可能涉及哪些知识点、哪些知识点是重点。
  3. 面试中哪些问题会被经常问到、面试中自己该如何回答。(强烈不推荐背题,第一:通过背这种方式你能记住多少?能记住多久?第二:背题的方式的学习很难坚持下去!)
  4. 自己的简历该如何写。

“80%的offffer掌握在20%的人手中” 这句话也不是不无道理的。决定你面试能否成功的因素中实力固然占有很大一部分比例,但是如果你的心态或者说运气不好的话,依然无法拿到满意的 offffer。运气暂且不谈,就拿心态来说,千万不要因为面试失败而气馁或者说怀疑自己的能力,面试失败之后多总结一下失败的原因,后面你就会发现自己会越来越强大。

另外,大家要明确的很重要的几点是:

  1. 写在简历上的东西一定要慎重,这可能是面试官大量提问的地方;
  2. 大部分应届生找工作的硬伤是没有工作经验或实习经历
  3. 将自己的项目经历完美的展示出来非常重要

一 面试前的准备

1.1 如何准备一场面试

不论是校招还是社招都避免不了各种面试、笔试,如何去准备这些东西就显得格外重要。不论是笔试还是面试都是有章可循的,我这个“有章可循”说的意思只是说应对技术面试是可以提前准备。 我其实特别不喜欢那种临近考试就提前 背啊记啊各种题的行为,非常反对!我觉得这种方法特别极端,而且在稍有一点经验的面试官面前是根本没有用的。 建议大家还是一步一个脚印踏踏实实地走。

1.1.1 如何获取大厂面试机会?

在讲如何获取大厂面试机会之前,先来给大家科普/对比一下两个校招非常常见的概念——春招和秋招。

  1. 招聘人数 :秋招多于春招 ;
  2. 招聘时间 : 秋招一般7月左右开始,大概一直持续到10月底。但是大厂(如BAT)都会早开始早结束,所以一 定要把握好时间。春招最佳时间为3月,其次时间为4月,进入5月基本就不会再有春招了(金三银四)。
  3. 应聘难度 :秋招略大于春招;
  4. 招聘公司: 秋招数量多,而春招数量较少,一般为秋招的补充。

综上,一般来说,秋招的含金量明显是高于春招的。

下面我就说一下我自己知道的一些方法,不过应该也涵盖了大部分获取面试机会的方法。

  1. 关注大厂官网,随时投递简历(走流程的网申);
  2. 2线下参加宣讲会,直接投递简历;
  3. 找到师兄师姐/认识的人,帮忙内推(能够让你避开网申简历筛选,笔试筛选,还是挺不错的,不过也还是需要 你的简历够棒);
  4. 博客发文被看中/Github优秀开源项目作者,大厂内部人员邀请你面试;
  5. 求职类网站投递简历(不是太推荐,适合海投);

除了这些方法,我也遇到过这样的经历:有些大公司的一些部门可能暂时没招够人,然后如果你的亲戚或者朋友刚好 在这个公司,而你正好又在寻求offffer,那么面试机会基本上是有了,而且这种面试的难度好像一般还普遍比其他正规面试低很多。

1.1.2 面试必知

下面几点概括起来就是:了解自己的能力、要应聘的公司、自己要应聘的岗位,提前做好自己我介绍以及项目介绍等 等方面的功课,确保你能在面试过程中简短清晰的回答出来(可以用Star法则来组织自己的语言)。

1) 准备自己的自我介绍

从HR面、技术面到高管面/部门主管面,面试官一般会让你先自我介绍一下,所以好好准备自己的自我介绍真的非常 重要。网上一般建议的是准备好两份自我介绍:一份对hr说的,主要讲能突出自己的经历,会的编程技术一语带过; 另一份对技术面试官说的,主要讲自己会的技术细节,项目经验,经历哪些就一语带过。

我这里简单分享一下我自己的自我介绍的一个简单的模板吧:

面试官,您好!我叫某某。大学时间我主要利用课外时间学习某某。在校期间参与过一个某某系统的开发,另 外,自己学习过程中也写过很多系统比如某某系统。在学习之余,我比较喜欢通过博客整理分享自己所学知 识。我现在是某某社区的认证作者,写过某某很不错的文章。另外,我获得过某某奖,我的Github上开源的某个 项目已经有多少Star了。

2) 关于着装

穿西装、打领带、小皮鞋?NO!NO!NO!这是互联网公司面试又不是去走红毯,所以你只需要穿的简单大方就 好,不需要太正式。

3) 随身带上自己的成绩单和简历

有的公司在面试前都会让你交一份成绩单和简历当做面试中的参考。

4) 如果需要笔试就提前刷一些笔试题

平时空闲时间多的可以刷一下笔试题目(牛客网上有很多)。但是不要只刷面试题,不动手code,程序员不是为了 考试而存在的。刷题可点击此处获取资料。

5) 花时间一些逻辑题

面试中发现有些公司都有逻辑题测试环节,并且都把逻辑笔试成绩作为很重要的一个参考。

6) 准备好自己的项目介绍

如果有项目的话,技术面试第一步,面试官一般都是让你自己介绍一下你的项目。你可以从下面几个方向来考虑:

  1. 对项目整体设计的一个感受(面试官可能会让你画系统的架构图)
  2. 在这个项目中你负责了什么、做了什么、担任了什么角色
  3. 从这个项目中你学会了哪些东西,使用到了哪些技术,学会了哪些新技术的使用
  4. 另外项目描述中,最好可以体现自己的综合素质,比如你是如何协调项目组成员协同开发的或者在遇到某一个 棘手的问题的时候你是如何解决的又或者说你在这个项目用了什么技术实现了什么功能比如:用redis做缓存提高 访问速度和并发量、使用消息队列削峰和降流等等。

7) 提前了解公司以及要应聘的岗位

面试之前一定要提前对要应聘的公司以及岗位有所了解,这一点对于喜欢海投的同学来说要格外注意。如果你去一个 公司面试连公司的主要业务或者主要产品都不了解的话,那么面试官打心里肯定会觉得你并没有很重视他们公司,所 以他们为什么要重视你呢?你也要提前了解你所要应聘岗位对你的专业能力或者其他能力的要求,比如有的岗位就是 需要英语水平比较高,需要你通过六级或者托福雅思,假如你不满足的话,那就没必要再去投递简历面试了。

1.1.3 提前准备技术面试

搞清楚自己面试中可能涉及哪些知识点、哪些知识点是重点。面试中哪些问题会被经常问到、自己该如何回答。(强 烈不推荐背题,第一:通过背这种方式你能记住多少?能记住多久?第二:背题的方式的学习很难坚持下去!)

1.1.4 面试之前做好定向复习

所谓定向复习就是专门针对你要面试的公司来复习。比如你在面试之前可以在网上找找有没有你要面试的公司的面经。

举个栗子:在我面试 ThoughtWorks 的前几天我就在网上找了一些关于 ThoughtWorks 的技术面的一些文章。然后 知道了 ThoughtWorks 的技术面会让我们在之前做的作业的基础上增加一个或两个功能,所以我提前一天就把我之 前做的程序重新重构了一下。然后在技术面的时候,简单的改了几行代码之后写个测试就完事了。如果没有提前准 备,我觉得 20 分钟我很大几率会完不成这项任务。

1.1.5 面试之后复盘

​如果失败,不要灰心;如果通过,切勿狂喜。面试和工作实际上是两回事,可能很多面试未通过的人,工作能力比你 强的多,反之亦然。我个人觉得面试也像是一场全新的征程,失败和胜利都是平常之事。所以,劝各位不要因为面试 失败而灰心、丧失斗志。也不要因为面试通过而沾沾自喜,等待你的将是更美好的未来,继续加油!

1.6 七个大部分程序员在面试前很关心的问题

身边的朋友或者公众号的粉丝很多人都向我询问过:“我是双非/三本/专科学校的,我有机会进入大厂吗?”、“非计算机专业的学生能学好吗?”、“如何学习Java?”、“Java学习该学哪些东西?”、“我该如何准备Java面试?”......这些方面的问题。我会根据自己的一点经验对大部分人关心的这些问题进行答疑解惑。现在又刚好赶上考研结束,这篇文章也算是给考研结束准备往Java后端方向发展的朋友们指明一条学习之路。道理懂了如果没有实际行动,那这篇文章对你或许没有任何意义。

Question1:我是双非/三本/专科学校的,我有机会进入大厂吗?

我自己也是非985非211学校的,结合自己的经历以及一些朋友的经历,我觉得让我回答这个问题再好不过。

首先,我觉得学校歧视很正常,真的太正常了,如果要抱怨的话,你只能抱怨自己没有进入名校。但是,千万不要动不动说自己学校差,动不动拿自己学校当做自己进不了大厂的借口,学历只是筛选简历的很多标准中的一个而已,如果你够优秀,简历够丰富,你也一样可以和名校同学一起同台竞争。

企业HR肯定是更喜欢高学历的人,毕竟985,211优秀人才比例肯定比普通学校高很多,HR团队肯定会优先在这些学校里选。这就好比相亲,你是愿意在很多优秀的人中选一个优秀的,还是愿意在很多普通的人中选一个优秀的呢? 双非本科甚至是二本、三本甚至是专科的同学也有很多进入大厂的,不过比率相比于名校的低很多而已。从大厂招聘的结果上看,高学历人才的数量占据大头,哪些成功进入BAT、美团,京东,网易等大厂的双非本科甚至是二本、三本甚至是专科的同学往往是因为具备丰富的项目经历或者在某个含金量比较高的竞赛比如ACM中取得了不错的成绩。一部分学历不突出但能力出众的面试者能够进入大厂并不是说明学历不重要,而是学历的软肋能够通过其他的优势来弥补。 所以,如果你的学校不够好而你自己又想去大厂的话,建议你可以从这几点来做:①尽量在面试前最好有一个可以拿的出手的项目;②有实习条件的话,尽早出去实习,实习经历也会是你的简历的一个亮点(有能力在大厂实习最佳!);③参加一些含金量比较高的比赛,拿不拿得到名次没关系,重在锻炼。

Question2:非计算机专业的学生能学好Java后台吗?我能进大厂吗?

当然可以!现在非科班的程序员很多,很大一部分原因是互联网行业的工资比较高。我们学校外面的培训班里面90%都是非科班,我觉得他们很多人学的都还不错。另外,我的一个朋友本科是机械专业,大一开始自学安卓,技术贼溜,在我看来他比大部分本科是计算机的同学学的还要好。参考Question1的回答,即使你是非科班程序员,如果你想进入大厂的话,你也可以通过自己的其他优势来弥补。

我觉得我们不应该因为自己的专业给自己划界限或者贴标签,说实话,很多科班的同学可能并不如你,你以为科班的同学就会认真听讲吗?还不是几乎全靠自己课下自学!不过如果你是非科班的话,你想要学好,那么注定就要舍弃自己本专业的一些学习时间,这是无可厚非的。

建议非科班的同学,首先要打好计算机基础知识基础:①计算机网络、②操作系统、③数据机构与算法,我个人觉得这3个对你最重要。这些东西就像是内功,对你以后的长远发展非常有用。当然,如果你想要进大厂的话,这些知识也是一定会被问到的。另外,“一定学好数据机构与算法!一定学好数据机构与算法!一定学好数据机构与算法!”,重要的东西说3遍。

Question3: 我没有实习经历的话找工作是不是特别艰难?

没有实习经历没关系,只要你有拿得出手的项目或者大赛经历的话,你依然有可能拿到大厂的 offffer 。笔主当时找工作的时候就没有实习经历以及大赛获奖经历,单纯就是凭借自己的项目经验撑起了整个面试。

如果你既没有实习经历,又没有拿得出手的项目或者大赛经历的话,我觉得在简历关,除非你有其他特别的亮点,不然,你应该就会被刷。

Question4: 我该如何准备面试呢?面试的注意事项有哪些呢?

下面是我总结的一些准备面试的Tips以及面试必备的注意事项:

1. 准备一份自己的自我介绍,面试的时候根据面试对象适当进行修改(突出重点,突出自己的优势在哪里,切忌

流水账);

2. 注意随身带上自己的成绩单和简历复印件; (有的公司在面试前都会让你交一份成绩单和简历当做面试中的参

考。)

3. 如果需要笔试就提前刷一些笔试题,大部分在线笔试的类型是选择题+编程题,有的还会有简答题。(平时空闲

时间多的可以刷一下笔试题目(牛客网上有很多),但是不要只刷面试题,不动手code,程序员不是为了考试

而存在的。)另外,注意抓重点,因为题目太多了,但是有很多题目几乎次次遇到,像这样的题目一定要搞

定。4. 提前准备技术面试。 搞清楚自己面试中可能涉及哪些知识点、那些知识点是重点。面试中哪些问题会被经常问

到、自己改如何回答。(强烈不推荐背题,第一:通过背这种方式你能记住多少?能记住多久?第二:背题的方

式的学习很难坚持下去!)

5. 面试之前做好定向复习。 也就是专门针对你要面试的公司来复习。比如你在面试之前可以在网上找找有没有你

要面试的公司的面经。

6. 准备好自己的项目介绍。 如果有项目的话,技术面试第一步,面试官一般都是让你自己介绍一下你的项目。你

可以从下面几个方向来考虑:①对项目整体设计的一个感受(面试官可能会让你画系统的架构图;②在这个项

目中你负责了什么、做了什么、担任了什么角色;③ 从这个项目中你学会了那些东西,使用到了那些技术,学

会了那些新技术的使用;④项目描述中,最好可以体现自己的综合素质,比如你是如何协调项目组成员协同开

发的或者在遇到某一个棘手的问题的时候你是如何解决的又或者说你在这个项目用了什么技术实现了什么功能

比如:用redis做缓存提高访问速度和并发量、使用消息队列削峰和降流等等。

7. 面试之后记得复盘。 面试遭遇失败是很正常的事情,所以善于总结自己的失败原因才是最重要的。如果失败,

不要灰心;如果通过,切勿狂喜。

一些还算不错的 Java面试/学习相关的仓库,相信对大家准备面试一定有帮助:盘点一下Github上开源的Java面试/

学习相关的仓库,看完弄懂薪资至少增加10k

Question5: 我该自学还是报培训班呢?

我本人更加赞同自学(你要知道去了公司可没人手把手教你了,而且几乎所有的公司都对培训班出生的有偏见。

为什么有偏见,你学个东西还要去培训班,说明什么,同等水平下,你的自学能力以及自律能力一定是比不上自学的

人的)。但是如果,你连每天在寝室坚持学上8个小时以上都坚持不了,或者总是容易半途而废的话,我还是推荐你

去培训班。观望身边同学去培训班的,大多是非计算机专业或者是没有自律能力以及自学能力非常差的人。

另外,如果自律能力不行,你也可以通过结伴学习、参加老师的项目等方式来督促自己学习。

总结:去不去培训班主要还是看自己,如果自己能坚持自学就自学,坚持不下来就去培训班。

Question6: 没有项目经历/博客/Github开源项目怎么办?

从现在开始做!

网上有很多非常不错的项目视频,你就跟着一步一步做,不光要做,还要改进,改善。另外,如果你的老师有相关 Java 后台项目的话,你也可以主动申请参与进来。

如果有自己的博客,也算是简历上的一个亮点。建议可以在掘金、Segmentfault、CSDN等技术交流社区写博客,当然,你也可以自己搭建一个博客(采用 Hexo+Githu Pages 搭建非常简单)。写一些什么?学习笔记、实战内容、读书笔记等等都可以。

多用 Github,用好 Github,上传自己不错的项目,写好 readme 文档,在其他技术社区做好宣传。相信你也会收获一个不错的开源项目!

Question7: 大厂到底青睐什么样的应届生?

从阿里、腾讯等大厂招聘官网对于Java后端方向/后端方向的应届实习生的要求,我们大概可以总结归纳出下面这 4 点能给简历增加很多分数:

  1. 参加过竞赛(含金量超高的是ACM);
  2. 对数据结构与算法非常熟练;
  3. 参与过实际项目(比如学校网站);
  4. 参与过某个知名的开源项目或者自己的某个开源项目很不错;

除了我上面说的这几点,在面试Java工程师的时候,下面几点也提升你的个人竞争力:

  • 熟悉Python、Shell、Perl等脚本语言;
  • 熟悉 Java 优化,JVM调优;
  • 熟悉 SOA 模式;
  • 熟悉自己所用框架的底层知识比如Spring;
  • 了解分布式一些常见的理论;
  • 具备高并发开发经验;大数据开发经验等等。

 

由于内容太多了下面只给大家展示部分内容感兴趣的朋友可以关注后私信小编“面试”获取完整版本

内容简介

Java

  • 2.1 Java基础知识
  • 2.2 Java集合框架
  • 2.3 Jave多线程
  • 2.4 Java虚拟机
  • 2.5 设计模式

 

计算机网络常见面试点总结

  • 3.1 TCP、UDP协议的区别
  • 3.2 在浏览器中输入ur1地址->>显示主页的过程
  • 3.3 各种协议与HTTP协议之间的关系
  • 3.4 HTTP长连接、短连接
  • 3.5 TCP三次握手和四次挥手面试常客)

 

Linux

  • 4.1 简单介绍一下Linux文件系统?
  • 4.2 一些常见的Linw命令了解吗?

 

MySQL

  • 5.1 说说自己对于MySQL常见的两种存储引擎: MyISAM与InoDB的理解
  • 5.2 数据库索引了解吗?
  • 5.3 当MySQL单表记录数过大时,数据库的CRUD性能会明显下降,一些常见的优化措施如下:
  • 5.4 事务隔离级别(图文详解)

 

Redis

  • 6.1 redis简介
  • 6.2 为什么要用redis /为什么要用缓存
  • 6.3 为什么要用redis 而不用map/ guava做缓存?
  • 6.4 redis和memcached的区别
  • 6.5 redis常见数据结构以及使用场景分析
  • 6.6 redis设置过期时间
  • 6.7 redis内存淘汰机制( MySQL里有200w数据,Redi s中只存20w的数据,如何保证Redis中的数据都是热点数据? )
  • 6.8 redis持久化机制(怎么保证redis挂掉之后再重启数据可以进行恢复)
  • 6.9 redis 事务
  • 6.10 缓存雪崩和缓存穿透问题解决方案
  • 6.11 如何解决Redis的并发竞争Key问题
  • 6. 12 如何保证缓存与数据库双写时的数据一致性?

 

关注小编后私信“面试”即可获得这份《Java面试突击版》PDF版文档资料的免费领取方式。

Spring

  • 7.1 Spring Bean的作用域
  • 7.2 Spring事务中的隔离级别
  • 7.3 Spring事务中的事务传播行为
  • 7.4 AOP
  • 7.5 IOC

 

消息队列

  • 8.1 什么是消息队列
  • 8.2 为什么要用消息队列
  • 8.3 使用消息队列带来的一些问题
  • 8.4 JMS YS AMQP
  • 8.5 常见的消息队列对比

 

Dubbo

  • 9.1 重要的概念
  • 9.2 Dubbo的架构
  • 9.3 Dubbo的负载均衡策略
  • 9.4 zookeeper宕机与dubbo直连的情况

 

数据结构

  • 10.1 Queue
  • 10.2 Set
  • 10.3 List
  • 10.4 Msp
  • 10.5 树
  • 10.6 图
  • 10.7 BFS及DFS

 

算法

常见的加密算法、排序算法都需要自己提前了解一下,排序算法最好自己能够独立手写出来。

我觉得面试中最刺激、最有压力或者说最有挑战的一个环节就是手撕算法了。面试中大部分算法题目都是来自于

Leetcode、剑指offffer上面,建议大家可以每天挤出一点时间刷一下算法题。

 实际场景题

我觉得实际场景题就是对你的知识运用能力以及思维能力的考察。建议大家在平时养成多思考问题的习惯,这样面试的时候碰到这样的问题就不至于慌了。另外,如果自己实在不会就给面试官委婉的说一下,面试官可能会给你提醒一下。切忌不懂装懂,乱答一气。 面试官可能会问你类似这样的问题:①假设你要做一个银行app,有可能碰到多个人同时向一个账户打钱的情况,有可能碰到什么问题,如何解决(锁)②你是怎么保证你的代码质量和正确性的?③下单过程中是下订单减库存还是付款减库存,分析一下两者的优劣;④同时给10万个人发工资,怎么样设计并发方案,能确保在1分钟内全部发完。⑤如果让你设计xxx系统的话,你会如何设计。

BATJ真实面试题

 

转发+关注后私信小编“面试”即可获得《Java面试突击版》PDF版文档资料的免费领取方式。

写在最后

  • 1. 一定要谨慎对待写在简历上的东西,一定要对简历上的东西非常熟悉。因为一般情况下,面试官都是会根据你的简历来问的; 2. 能有一个上得了台面的项目也非常重要,这很可能是面试官会大量发问的地方,所以在面试之前好好回顾一下自己所做的项目;
  • 2.和面试官聊基础知识比如设计模式的使用、多线程的使用等等,可以结合具体的项目场景或者是自己在平时是如何使用的;
  • 3.注意自己开源的Github项目,面试官可能会挖你的Github项目提问;
  • 4.建议提前了解一下自己想要面试的公司的价值观,判断一下自己究竟是否适合这个公司。

另外,我个人觉得面试也像是一场全新的征程, 失败和胜利都是平常之事。所以,劝各位不要因为面试失败而灰心、丧失斗志。也不要因为面试通过而沾沾自喜,等待你的将是更美好的未来,继续加油!

看完上面的内容有没有豁然开朗的感觉呢,是不是就像拥有了超级武功秘籍,跟开了挂一样,关注本斗帝带你年薪百万,记得点关注哦。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值