1. 简介程序员
笔者普通院校毕业,没有光鲜亮丽的职业背景,凭着本身的激情和两个月的准备最终拿到京东和阿里巴巴 Offer。下面就是做者这次跳槽经历全部准备工做和心得,但愿对你有帮助,做者工做经验有限,此文适合少于5年工做经验者。初次写做若有不对之处,欢迎批评指正。面试
本文是做者复盘本身两个月的面试经历,但愿经过个人分享,对你们有帮助,祝你们跳槽成功。数据库
2. 克服心理是投简历的第一步编程
第一章是枯燥的心理建设,若是你心里足够强大,直接略过看下一章。设计模式
2.1 摆脱温馨区缓存
笔者妄自揣度读者的内心,公司如今经营不景气、公司没有发展、公司可能会倒闭、本身的职业生涯没有规划、公司如今作的东西和个人理想不一致等各类缘由,但却说服不了处于温馨区的本身走出来。安全
大多数的咱们都是呆在温馨区,在这个区域压力和变化都很小,让咱们的生活很平静,同时改变相对就少不少了。在温馨区待久的咱们真的很难迈出一步去挑战本身,由于咱们须要再次去学习,去挑战本身。性能优化
离开温馨区就意味着较高的风险和焦虑,它能够致使积极的和消极的结果,然而学习区是真正的 “ 产入 ” 阶段。是让人精力和行为达到最佳状态的区域,在学习区你会消失由于期待带来的不安,也不会有天天无所事事,自怨自艾的 “ 工做迷茫 ”,更不会天天晚上感叹一天又是无所事事。微信
当你真正挑战本身时,你所作出的成就会让人惊叹。正如一句话:“ 你不逼本身,永远不知道本身有多强。然而要把握好本身的容忍度,若是到了恐慌区不只工做效率不高,还会失去信心。因此如今的你应该考虑本身是否是那个在温馨区的本身,若是你还想挑战本身,而不是天天自怨自艾,请行动起来。笔者也是特别不肯意投第一封简历,也不想去面试,有一天实在忍不下去了,咬着牙投出去第一封,接下来就会投 2,3,4 ...数据结构
结语:你不逼本身永远不知道本身有多强,若是你不想成天自怨自艾,那么就让本身行动起来,迈出一步,后面就好走多了。
2.2 地球没有你同样能够转
固然此段落可能说的不是你,以前和好几个朋友聊过,他们都以为公司对本身不错,同事关系很好,并且公司业绩正在发展,如今不能没有我,迟迟不忍心动手。那么若是你有这种想法你就错了,地球没有谁都在转动,若是你真的以为本身没有在成长,那么果断的离开,对于你和公司都是一件好事。
对于公司,没有那么忠诚的你他们能够找更好的,并且你要知道,一个产品的灵魂其实更多的是 PM 赋予的,咱们这种作程序的是这个行业最容易替换的职位,因此公司不会由于一个技术的离开会一蹶不振;对于你,若是你没有更好的平台、经从来武装本身,时间久了就会和正在成长的公司、朋友们脱节,如今也许大家在一个起跑线,过一段时间,再好的关系也会变得陌路。
结语:地球没有谁都在转动,换工做没有对不起谁,对不起的只是本身,只有本身才能为本身买单。
2.3 明日复明日,明日何其多
以前遇到一堆问题无从下手的时候,时不时用 “ 明日复明日,明日何其多 ” 给本身打趣。其实你本来计划的事情没有完成,究源仍是你的时间管理不规范致使,随便拿一个 “ 奇妙清单 ” 就过来使用其实效果很很差,若是你以为本身的计划和时间也安排的乱糟糟,请看看这本书。《搞定Ⅰ:无压工做的艺术》 ,这本书是时间管理领域最具影响力的著做之一,书中介绍的 GTD(Getting Things Done)时间管理方法也成为全球千万读者用来轻松高效完成工做与我的事务的最佳工具。
结语:因此既然决定的时候就必定要付诸行动,若是由于繁杂的事情没有安排好,那么就尝试使用 GTD 合理的规划一下本身。你要知道,咱们都有拖延症,你永远都不会准备好,只有迈出第一步才能开始准备。
2. 4 盲目自信也是在耽误你
笔者起初也是很有自信,以为本身工做三年有余就独立的负责很大的模块,而且是公司的核心开发人员,一直在给本身心理暗示:“ 我如今就是不想找工做,如今我在创业公司可以独当一面,啥时候想找不是很轻松的事情? ”。
然而就是这个想法让我从有想法换工做到开始动身足有小一年。等到动身的时候我才知道本身曾经的想法是错误的。
“ 格局的局限是你致命错误 ”。我开始试水是在拉钩上面投了 10 几封简历,结果一周过去毫无音讯。
我开始反思问题,因而托了一位工做好久的朋友帮忙看一下简历,反馈竟是这样:“ 你的简历写的太乱了,没有条理,苍蝇蚊子一把抓,并且你的经历太散,没有重点,你得好好整理下本身的项目经历和技术能力。”。
因而,就有了下面一章《 整理简历,好的开始是成功的一半》,怎么整理简历和本身的技能点。
结语:盲目的自信也是你一拖再拖的理由,是骡子是马,拉出来溜溜一会儿就知道了。
3. 整理简历,好的开始是成功的一半
这是个人第一份简历,打个样你就知道有多差了,其实当时我本身以为内容不少,技术点不少,还说明了作什么了,而且最后还言明本身在这个项目中的厉害和学到了什么,不该该是很不错吗?
然而事情并非我想的那样,很大一个篇幅描述,杂糅到一块儿既显得杂乱无章,也让阅读者抓不住重点,其实你能够把简历比喻成代码,这样一坨还不重构怎么让人维护? 不喷你才怪。
首先须要整理版面,起码让阅读者看着舒服,笔者找了不少方案,以为下面两种方案不错:
使用表格很规整的 Word 文档,清晰呈现本身的信息和工做经历,具体模板 点击获取。
使用 Markdown 编写简历,本来咱们就很是熟悉 Markdown 的语法,并且他的样式对于咱们阅读来讲已经很能够了,而且层次目录清晰。
其次是我的基本信息,我的基本信息必定要字字珠玑,不要写没用的,好比驾照,血型。罗列重点信息便可,而且学历必定写的清清楚楚,不要让面试官去猜疑。若是有不错的社交属性能够放上,好比不错的 Github 或者是简书。
而后就是最重要的一点清晰的描述本身的工做内容并突出重点,必定要有条理而且分层次,最简单的方式就是公司用 #,项目名称用 ##,技能,内容,描述分别用 ###,这样结构就很是清晰,而后使用 FAB 或者是 STAR 原则,描述本身的贡献,这样就清晰多了。
打个样,看一下笔者修改之后是否是好了一些:
切记不能有错别字,这是写简历的大忌。
最后是技能必定要突出重点,若是你找的是 JAVA 工做,其实一线互联网公司是不会关心你对 HTML 有多么熟悉,因此重心放在 JAVA 上面,好比 NIO、多线程、JVM 等。
笔者注:固然若是你选择写上去的东西,必须能够自圆其说,必须真实,否则就拔苗助长了。
简历确实是很是重要的,做者找到了一篇还不错的文章,写的很是详细,里面还有技巧和模板,比笔者总结的好那么一丢丢[坏笑],如何写好技术简历 —— 实例、模板及工具,能够参考一下。
结语:好的开始是成功的一半,必定要在本身的简历上面下一番功夫。
4. 打造本身的社交简历
一份 PDF 简历是求职必须的,然而有一份 “ 社交简历 ” 更能让你锦上添花,能够简单的从“订阅号”提及,为何订阅号放在社交简历的第一位呢?
4.1 订阅号
天天地铁里面上下班你用什么来打发时间?大多数人都在看订阅号吧,微信订阅号这么大的体量,又源于社交,那不是最好的打造本身社交的一个工具?
笔者了解,85% 以上的订阅号做者都是本身乐于分享,乐于传播,乐于交友的,那么笔者问你,你订阅了那么多本身以为还不错的公众号,加了几个订阅号主的微信?
惊讶脸?还有这操做,若是没有意外,90% 的订阅号主都会把本身的微信获取方式放到订阅号的菜单里面。
为何笔者建议你添加订阅号主,由于互联网圈子就这么小,人脉是很是重要的一个财富,工做越久你就会越以为人脉很重要,既然你没有父辈带来的人脉,那么本身扩展也是一个不错的选择。另外一个缘由,有一句古话说的好:“ 近朱者赤近墨者黑 ”,若是你想进大厂,是否是先了解一下大厂的人怎么思考,怎么作事,是一个什么水平?
那么订阅号很多都源于大厂,这是你最方即可以触及大厂人的生活的方式,添加他的微信则是更一步的方式。没事多阅读下他的文章,点赞,互动一下,慢慢就会变成你的关系网。
打个样,好比笔者的收集,阿里巴巴的 并发编程网,京东的 开涛的博客,ThoughtWorks 的 诺普博客,还有笔者的微信 码匠笔记,不过笔者仍是一个初级选手。 若是你留心,订阅号会成为你最好的人脉。
4.2 写博客
而后是博客,笔者私觉得一个作技术的没有一个博客是万万不可以的。一个好的博客不只体现了你对技术的那份热情,还有你水平的最好的体现。短短的几个小时面试是不可以深刻的了解一我的的,可是你的博客是你阅历的写照,有心的面试官会仔细审度你的博客,挖掘你的亮点。同时你的博客也能提升你的知名度,好比“阮一峰老师”或者是“张鑫旭老师”去找工做,是否是会轻松不少?
固然咱们不会把博客打形成他们那个样子,那么权威,可是提升本身,整理思路仍是足够的。
虽然下文中《怎么复习》章节,笔者说看别人的文章复习是不足的,可是你写博客是把你的知识表达出来,你看明白和你能讲明白是两码事。因此《收藏 != 拥有》章节讲,你须要把你收藏的东西整理成本身的文章,而后发表出来,这样本身掌握的便会更加深刻。
4.3 单身交友社区 Github
Github,都说 Github 是单身交友俱乐部,不过也有妹子哦。
做为技术人员,Github 是最好的社区了,你能够在上面看到很是不错的开源,同时也能和做者互动,固然互动的方式不少,好比 Pull Request,Issues,Star,Fork 等等,若是你本身热爱开源,有小想法,能够本身作一个开源的小工具,哪怕只有一个点,也是一份开源的热爱。
笔者的 Github 还算是朴素,只是添加了一些本身业余时间的开源,好比 Chrome 目录插件,Facebook Messenger SDK 封装 ,同时发送 Markdown 文章到 CSDN、SegmentFault、简书等平台工具 等,同时有时间也会参与开源社区的翻译,好比MDN、ElasticSearch 官方文档、Spring4All 译文等。
这样你长期坚持下去,会在 Github 结交一些志同道合的人,同时也能增长本身的亮点。何乐而不为?
笔者也是初入社会,才疏学浅,若是你有更好的 “ 招式 ” 欢迎留言区留言,让笔者和其余读者能学到更多的 “ 武术 ”。结语:PDF 的简历只是你面试的一部分,若是你对这个行业充满着好奇,那么就用业务时间多经营一下本身的社交简历。
5. 你最关心的面试点
笔者在网上看到过 N 多的面经,上来就说面试问到什么,具体到类,对象,有的可能还有答案,可是笔者这个章节并不会 一 一 罗列面试问题。
哎,可是笔者考虑到有的读者想看一下笔者经历的面试题,因此仍是把本身的面试问题放在下面《个人面试经历》章节
回到正题,由于笔者认为,面试点虽然很重要,可是它并不表明你掌握了就能够轻松应付,它只是知识面里面的一个点而已。你记住今天的问题,明天面试官换一个问题你,你仍是回答不上来,可是大部分面试官提问的知识面其实都差很少。因此若是你想应付自如,就从面试官的知识点中挖掘出知识面,从而达到触类旁通,举一反三。
你是否有这样的经历:明明每次面试以前都认真研究面经,整理知识点的,可是去面试的时候老是被问住。若是是,那说明你能够根据笔者的方法挖掘一下知识面了。
下面笔者经过一个具体的例子讲解一下怎么从知识点分析出知识面,而后再全面复习。
由于不一样的领域的知识点也不同,笔者只是抛砖引玉,具体的技术,还得你根据本身的状况仔细揣摩。
Synchronized 和 ReentrantLock 锁机制?
HashMap 的原理?当谈到线程不安全时天然引伸出 ConcurrentHashMap ,它的实现原理?
写一下生产者消费者。
介绍一下 BlockingQueue 原理。
介绍一下 PriorityBlockingQueue 原理。
说一下 CountDownLatch 的使用场景和原理。
罗列一些你知道的线程安全的集合类。
上面这些问题都是笔者在面试不一样公司的问题,万卷不离其宗,都是在考 JAVA concurrent 包下面的知识点,那么咱们须要梳理一下 concurrent 包下面都有什么,都有什么关联的知识点,而后统一复习,即使是面试官再换一些问题也没有关系了。直接用图来讲明一切
上图是整个 JAVA concurrent 包下面的类,咱们有了这个图就能够各个击破了,好比咱们须要看信号量 Semaphore,读写锁 ReentrantReadWriteLock,CountDownLatch 它们的实现和使用场景,固然他们的实现须要依赖 AQS,CAS,Atomic,具体它们都是什么呢?这就须要你细细去品了。
下文章节《怎么复习》里面提到,切记不能看博客,也别听笔者道听途说,一本书的内容笔者三言两语就讲清楚了,那么也不须要画这么大一个图了,也就没有那么高深了。
因此请继续往下看《怎么复习》章节怎么作。而后到了 collections 下面的集合类,每一种的实现都离不开 Lock,具体它们之间怎么关联的呢?你一看源码就懂了。最后是 executor,它就是一个工具,可是也离不了上面的 Lock 和集合类,因此只要你仔细的看 《Java并发编程的艺术 (Java 核心技术系列)》这本书,想必好多问题你均可以迎刃而解。
再举一个笔者复习 ElasticSearch 的例子,经过《个人面试经历》章节你能够发现,4家公司都问过 ElasticSearch 的问题,好比ElasticSearch存储过程,索引过程,查询过程,原理和数据结构。那么笔者势必要下功夫了,因而笔者从头至尾读了一遍《ElasticSearch 权威指南》。
笔者没有找到合适的书籍,中文文档是 2.0 版本有些过期了,可是基本原理相似,若是英文好的话能够直接看 6.0 最新英文文档。里面会给你讲用法、实现、存储结构、设计原理还有集群搭建、分片原理,反正你能够学到好多东西,这样你就能够参照《学以至用》章节,掌握之后立刻考虑哪里能够用到当前项目中。
结语:面试点只是一个表象,你须要针对知识点找到它对应的知识面,等你看完你会发现由点及面的掌握了知识,这样才能触类旁通,举一反三。怎么样收集这个知识点呢?那就是下文讲到的《个人面试经历》中经过试水收集。你能够经过本身试水得到
6. 怎么复习
6.1 收藏 != 拥有
你的微信收藏是否是有不少未读文章?若是你不按期的整理收藏夹,那么等于没有收藏夹。收藏是好习惯,看到了不错的文章就收藏下来,而且微信的订阅推送体系是获取知识开拓眼界最好的方式,可是你须要懂得利用。
笔者每隔一周就会清理一次收藏夹。固然清理不是删除,是把有用的知识点抽离出来,而后经过搜索资料和查阅书籍把他变成本身的知识存储到 “ 有道云笔记 ”,虽然有道云笔记没有印象笔记稳定,笔者只是喜欢他的 Markdown 功能。
6.2 博客不必定真实
好多人复习的时候都是看一下网上的面经,整理一下知识点,而后百度,谷歌看几篇帖子就觉得本身掌握了,自觉得已经 “ 学富五车 ”,其实不是这样的。
网上的文章不必定讲的全面,好多都是以偏概全,甚至有的不必定准确,加上国内的复制,抄袭严重,能看的文章实际上是少之又少。因此这里笔者推荐复习必定要看书,缘由很简单,写博客的门槛是在过低了,随便动动手就来一篇,然而书不是那么简单,校审,出版社层层把关,并且业界那几本值得看的书你们其实仍是知道的。
举一堆栗子,若是你想复习 JVM,那就看 《深刻理解 Java 虚拟机:JVM 高级特性与最佳实践(第 2 版)》, 若是你想复习多线程那就看 《Java 并发编程的艺术 (Java 核心技术系列)》,若是你想复习 ElasticSearch 就看 《ElasticSearch 权威指南》,若是看 Redis 就看 《 Redis 实战》,不过笔者也看过国产的一本不错的 Redis 书籍 《Redis设计与实现 (数据库技术丛书)》,《高性能 MySQL》,《Spring 实战》,《RabbitMQ实战:高效部署分布式消息队列》等等,固然笔者只是根据这几个领域列举,若是这些不包含你想看的,必定要买一本这个领域经典的书来看,好书永远都不过期。
这里必定要提醒你们,看书必定不要蜻蜓点水,咱们是从书中汲取知识,不是以量取胜,千万不能有我多久多久就看完一本书而自豪,那样其实你并无真正掌握里面的知识,小笔者最长看书的时候,第一章就看了一个月(固然是天天看一点)。
缘由是每看到一个知识点就不懂了,立刻停下来查网上的资料和相关的书籍,若是别的书籍也有讲到就不懂的就继续刨根问题,直到全部问题都解决了再继续看当前书籍的下一个章节。这样之后你以为你慢了?其实你是快了,由于你掌握了更多的东西,再看接下来的章节其实会很快。
这样坚持看完几本书之后你就会发现本身有些特别了。
6.3 好记性不如烂笔头
what?都什么年代了你还和我说用笔?是的,你没看错,笔者尝试的最好的复习方式就是买一个笔记本,天天把本身看书所得整齐的写上去。网上的云笔记多方便,一粘贴一大堆,可是就是由于他方便才更不容易加深印象,和上面的 《收藏 != 拥有》一个道理,你觉得你整理到云笔记上面了,其实你就是复制粘贴了一下,彻底没有过脑。
因此记笔记必定要用纸质的,即使是笔者用云笔记记录,也不会粘贴。还有一个就是感受,为何 Kindle 那么火,还那么多人买纸质书呢?
6.4 配合源码
看书必定会有不懂的地方,不理解的点,若是遇到直接看源码就行了,好比 JVM,Redis 均可以找到源码的,虽然他们都是 C 的代码,可是咱们有 JAVA 的基础,都不在话下。其余的本来就是 JAVA 实现的看其源码还会更简单,尤为是 JAVA 并发包下面的内容。因此遇到问题必定要仔细的钻研源码。
笔者在看 hashcode 的时候就是不理解,为何每次运行主线程的类 hashcode 不变,其余类会变,因而笔者在 os.cpp 中的 os::random() 方法找到了缘由,他 random 的 seed 不变,因此每次第一个线程的 hashcode 势必同样。虽然可能和面试不相关,可是起码之后不会由于这个问题而困扰。
6.5 触类旁通,举一反三
学而不思则罔,思而不学则殆。学习之后必定要多总结和思考,好比你知道 JAVA 里面的 PriorityQueue 是优先队列,那么 ElasticSearch 的query 默认搜索数量要限制 2000 也是由于它使用的是分布式的 PriorityQueue 吗?
好比你能够思考 JAVA 的 HashMap 的hash 实现为何使用 (h = key.hashCode()) ^ (h >>> 16);
这样一步位运算?
它原理和 Redis 的是否同样呢?
MySQL 在分库分表的时候是否也可使用相似的原理?
ElasticSearch 也有分片的概念,那么是否是也用的同一种hash原理?
hash是否是有多种实现,哪种更好用,哪种hash冲突的几率更小?
这个课题答案并不重要,重要的是你在探寻答案过程当中的收获。
6.6 学以至用
经过上面的学习想必你已经掌握了一些东西了,那么掌握里之后怎么让他们更有意义?那就是 Redesign ,不知道这词好很差理解。意思就是你既然经过分析知识点掌握了以前没有掌握的知识,那么为何没有在原来的项目中使用呢?知识没有真实的使用场景,面试官怎么承认你?因此经过复习掌握的知识必定要及时的应用到原来的项目上面,具体怎么应用就要看你以前的项目了。
好比你本身学习了 Dubbo,就把原来的项目改为所有使用 RPC 调用的项目;好比你学习了 Spring - Boot,就把原来的 Tomcat 的方式所有去掉;好比你学习了多线程,就去把原来的耗时任务修改掉;好比你学习了设计模式,就思考一下原来什么地方修改一下更优雅?
笔者抛砖引玉举一个本身学以至用的例子,笔者学习了 Redis 的数据类型和实现原理之后,以为有序集合(sorted set)设计很适合作每周最热阅读排行,这是笔者前公司的一个功能接口,因而笔者就使用 sorted set 从新设计了每周最热阅读排行,为何说他适合呢?
笔者理解到 sorted set 里 items 内容大于 64 的时候同时使用了 hash 和 skiplist 两种设计实现。这也会为了排序和查找性能作的优化。添加和删除都须要修改 skiplist,因此复杂度为 O(log(n))。 可是若是仅仅是查找元素的话能够直接使用 hash,其复杂度为 O(1) ,其余的 range 操做复杂度通常为 O(log(n)),固然若是是小于 64 的时候,由于是采用了 ziplist 的设计,其时间复杂度为 O(n)。这样之后查询和更新阅读都变得简单,那么这样简单的就实现了以前复杂逻辑并且效率并不高的接口何乐而不为?
若是你也想初步看一下 Redis 的数据类型和实现原理,能够看看 《Redis 设计与实现 (数据库技术丛书)》,讲的还算是浅显易懂。
结语:收藏没有用,重要的是消化吸取,博客只是让咱们接触知识的一种途径,可是深刻理解这个知识必定要经过看书来完成,看书的同时不要忘记作笔记,掌握知识之后及时使用到项目中。
7. 最高效的投递途径
万事俱备,只欠东风。什么都准备好了,什么途径是最高效的呢?笔者也不敢说能彻底了解。
不过笔者整理了下本身的投递方式,以供你们参考。
7.1 拉钩不是很理想
笔者刚整理完上面那份 “ 次的简历 ”,在拉钩上面投了 10 份,杳无音信,因而笔者思考一下是否是简历质量问题,开始修改,但这是下文,HR 小姐姐就没有点击查收,总不会由于文件名就看不上了?
因此笔者私觉得简历不要紧,而是拉钩的处理速度很慢。
7.2 内推效果佳
互联网圈子这么小,工做几年你会发现,差很少的公司都有本身的人脉,找他们帮忙推一下就行了。
笔者以前很很差意思找熟人帮忙内推,以为万一挂了,会给熟人丢面子。可是等小白进了一线公司之后发现,内推是一种常态,甚至有的部门要求内推名额,因此不要担忧内推会给你的朋友带来负面影响,他很愿意为你效劳。
7.3 订阅号推荐也不错
经过上面笔者的侃侃而谈,你是否是发现本身也有一些订阅的大 V?那么主动的去联系他们一下,询问一下在什么公司高就,能不能帮忙内推,你会获得意想不到的结果。
7.4 别忘记单身会所
Github 也是一个不错的找工做的地方,你天天在逛 Github 的时候发现不错的人记得 follow 一下,时不时看一下他们的动态,发现作了一些你很向往很喜欢的事情,那么事情好办了,说明你将来的同事你很崇拜和欣赏,那么去勾搭一下吧。
7.5 果汁简历
果汁简历 这是笔者最近发现的一个订阅号,天天会推送一些求职攻略,有一些质量还不错,还能免费帮忙大厂内推,这样就不用你一个一个找大厂的订阅号了,也是一个能够选择的途径,笔者强烈推荐。
7.6 Boss 直聘
这个算是笔者最喜欢的了,上面的 Boss 不必定是 HR,好多都是你未来的同事,好比我[阴险脸]。其实想一想也对,最了解部门需求和同僚水平的仍是同行,那么技术直接来招聘其实也是最有效的方式了,因此 Boss 直聘 是我使用的反馈最快效率最高的招聘平台。笔者强烈推荐。
笔者又啰嗦一句,一个平台某个公司挂了,不要紧换个平台再投;一个平台某个公司部门关了,不要紧,换一个部门再投。笔者的亲身经历,不一样平台和部门以前影响很小。下文笔者的面试试水经历有更详细的介绍。结语:好的简历很重要,可是投递的途径也很重要,一个高效的途径能够节省时间,也能合理的安排本身的面试节奏。
8. 合理规划本身的面试和复习节奏
这一章节其实内容相对比较少了,笔者放到这里只是为了总结一下,由于面试节奏很重要。下文的章节《个人面试经历》会具体罗列一下面试的节奏和时间节点。
本文主要输一下几点:
面试试水节奏要把握好,既然开始了就不要轻易的拖延和中止,一般两周面两次,或者一周面两次的节奏比较合适,能对本身的复习立刻试错,再次检验和整理。不能拖过久,否则节奏和掌握程度效果很很差,记忆曲线你也是明白的。
体量均衡,若是你想去一线公司,建议不要用小公司试水,有的朋友担忧本身如今没有准备好,想去小公司试试,而后再试大公司。其实没用,小公司的套路和大公司的套路差不少,大部分小公司只须要你过来干活就能够了,面试的知识点大多数偏应用,而大公司多数偏原理和能力,因此若是你想试水,必定拿体量至关的尝试。PS:反正互联网公司这么多。
及时复习,上面说了不少笔者复习技巧,面试结束后第一时间整理面试点,分析面试点,而后全方面复习。怎么复习呢?那就参照上文的章节《怎么复习》。
9. 面试技巧
9.1 自我介绍
每一次面试都会有一个开场,一般开场会以求职者的自我介绍开始,因此你要准备一个简短却能把经历讲的说明的自我介绍。内容不须要长篇大论介绍项目,简历中不已经有了吗?这是一个开放性的话题,能够快速的让面试官认识你。笔者认为以下几点还蛮重要的,供你参考。
履历,快速的描述一下本身的履历,学历,毕业时间,从事了几份工做,都是什么行业,主要擅长哪方面。这样面试官了解你的状况,也好进一步提问。
业余,工做是你面对公司的,可是你的业余是什么样子的,好比业余时间我会看书,写博客,开源小东西,固然不是让你说我业余时陪女友,看电影,而是说一些和技术相关的。这样让面试官能够看到 “ 工做之外 ” 的你。
缘由,每一个面试官仍是蛮关心你的离职缘由,因此你开篇直接简单介绍一下你的状况和离职缘由,这样让面试官了解了状况。
9.2 知之为知之
好多人听闻有这样的面试经验,若是遇到问题不会之后找一个本身会的点侃侃而谈,这样不只能盖住刚才本身的不会,还能展现本身另外一面的实力。这种想法是错误,知之为知之,不知为不知,若是你不会直接干脆的说,这个地方我不了解,这个我不清楚,这个我没有遇到过。
缘由很简单,面试官阅人无数,这些套路他早知道,反而以为你不诚恳,答非所问的浪费彼此时间。面试官都会考一些通用的基础问题,可是也会贴近当前项目中使用的技术来提问,由于大部分面试官不是来选拔培训者,而是选拔干活的人,因此他们须要知道你当前掌握技能的程度,不要错用技巧。
9.3 最有挑战的项目
好多面试官都喜欢问这个问题,他想知道你处理问题的难易程度和你处理问题的方式,固然这个问题也有其余的提问方式,好比 “ 你遇到过比较困难的问题吗,怎么解决的 ”。
因此这个地方须要咱们提早准备的,固然不是让你准备好说谎,而是面试以前仔细推敲本身的经历,找出一些本身以为有挑战的事情。能够是业务上面的难点,技术上面的突破,黑魔法实现的功能,实际一次内存泄漏的调试,每个点都能说明你的工做难度。
9.4 一言不合就上图
没有绝对的权威,若是面试过程当中以为面试官说的不恰当,或者是本身怎么也描述不清楚,那么直接找一个白板画图说一下本身的思路。笔者参加的几个面试基本都有白板,还专门准备了白板笔。因此对于本身参与的项目的架构图,本身学习的中间件的流程图,系统的例图等,仍是要有充分的理解。
同时呢面试的时候不要怯场,哪怕是问你一个 CurrentHashMap 的原理,若是你愿意展现本身的备课能力,也能够去白板上面画一画。
9.5 备课
选择是双向的,因此大多数面试官问完你问题之后都会问你,你有什么要问个人?这个时候你的主场就来了,虽然是让你问他,可是这是最好的机会让你自由发挥的时候。
你能够提早插好公司和部门的背景和市场的前景,结合本身的思考问一下当前业务的发展。也能够提早看一下技术点,团队合做,开发方式等具体的问题,一方面你能够了解这个公司的模式是否是你喜欢的,另外一方面面试官也会以为你是一个细心的人。
固然你不要误解笔者是故意让你准备一些什么,而是让你准备好这些面试官可能问的问题和经历的面试环节须要的点,别忽然遇到了让本身机关用尽,并不是刻意而为。
9.6 真实
面试过程当中不免会有一些除了技术之外的话题,好比你怎么看待这种状况,你怎么怎么对待这种人,遇到这种状况你怎么办?有一些面试技巧的人一会儿就猜出来面试官的意图,故意按照面试官的意思回答。
笔者私觉得这样其实不对,你就彻底按照本身的想法去说就行了,若是你由于猜到了面试官的想法所以得到了 offer,那么你天天工做的环境可能都须要假装的你,时间久了你也会以为那并不适合本身。
面试实际上是双向的选择,面试官选择你,同时你也在选择公司。
结语:真实是最好的面试技巧,知之为知之,不知为不知,是知也。可是也要提早准备面试过程当中可能遇到的问题。
10. 面试经过怎么从容的谈 offer
10.1 不要轻易说出本身的底线
这是你的底牌,有个谈判原则,先亮底牌,每每会失去主动权,面试完一轮就问你指望薪水,这时你能够回答给个范围:如他的岗位招人薪水范围椒是 15k - 30k,你也能够回答:我期待薪水是:15k - 30k。若是他再问你具体的话,你能够说:如今讨论这个还过早,我相信在决定录用我前,再讨论会更合适。这样你们都不会尴尬。
10.2 和 HR 沟通要大胆说出本身的指望
必定要说出本身的指望,若是你到了 HR 环节,一个公司的招聘成本真的过高了,若是你真的到 HR 环节,那么说明你足够优秀。足够优秀 HR 就不会由于你要的过高拒绝你,固然你要的太离谱他确定会给你一个最大的价格,你本身要控制好就能够了。
10.3 不后悔
来以前谈好待遇,来以后不管多少都不能后悔,这是底线。既然选择便只顾风雨兼程,否则你工做也没心情,没动力,最后害得不仍是本身?
11. 你想要的 “ 个人面试经历 ”
时隔比较久,面试问题笔者就记下了一些重点,整理给你们,仅供参考。
排名是时间前后
11.1 瓜子二手车
快排;
二分法查找,推到时间复杂度;
BlockingQueue 实现原理;
二叉树遍历;
ElasticSearch 存储结构和原理;
MySQL 索引,优化;
SpringMVC 请求过程;
Dubbo 原理。
11.2 爱奇艺
SpringMVC 请求过程;
Dubbo 原理;
MySQL 缓存,性能优化,索引结构;
ElasticSearch 存储结构和原理;
设计模式;
Proxy 和 CGLib 区别和原理;
乐观锁和悲观锁;
ThreadLocal;
闭包。
11.3 每日优鲜
TCP 三次握手;
MySQL 分库分表,性能优化;
HashMap 实现原理;
库存设计原理(电商相关);
Redis 基本数据结构和使用;
ElasticSearch 存储结构,查询过程,索引原理;
多线程;
生产者消费者。
11.4 滴滴
闭包;
反射的实现和原理;
JDK8 lambda 使用和原理;
SQL 注入和 XSS 攻防;
设计模式;
Redis 基本数据结构和原理;
Http1.0 和 Http2.0 区别;
MySQL 索引结构,基本数据类型和使用场景;
Shell 分析日志查看 QPS;
JDK8 中多线程的变化;
11.5 京东
Spring AOP 原理,Proxy 和 GCLib 原理;
多线程;
CountDownLatch;
库存设计;
大秒设计;
SpringMVC 请求过程和使用设计模式;
手写单例;
Redis sorted set 实现原理;
HashMap 实现原理;
MySQL 索引和优化;
分布式扩容和容灾;
PriorityQueue 使用和原理;
11.6 阿里巴巴
HashMap 和 CurrentHashMap 区别;
Hashcode;
用过的集合类;
ThreadExecutorPool ;
volatile 内存模型;
ElasticSearch 集群路由规则和容错;
Dubbo 原理;
Redis Hash 设计原理;
最后,有须要Java面试题(含答案)的朋友能够点个赞而后加入个人我的粉丝群Java填坑之路:789337293获取,还有更多的进阶Java高级程序员的学习视频等你来拿哟!