经验也总是用来交流用的,于是LB觉得有必要记录下来,也许对猿们会有一丝帮助。
首先,找工作得有一份体面的简历,这里就会衍生一个如何书写简历的问题,LB将从如下角度总结:
关于简历
如何书写简历
1.个人信息(年龄,联系方式等)
2.求职意向(工作年限,工作地,岗位)
证书(如ACM,软证,外语水平)
1.专业技能
4-5项熟悉2-3项了解,建议层次分明,逻辑有序,建议别写精通,除非很NB,不然被问到不是很深的问题你答不出,面试官认为你不真实。
2.自我评价
3.项目难点
队列和缓存高可用,分布式应用衍生问题解决方案,JVM的排查技能,数据库层面优化和分库分表等,这些东西都需要你嵌入到你的项目中。
那么什么是‘’优秀‘’的简历(网图)
看图
哈哈哈,我大佬说,看到这种简历直接扔垃圾桶吧,原因很简单,你既然那么牛逼还特么需要自己投简历找工作么,早就被挖了,这种一看就是啥经验都没有培训生或者不懂行规的应届生简历写的东西,那么合格的简历刚刚上面已经说了,专业技能模块不能写太多,层次分明就可以,大概这样:
暂不评价技术如何,光从这个专业技能在简历的书写规则上是很符合层次分明的,而且一行代表一个领域,总体上来看就是一个标准的JAVA后台开发路线的技术栈,而且从内容上来看,也有一定的侧重点,这样给面试官的感觉就会比较友好,提问方便。与人方便自己方便。
如何投递简历
拉钩,公司官方网
这种看RP了,有时候投出去也大概率不会被看到,称之为海投,收到面试邀请不管怎么样,去了再说,毕竟是一种经历,总能学到东西的,但如果是你比较想去的公司,没有很大得取胜信心,建议别投先,毕竟如果被刷,那就得含泪在等一年了。
BOSS直聘,脉脉
搜索你想去的公司,然后加HR或者技术官后给他们发简历,本质和BOSS直聘差不多,他们看到你的简历,并且觉得OK,一般都非常愿意帮你内推的,因为内推录用了,是有推荐金的。
朋友内推,猎头内推
这种获得面试机会几率较高,因为是直推的。
关于面试
面试需要准备3个部分的东西
算法智力题笔试
项目技术面试
HR跪舔与防坑宝典
首先是算法编程题
然后就是智力题
其实也不是什么智力题,网上一搜程序员面试智力题一大推,看来看去也就是那几类问题,头脑比较聪明的猿基本不需要准备。
这里重点讲讲技术面
面试官:能写出一段能体现你水平的代码~
LB:好的~
几秒后~
1while{2Scannerscan=newScanner(System.in);3Stringquestion=scan.nextLine();4Stringanswer=question.replace('你','我').replace('吗','').replace('','!'));5Sysem.out.println(answer);6}面试官:呀,这难道就是.....
LB:没错,是失传已久的ArtificialIntelligence
面试官:你究竟是什么人?
LB:阁下莫问出处,这个程序我示范给您看下
面试官:好的
LB:在吗?
电脑:在!
LB:你可以人机对话吗?
电脑:我可以人机对话!
LB:你会自己思考吗?
电脑:我会自己思考!
面试官也跃跃欲试:你可以滚出去吗?
电脑:我可以滚出去!
寒冷的冬天,外出的农夫,看见一条冻僵的蛇,于是把蛇带回了家,解冻之后,泡进酒里,蛇终于醒了,看到如此场景,蛇说:我也是醉了。
emmm~
言归正传,技术面就是看你的技术栈,然后结合项目去提问,并根据项目遇到的问题,要求回答出解决方案,并且根据遇到的问题会继续问深一层或者变形,考察你是否真的对问题进行了仔细的思考和深入的研究,以及问题对应的技术功底是否深厚,所以这里提到的重点是项目结合技术栈,如果你的项目没有用到你写的技术,那么就是扯蛋,那么面试官就会认为这个候选人只是停留在理论基础或者是初学,并没有实践,如果是应届生还说的过去,否则多半会被PASS。
那什么基础功底
比如问你某些关键字的作用如static
如果你答出static修饰变量、修饰方法我会认为你合格,答出静态块,我会认为你不错,答出静态内部类我会认为你很好,答出静态导包我会对你很满意,满意的原因是能看出你确实非常热衷研究技术。这比你在自我评价写一万句本人热爱研究技术,学习能力强之类的废话更有说服力。
又如问你对锁部分的了解
1.一般人回答出Synchronized具有多线程的同步作用,能防止多个线性同时访问同一临界资源。
2.但是却很少人提到Synchronized的局限性(无法解決业务层面并发)。
3.可以说明锁的用法,如可以创建Reentrantlock类的可重入锁,而且可以通过其中的lock和unlock方法行加锁和解锁的操作。
4.说出可重入锁、公平锁和读写锁,如词锁的含义、公平数的含义,以及在创建Reentrantlock和Semaphore时如何通过参数强它是否是公平锁,也可以说明在读写锁中加读锁和写锁的条件,由此介绍通过读写线程吞吐量的做法。
再如问你对框架里的了解
我们知道,如果单纯使用SSM框架,大多数项目都会有痛点。比如数据库性能差,或者业务模块比较复杂,并发量比较高,用SpringMVC里的Controller无法满足跳转的需求。所以一般还会被问:你除了依照现有框架写业务代码时,还做了哪些改动?
对于这个问题,不在乎听到什么回答,只关心回答符不符逻辑。一般只要答对,面试官就会给出“在框架层面有自己的体会,有一定的了解”,否则,就只会给出“只能在项目经理带领下编写框架代码,对框架本身了解不多”。
回答例如有:增加了Redis缓存,以避免频繁调用一些不变的数据。或者,在MyBitas的xml里,select语句where条件有isnull,即这个值有就增加一个where条件,对此,会对任何一个where增加一个不带isnull的查询条件,以免该语句当传入参数都是null时,做全表扫描。或者对返回信息做了压缩处理,以增加网络传输性能。
小结:
技术面试非常重要,这里说的重要不是说对于整个求职过程重要,因为在求职过程哪怕是HR面都有权利决定不要你,所以说没有重不重要的,这里说的重要的是指这是检验你自身水平的能力的考察,通过面试其实可以反映出你的自身很多问题,比如,知识面有了,但是不够全面,或者知识面全了但是不够深入,或者把需求转化为实际产品的能力不足等等,这些东西才是对于你来说是重要的,如果你的能力有了,还会害怕找不到工作吗?这里最怕的就是明知自己能力不足,又不愿意专研学习,还想着高新,只能说你不适合当一名程序员。
那么问题来了,我知道自己的情况,但是又不知道努力的方向,或者不知道怎么提升自己,怎么办?如果你能提出这样的问题,LB只能说,你独立解决问题能力确实也是挺差的,因为在我们开发当中,经常会遇到一些需求,都不知道怎么去做,或者用一些完全没接触过用的框架,如果团队中有人熟悉那还好,但是也别指望别人教你太多,所以这个时候就只能靠自己了,无它,需要你通过网上找教学资料(视频,博客,官方网)的方式快速学习,这些资料花几块钱随手可得,然后一步一个脚印慢慢的把产品做出来。
HR跪舔与防坑宝典(LB总结了一些)
自我介绍
您好,很荣幸有机会来参加公司的面试
1.个人经历(我是谁,我来自哪里,年龄,学历,从业经历)实习加上正职
3.你为什么要选这家公司(就公司的产品,文化,影响力等)着重说出你选择的理由如贵公司的高技术开发环境很吸引我,贵公司在近年来市场上很有竞争力,贵公司能够提供一个与众不同的发展道理
高频问题
1.上一家公司,你为什么会离职?
1.公司很好,但是公司调整了业务,接下来的发展路线和自己的目标不一致,所以要换工作
2.工作太清闲,学不到知识,我不怕累,就是想多锻炼自己,想找具有挑战力工作
3.公司的管理制度不也是很完善,没有晋升机会,我比较想进步,找一个更好的平台
4.我想去优秀的公司,让自己变得更好
2.为什么来我们这里?
1.对原单位充满感恩,这是我人生中非常重要的经历,我认同原单位领导和文化
2.两份工作的本质是一致的,行业和工作性质都有紧密联系
3.选择一份新的工作不代表背叛过去,发扬原公司魅力,同时为了寻求更大的成长和突破
4.不承诺一份工作干一辈子,保证在我的任期内尽职尽责
3.你怎么看待自己以后的职涯?(包括工作和家庭的分配,怎么平衡家庭和工作的关系、加班、选择一家公司时的考量、地点等)(离职稳定性)
我准备在技术领域有所作为,我希望在我3到5年内,具备什么样的素质,在行业内达到什么样的水平,产出什么样的工作成果,将规划量化,具体化
4.对薪资期望(不要直接说数,绝不能表现出没到多少钱或者什么层级我就不去)
5.可以接受降薪吗?(先了解公司薪酬体系,根据行业和自身能力来定位)
如果候选人的调性符合(足够官方),可以这么回答:我也了解咋们公司现在的薪资架构,我相信公司会根据我的能力给出一个合理的薪水方案,我相信只要把事情做好,该有的一定会有的对于这样的部门,“毕竟贵公司在做一个从来没有人做的这么好的事情,所以肯定是有难度的,肯定是要付出大量努力的”
6自己觉得自己工作上的短板/优点是什么?
1.不能避而不谈,
2.不能变相夸自己,
3.不能暴露重大缺陷,
4.可以将一些能接受能改进的缺点
综上:缺点加说明加改进
7.说说自己性格上的优缺点(描述一下自己的性格)
我不懂得如何拒绝他人,我拉不下面子去指出别人的问题,我做事的时候希望马上就能看到成效,有时候会比较贪心,想同时做好几项工作,我比较慢热,不善于和陌生人打交道,我有意识的让自己在改正,让自己更加有亲和力,我非常在意别人对自己的工作评价,得不到好评就会焦虑,其实我也在开导自己别太功利心了。沉着冷静,条例清楚,立场坚定,顽强向上,乐于助人和关心他人,适应能力等等
8.怎么看待加班(你能接受996、997、007吗)?
可以接受版本
如果候选人的调性符合(足够官方),可以这么回答:我觉得我们要实现梦想,一定是要付出比较多努力的,所以我已经做好了准备,也愿意和小伙伴们一起战斗我是可以加班的,我现在加班强度就是比较大的。因为我喜欢这个事情,我想把这个事情做好。项目忙的时候可能一个月都没有休息日,我觉得要应对这么忙的工作,光有心理准备其实还不够,还要有特别好的身体素质,所以我准备把健身的习惯一直坚持下去
不接受版本
加班是应该的,不加班也是应该的,没有把事情做完是不应该的,因为能力低完成工作慢造成的加班,并不是一件好事,不加班是能力,加班是态度,能力不够的情况下,态度去补。
9.你谈恋爱了没?(状态是否稳定,会不会因为感情影响工作,很快结婚,休婚假产假)
我还没有谈恋爱,目前不考虑恋爱问题,我希望自己变得更优秀以后,在谈一场稳定的恋爱,所以现在想把主要的精力放在工作上。
我已经有男朋友或女朋友,我们都在这个城市工作,目前准备先工作几年,有精力能力了在考虑结婚。
10.是否还面试其他公司(HR确认求职意向与诚信度)
实话实说,选择名声较大较好的公司来说,职位和现在的求职相思相近,表是自己求职意向专一,还在等候结果
11.项目中遇到的最大挑战是什么?怎么解决的?
因人而已,需要描述问题产生的原因,查找解决问题的方式,对比那种更加好,遇到什么问题,最终怎么一步一步解决的
12.最有成就感的事情是
做有挑战性的事情,并且能够做好,或者是坚持一个习惯很久,如坚持写博客,坚持看书
13.你有什么问题想问的?
1.你作为一个资深的CODER,我想知道,你平时是怎么学习技术,有什么好的学习途径,怎么才能做到像你一样强呢?