前两天一个读者来问我关于裸辞方面的事情。最开始我给他聊的时候都是:最好不要裸辞,骑驴找马,balabala...然后他突然给我来一句这个:
辞!赶紧辞!立马发起辞职流程!这都开始影响到身心健康了,不用想这么多了,赶紧走人,保命要紧。
裸辞简直是一个经久不衰的热门话题。针对这个问题,我个人的结论是:不要裸辞,不要裸辞,不要裸辞。
一:不到万不得已的地步,千万不要为一时之爽而裸辞。
二:有经济基础,盘算好后路再裸辞。
三:如果非要裸辞一次,觉得职业生涯不裸辞不爽的,那么越早越好,越年轻越好。越早、越年轻裸辞的成本越小。
但是还是先把前提条件划分清楚,这几种情况先排除在外:目前你的工作已经严重的影响到你的身体、心理健康;你准备跨行业、跨城市找工作;你家里有矿。但是对于我们程序员来说,大多都是在同城市找同岗位,针对这种情况,我极力建议你不要裸辞。主要原因就是裸辞找工作,心态容易崩啊。即使你提前做好了完善的心理建设,想着:找工作嘛,大不了就是一个多月,两个月的时间,我慢慢找呗。
但是,对于大多数人来说,社会常常就是一顿毒打。等你找了一个月之后,还是没有收到一个满意的 offer,即使距离你给自己设限的时间还差一个月,大多数人的心态就慢慢的崩了。负面情绪慢慢的就出来了。我觉得裸辞期间压力主要来自于三个方面,最直接的就是自己经济上的压力,其次就是自己心理上的压力,最后就是来自家人朋友善意的问候。
关于经济压力,长远的就不说了,裸辞之前至少至少自己的资金储备能抗过去自己四个月的生活费、房租和日常消费吧?不知道你啥情况,但是我刚毕业快两年的时候就是一个月光族。在自己资金储备都没有多少的情况下,强行裸辞,好的结果当然是裸辞了几天就找到了心仪的工作。坏的情况要么就是穷到找家人、朋友支援一下。要么就是将就自己委身下嫁,为了钱将就的选择了一家公司,从一个坑跳到了另外一个坑。
没有房贷、车贷、家庭的年轻人负担还好一点,只需要考虑自己就行。对于有房贷的朋友们来说,如果几个月没有收入,心态很难不发生一点变化。对于那些又有房贷,还有小孩要照顾的朋友,裸辞带来的经济压力就更大了。然而,即使是这种情况,经济带来的压力还仅仅是裸辞中最容易抵抗的一环。
最大压力还是在于心理上的压力。长时间收不到心仪的 offer,随之而来的就是迷茫、焦虑、混沌、不知所措、不愿面对、自我否定、踌躇满志...这些心理都会极大的影响到你找工作的。
我记得我刚刚毕业找工作的时候,前一周每天两个面试,而下一周的星期一没有一个面试邀约,我当时就觉得:完了,肯定找不到工作了,已经没有面试机会了。这其实就是一种自我否定。很累的,既要忍受面试这种生理上的折磨,还得忍受自我否定的心理折磨。这时候就会变得很敏感,明明是来自家人朋友善意的关心,而我却会非常抵触。这种情况下,我就会出现对于 offer 的极度渴望,这种渴望,会让自己陷入非常被动的局面。
还有一点就是有的 HR 可能会以此来压你的工资。HR 赌的就是你心态崩了,你需要这份工作,你会在薪资上退步,先找到工作再说。而这背后隐藏着另外一个逻辑:你本来裸辞,就是想从一个坑里面跳出来,不想将就着过日子。而最后的结果却是跳入了另外一个坑里面,说服自己,接受了一个还将就的工作。得不偿失。
前面说的这么大一串,其实就两字:心态。如果你觉得你的心态足够强大,那么裸辞也就裸辞呗,工作嘛,慢慢找就行了,反正存款多的很,不急。这其实就是我前面说的第二点,有经济基础。还有一部分裸辞的人呢,他们在心里早就做好了盘算。辞职之后,先找一批小公司面试一下,找找感觉,随便拿几个offer。然后再去冲击自己心仪的公司,这时手里的 offer 就是自己谈判的筹码,就算 HR 知道你是裸辞,也很难用这个理由去压你的薪资。
这部分人,甚至把第一批到底面试哪几个公司,通过之后要多少钱的 offer。然后拿到几个 offer 之后,什么时间点去面心仪的公司。如果拿到多家心仪的公司的 offer,应该怎么去选。这些问题通通都考虑清楚了。而这部分人是什么?是盘算好了后路的大神呀,如果你是在某个领域有建树的、有一定知名度的人,那就可以任意裸辞。工作的邀约马上就随之而来。可惜大多数人都不是这样的人。
但是如果你是在职找工作,上面的问题就都迎刃而解了,因为你还有一条退路。进可攻,退可守,你最终选择的一定是一个你经过对比后,确认比当前要好一点的工作岗位,这不挺好的嘛。在职无非就是不好请假嘛,但是你自己掂量掂量,是在职请假难还是裸辞之后一直找不到合适的难。如果说你非得想要体验一下裸辞的快乐,那么越早,成本越小。这里的越早,指的是步入职场的时间。
但是我想告诉你的是,裸辞的快乐一定没有找到下家,入职之前的空档期期间快乐。我曾经就有这样的半个多月的空档期,那可真是太快乐了。希望你也能体会到。另外再重复一次:如果你的工作严重影响的到了你的身体健康、心理健康,那么赶紧走吧。以上说的都不算数,身心健康,比啥都强。我身边也有这样的例子。
我有个朋友,毕业于国内 TOP 级院校,找了一个工作,说好是在核心部门的,最后被调来调去,一年后,居然调到一个非常边缘的岗位去了。有多边缘呢?他告诉我,他每天都要去街上发传单,而且每天发的量是有指标的,这是上级指派给他的任务。他发了快一个月了,实在是受不了。在他给我吐槽之后,我能感受到他那种发自内心的不快乐。所以每天都在鼓励他,赶紧辞职得了。
终于有一天他早上去了说要走,中午就把所有流程走完了。他说走出公司的那一刻,觉得自己解放了。在家花了几个月准备考公务员,准备的过程中顺手去面试了几家公司。有一家感觉还不错的公司居然给他发 offer 了,工资还比之前高了好几千。这玩意,福祸相依,谁说得准呢?总之,裸辞考验心态,稳住心态。实力和钱,都能稳住心态。裸辞之后,每天找点事干,学点东西,哪怕是微不足道的一点小进步,也能巩固心态。
关于两年多经验
在聊天的过程中,他还问了我一个问题:一个有两年多开发经验的 Java 需要掌握哪些技术?这个问题非常普遍,我被问过好多次了,但是还真不好回答。
我每次的回答都是大道至简:去招聘网站上看看。如果你想去某某公司,那么这家公司的招聘简介上是怎么写的,有那些技术相关的要求?接着你再想,你心目中的某某公司,到底是那一家,或者那几家公司。都去招聘网站上看看,按照 1 到 3 年的工作年限,筛选一下结果。然后把这几家公司所要求的技术都放一块,就是你要找的东西了。
我想了一下我两年经验的时候都会些啥?还真的想不太起来了。但是我能想起的就是两年经验真的是一个特别尴尬的时间节点,主要还是处于一个非常迷茫的阶段吧,在技术的深度和广度上反复横跳。关于这个点,其实我个人的看法是前三年都先去扩展技术的广度,后几年再找几个点来深挖。记得之前有个哥们给我说过:技术这东西,没有牛逼不牛逼,只有接没接触过。
这句话适用于两年的人,也适用于五年的人。五年的人大多都厉害一点,原因是他们时间多了一些,接触的东西也多了一点而已。回过头来说说两年这个事儿。我去招聘网站上看了一眼,在工作经验这里是这样划分的:
而正常来说其实就三个档次:1-3 年,3-5 年,5-10 年。这个三个档次的设定,其实就是按照职业生涯的三道坎来设定的。两年经验就是在最低的档次,这个档次招你过去干啥的?
你心里得有点数:招你进来是为了让你来写简单的增删改查的,来干一些其他人不乐意干的脏活累活的。
有的人就说了:我虽然只有两年经验,但是我在公司就是干的核心业务呀。
拜托,大哥,你说的这情况基本就两种:
1.校招入场,招你就是为了把你培养起来的,干了两年,接触核心业务很正常
2.半路入场,干了一段时间,能力还不错,被委以重任
人家现在的情况是两年要跳槽了,能力到底如何,还有待考证,公司招他的目的,就是为了找一个简单的能干事的初级开发就行。所以你要知道,正常情况下,对你的技术面要求其实要求不会特别的高,主要看你知道些什么东西。我在网上随便找了一个美团的 1-3 年工作经验的招聘简介:
对于技术上的要求,我一个个的说吧:计算机基础扎实,具备良好的数据结构、设计模式、数据库、网络基础知识这个没什么说的吧,不管几年经验,这都是从科班带出来的必备技能。特别是数据结构、数据库、网络基础这三大块。这三块是你构建计算机知识大厦的两个重要的基石。最好从科班毕业就从学校里面带出来,如果没有学好,那么你相信我,如果你想在这个行业里面的技术的道路上走的稍微远一点,这几块东西,再难吃,你也得啃下去。
熟练使用常用研发工具,包括但不限于依赖管理打包管理工具Maven、版本控制工具Git等,这玩意其实没啥好说的,研发工具啊,大哥,就算你真的没用过,这东西完全是可以突击的。假设你去面试,简历上没有写这一条,而你心仪的公司的招聘简介上又写了这个。花一天时间,入个门,自己去按着官网教程把入门级的 Demo 跑一遍就可以写到简历上了,这个不过分吧?
熟练掌握Java语言:熟悉面向对象、多线程、反射;了解Jvm调优、类加载、Nio/Aio、字节码增强等更佳
熟悉Java技术栈:Spring体系、Servlet系列容器、HttpComponents、Guava等
熟悉MySQL应用开发,了解数据库事务隔离级别、索引原理、性能调优;对NoSQL有研究更佳
从这里开始就比较有意思了。前面写的“熟悉”意思就是这些都是考点,意思就是面试的时候我会问。后面写的“了解”意思就是附加题,面试时我也会问,答的上来加分,答不上来不扣分。前面“熟悉”的没就不多说了,多去找点相关的面试八股文看看,见的多了,也就能答的七七八八了。后面的“Jvm调优、类加载、Nio/Aio、字节码增强”,如果你问两年经验时的我,我肯定是一脸懵逼,只能打马虎说个大概起来,可能还漏洞百出。
因为虽然说是附加题,但是身边的学霸们都会啊。我确实没有扣分,但是他们蹭蹭蹭的加分了啊。在我看来,这些东西其实考察的就是技术的广度。我想面试官问你这方面的问题的时候不会把你往死了问,因为他的目的不是难倒你,而是看你的广度到没到位。
包括下面的这两个点:
7.了解常用中间件:包括但不限于消息队列、分库分表组件、定时调度、分布式配置等
8.了解SOA架构,对RPC、序列化、服务治理有相应了解
招聘简介上的定位都是“了解”,就是你可以没有在生产上使用过,仅仅是搭建过 Demo ,知道这是个啥,怎么用。或者在生产上用过,但是目前它对你来说就是个黑盒,对其内部原理还不太明白,是一个知其然的阶段。而同样的要求,在3-5年这个档次的时候,肯定是写的“熟悉”,并且是得真正的应用过,能对其内部原理进行一个简单的研究,知其所以然。
所以你问我,两年开发经验的 Java 应该具备哪些知识?
首先科班出来的那一套应该是得掌握的:数据结构、基础算法、操作系统、计算机网络、数据库、Java基础。
接着就是实际工作中会用到的一些框架,特别是 Spring 家族的东西,你可以不是很了解程序是怎么跑起来的,但是你得知道它们是怎么用起来的。
然后就是能熟练的使用一些常见的开发工具。
再来就是一些中间件、其他的框架、一些知名的开源项目、设计模式,这就是看你能主动去接触多少东西了。
举个简单的例子:我两年经验的时候连 Kafka、ES 是什么东西都不知道,而同样是两年经验,有的人都已经把这些东西玩转起来了。别人在工作中同样没有用到这一些技术呀,都是工作之外的时间自己提升起来的。还有,以我的经验来说,不管是 1-3 年还是 3-5 年,面试的一个重点考察对象除了技术能力之外,还有对于项目的考察。
所以,请多花点时间了解你负责的、你做的项目的业务,面试一般的切入点都是从项目开始。尽量让你的项目可以聊的话题稍微多一点。
另外,看这里:
除了工作年限之外,还有个维度是行业领域。计算机相关岗位是一个很大的范围,在这个范围里面还有各个细分领域。比如移动互联网、电商、金融、广告、教育、游戏等等细分领域。如果可以的话,即使跳槽,也请在一个细分领域里面,深耕下去,实现业务经验的积累和迁移。当然了,如果其他领域给的钱很多,你就当我没说,请面向工资编程。
最后,对 1-3 年的人说一个忠告吧:别一味的沉溺在技术里面难以自拔,多抬头看路,多去和比你优秀的人接触,多注重一些软技能的提升,多注意自己的生活、身体管理。