最后如何让自己一步步成为技术专家
说句实话,如果一个打工人不想提升自己,那便没有工作的意义,毕竟大家也没有到养老的年龄。
当你的技术在一步步贴近阿里p7水平的时候,毫无疑问你的薪资肯定会涨,同时你能学到更多更深的技术,交结到更厉害的大牛。
推荐一份Java架构之路必备的学习笔记,内容相当全面!!!
成年人的世界没有容易二字,前段时间刷抖音看到一个程序员连着加班两星期到半夜2点的视频。在这个行业若想要拿高薪除了提高硬实力别无他法。
你知道吗?现在有的应届生实习薪资都已经赶超开发5年的程序员了,实习薪资26K,30K,你没有紧迫感吗?做了这么多年还不如一个应届生,真的非常尴尬!
进了这个行业就不要把没时间学习当借口,这个行业就是要不断学习,不然就只能被裁员。所以,抓紧时间投资自己,多学点技术,眼前困难,往后轻松!
【关注】+【转发】+【点赞】支持我!创作不易!
=====================================================================
这里简单聊一下我对 IT 人员求职常见的几个求职平台的看法,常见的面向 IT 求职人员的平台有拉勾网、猎聘网、Boss 直聘、100offer 等,我一般只在拉勾网、猎聘网、Boss 直聘这三个平台寻找意向职位和投递简历,早些年还有大街网和内推网,但是这些年这两个平台因为自身的原因都没落了。所有,我之前都是优先在拉勾网上求职,并且对拉勾网的体验也很满意,而对猎聘网和 Boss 直聘满意度一般。
猎聘网上有许多猎头看你更新了简历会主动联系你,帮你推荐职位。但是这种模式有好的地方也有不好的地方,好的地方是,由于是猎头内推的,所以招聘和面试进度和效率一般比自己直接投递某家公司要高,而且有些公司一些内部不公开的职位,你也可以通过猎头的内推获得面试、入职机会。但是,猎头推荐也会存在一些不好的地方,如果你入职成功了,猎头能从公司拿到一笔不菲的推荐费。因此一些猎头为了促成求职者成功入职,会编造一些谎话,对求职者或者公司隐瞒一些真实情况,等面试者面试时或者入职后才发现一些坑。另外,还有一些素质非常低下的猎头,这大大降低了求职者的面试体验。
再来说说 Boss 直聘平台吧。Boss 直聘最初的宣传的特点是老板亲自招人,但我个人觉得这种做法基本行不通,小公司还好一点,大公司基本上不可能有多少老板或者 XX 总亲自招人,都是交给人事部门,因此最初 Boss 直聘给我的感觉就是,这个平台上要么都是一些小公司尤其是一些创业公司,要么就是一些不靠谱的公司,我并不是要黑这个平台,我前几年通过这个平台求职时,面试了几家后发现都是一些连办公室都不固定的"不靠谱”的招聘团队。
拉勾网相对来说,我的印象就比较好了,因为我的前几份工作都是通过拉勾网找到的。但是,这次拉勾让我的体验就不太好了,因为投递的大多数职位都没有任何回应,投递的大多数职位永远是处于对方公司已经接收的状态,再也没有下文了,当然,这不是拉勾网的问题,可能是招聘方公司本身的问题。但是有一点我不明白的,为啥差不多的职位,在 Boss 直聘上投递后无论成与不成,很快就有对方公司的回应呢?这样也节约了求职之大量期待和等待的时间。
所以,早些年我觉得拉勾网靠谱一些,Boss 直聘不靠谱,现在的印象恰恰反过来了。这里说一点自己对这三个招聘平台的使用感受,一家之言也不一定对,仅作读者朋友在投递简历选平台时一个参考吧。
回到面试阿里这个职位的主线上来。我面试的是阿里巴巴的蚂蚁金服团队,我人在上海,阿里巴巴的支付宝国际支付业务,工作地点是在上海靠近世纪大道或者商城路的支付宝大楼(近上海浦东八佰伴商圈)。其实,我一直也在商城路地铁站附近,这次面试发现原来阿里的支付宝大楼也在这里,- -!
======================================================================
我求职的阿里的 Java 技术岗位一共有三轮技术面试和一轮 HR 面试,实际上 HR 面试了两次,下文会详细的讲。
因为这段时间面试了很多大厂,有一些拿到了 offer,有一些因为一些原因没有拿到,因此我个人觉得对于像求职 BATM 这样的大厂或者字节跳动、拼多多这样的独角兽公司,最后能否拿到 offer 一部分取决于你的个人技术水平和工作经验,另外一部分取决于你的运气,还有一部分取决于你面试时的策略和技巧,策略和技巧下文我会举一个具体的例子。个人的技术水平和工作经验这一块不必多说,来说说为啥有一定的运气成分呢?
举两个例子吧。
第一个例子,我这次面试了腾讯,前面三轮技术面试已经过了,第三面是主管面试,但是招聘方却要把第四轮高管面试安排在几个星期之后,对于大多数人来说,其实是没有这个时间成本来等待的,尤其是你手上已经有了几个 offer,它们可能在催你入职的情况下。所以,腾讯的面试,你不能接受等待这么长时间,或者即使你能接受,但是不能保证最终一定能拿到 offer,就不得不选择放弃。其实之前也听一位已经在腾讯入职的朋友说,大厂的社招面试周期可能真的有点长,有可能需要反复来回跑,因此要求职者自己权衡成本。
第二个例子,是我面试阿里。其实在我这次求职阿里之前的一个多星期前投递了阿里的另外一个职位,然后没过多久的一个晚上,大约七点左右进行了一次电话面试。阿里通常第一轮面试是电话面试,这次电话面试只能用"哑巴吃黄莲有苦难言"来形容。那天晚上,按照约定好的时间,我们开始了电话面试。聊了一个多小时,快结束了,我就问面试官,既然是 Java 职位的面试,为啥你不问一点 Java 相关的基础知识呢?面试官说,这些东西都是可以提前在网上寻找面经准备甚至背诵下来的,所以他面试的一贯做法是从来不问 Java 相关的基础知识,只和面试者聊之前做过的项目。好吧,我竟然无言以对。末了,面试官问我,你还有啥想问我的?我就直接说,那我这次面试到底是过了还是没过?面试官就直接说:你和我聊的并不是我想要的,我从你说的项目中也看不到任何符合我们要求的经验,所以面试当然没过。其实我当时心里其实是很不满的,为什么呢?因为我项目的工作所对应的业务,面试官并不了解,我就给面试官解释,尤其是涉及到一些结构图和流程图时,由于是电话面试,电话里面根本说不清楚。也就是说,第一面试官不了解你的业务,但是他觉得他通过你的描述懂了,第二一些特定的内容电话里面描述不清楚,再加上面试官不问相关的 Java 技术,因此最终给面试官留下的印象是你"一无是处",没有任何可取之处,因此失败了。但是大多数求职者应该和我的开始的心态是一样的,面试大厂不自信导致底气不足,不会去反驳或者回击面试官的一些不合理的要求。
我举这个例子想说的就是面试大厂中的运气成分,很多时候,并不是你不行,而是面试过程中,面试官的个人特质和喜好或者沟通中信息不对称,最终让你没有通过面试的机会。因此,对于这种情况,我们需要做好两点,第一就是自信一点,调整心态,虽然我们可能很想进眼前这个大厂,但是不是非要进这个大厂不可,对于不合理的对待要直接反击,据理力争;第二,讲究沟通策略。因此在后面的阿里其他部门的面试时,面试开始前,我就委婉的和面试官说了自己的一些建议:既然是电话面试,那么面试官提问时就不要提一些电话中不太方便或者不容易描述的问题,例如描述项目结构或者流程;如果面试官之前没做过应聘者的项目的业务,就不要深问这些业务细节,因为可能三言两语说不清楚;如果面试官实在想知道,咱们可以约着现场聊,当面沟通很多事情就容易说清楚了。
====================================================================
有了这个共识后,我和面试官开始了第一轮电话面试。第一轮面试的时间是某天上午九点,电话面试,面试官简单的了解了一下我之前做的业务,在后来的交流中我才知道面试官在去阿里之前也是在交易所做金融交易系统的,因此他知道我做的项目的重难点。接下来就问了我一些 Java 的基础知识,我面试后做了一下总结和记录,贴出来给大家看下:
-
Java 的 Object 类有哪些常用的方法?
-
哪些场景下,子类需要重写 equals 方法和 hashCode 方法?
-
描述下 HashMap get 方法的主要执行逻辑和流程;
-
Java 异常,什么是 checked Exception 和 unchecked Exception,举几个具体的例子;是否研究过 Spring Boot 中的异常;
-
ConcurrentHashMap 的特性和实现原理;
-
什么是分库分表,以及分库分表的具体方法和使用场景;
-
数据库事务的 ACID;
-
什么是分布式锁以及其实现原理和使用场景;
-
幂等性问题。
这里需要说一下,上面的面试题其实都很基础,尤其是涉及到 Java 本身的如果你是从事 Java 开发的,但是只局限于应付公司的业务代码,从来没有主动去研读一下 jdk 的一些常用类库,无论从应付面试来说,还是就你的 Java 技术栈的提高乃至技术职业生涯都是不好的,希望从事 Java 开发的读者要意识到这一点。
网络上有很多类似于 Java 面试高频知识点总结的帖子和课程,我个人觉得这些课程你可以用它作为大纲,但是千万不能只达到这些大纲要求的深度,作为 Java 开发者,jdk 的源码,尤其是常用的 java 类的源码还是建议认真阅读一下。
第一轮技术面试结束后,我就问面试官是否通过了。面试官告诉我通过了,然后我问他下一轮的的面试会安排在什么时候。我当时告诉他希望他们尽快安排,已经有其他的公司在催我入职了。面试官说去沟通一下。
于是当天下午大概一两点左右,一面面试官问我晚上是否有时间,给我安排第二轮技术面试,于是约了当天晚上七点。
====================================================================
第二轮技术面试是主管面试。原来约了晚上七点,我到了之后一面的面试官接待了我,并告知我他们主管临时有点急事,能不能把时间改到九点,或者再约。我当时想来了就来了,就不单独约时间了。于是在这之前和一面的面试官又聊了一下,一面的面试官人很 nice,我们聊了很多东西。通过聊天得知原来一面的面试官之前在某交易所做交易系统,然后我们聊到了"清算"系统,他告诉我我面试的这个岗位也会参与清算业务的开发,但是这里的清算与交易所里面的清算不太一样,交易所的清算系统更复杂一些。然后他和我说了一下后面面试的一些注意事项,告诉我二面面试官也熟悉对交易系统那一套,知道其中业务特点和技术重难点,但是后面的三面没有这方面的经验(三面是整个大的部门的领导),所以我一定要把我之前做的交易系统的重难点突出来,否则很可能被 pass 掉。最后又和我讲了一下阿里的薪酬结构和期权的一些事情,以及 HR 面试和其他公司的 HR 面试不太一样,要我认证严肃对待。
大约到了晚上九点,二面面试官终于来了。先和我介绍了一下他们所做的东西,他们是做跨境支付和结算的,通俗的说就是用户在 A 国家购买某个东西,这个东西是 B 国家的某电商出售的,整个流程下来如何针对不同国家的货币汇率把钱从 A 国家用户账户划到 B 国家电商的账户里面去。这里有个难点就是 A 国家的用户购买某产品时当时的汇率是 t1,但是结算是可能汇率变成 t2,如果保证 A 用户购买时的实际确认支付额与 B 国家电商用户确认出售额一致。大致就是这样一个场景,面试官让我描述这样一套流程下来,如何设计这样一套系统,一共有几个子系统,汇率会变,如何保证用户和商家的利益等等,以及结算频次如何控制。在和面试官讨论中我给出了自己的设计方案,当然开始的答案并不完美,后来面试官会不断给你提出新的问题,以考察你的设计能力。正常的面试结束后,面试官就我之前的项目聊了一下自己的看法。据他所说,他来阿里之前在摩根斯坦利做了十多年的金融系统开发,再后来来阿里负责支付宝中的蚂蚁森林和股票看盘那一块,后来调到阿里国际支付业务团队来。
聊了大概一个多小时后,结束了面试,我离开时,发现外面的沙发上还有一个人等待面试,汗,竞争压力真大。
第二天早上,我通过一面面试官帮我打听二面面试结果,大概中午的时候,二面面试官加我微信说面试通过了,但是三面面试官,也就是他们大部门的 leader 在深圳出差,问我是否方便视频面试,我说可以,于是就约定了第二天晚上七点的视频面试。
====================================================================
前一天三面的面试官给我打了个电话,然后加了我微信。第二天晚上七点,面试官准时微信视频我,打开后发现是一个胡子没刮的中年大叔,"大叔”在阳台上坐在笔记本电脑前面,然后面试就正式开始了。先让我做个自我介绍,然后就和我聊起之前的项目,在我介绍项目的过程中,时而问一些 Java 细节的东西,如多线程同步用了哪些对象,如何编码的,时而问一下框架或者架构方面的,例如如何做热备、是否使用了分布式服务,分布式服务中多个服务之间数据如何保持一致,系统的支持的最大 QPS,缓存问题、数据库的压力问题等等。三面的技术面试并不容易,一般来说,不同公司因为业务形态,采用的技术方案不尽相同,但是不少面试官并不认同面试者公司所采用的技术方案,所以需要面试者详细的、认真的给出合理的解释,如果你对你负责的系统背后的技术方案从没进行认真的思考和反思,很容易被面试官几次连续追问弄的措手不及,或者落入面试官设置的技术圈套中。
这类面试我给读者的建议是,无论你是公司某个项目的负责人,还是你只是参与某个项目只负责其中一部分,不仅要想办法了解整个系统的结构设计,多反思你现在的结构设计,还要对关键的细节核心也要非常熟悉,把你所在的项目的一些关键细节搞清楚,千万不要只局限于自己的"一亩三分地"。
======================================================================
第二天早上,一面的面试官告诉我第三轮技术面试已经通过了,接下来就是 HR 面试了,但是阿里的 HR 面试与一般的人事面试不太一样,HR 在阿里有点像军团的"政委",同时告诉我,阿里的薪资待遇现金部分不会给太多,更多的是期权,而且这些期权公司内部是明码标价的,在离职时公司会以制定的价格去回购。
当天,一个自称阿里的 HR 主管的女性给我打电话,与我约了下一轮的人事面试,具体日期记不得了,是后面几天的某个上午 10 点。
最后
即使是面试跳槽,那也是一个学习的过程。只有全面的复习,才能让我们更好的充实自己,武装自己,为自己的面试之路不再坎坷!今天就给大家分享一个Github上全面的Java面试题大全,就是这份面试大全助我拿下大厂Offer,月薪提至30K!
我也是第一时间分享出来给大家,希望可以帮助大家都能去往自己心仪的大厂!为金三银四做准备!
一共有20个知识点专题,分别是:
Dubbo面试专题
JVM面试专题
Java并发面试专题
Kafka面试专题
MongDB面试专题
MyBatis面试专题
MySQL面试专题
Netty面试专题
RabbitMQ面试专题
Redis面试专题
Spring Cloud面试专题
SpringBoot面试专题
zookeeper面试专题
常见面试算法题汇总专题
计算机网络基础专题
设计模式专题
存中…(img-o6jxUJjP-1715425984128)]