一个机械毕业生的转编程之路

Posted LG_985938339

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个机械毕业生的转编程之路相关的知识,希望对你有一定的参考价值。

2021年六月

又来更新了,2020年刚入职时定好的目标,想着2022年拿个2万块钱,看来是实现不了了。

想想刚毕业时,2019年7月,在深圳的工资都不用交税的。
2020年1月,转正加了一千,到了6k。
2020年5月,特调加了两千,到了8k。
2020年11月,转行java,到了10k。
2021年2月,转正加了一千,到了11k。
2021年7月,到了17k。

转行干了半年多java,现在又跳槽走了,目前是17k,为了自身的发展,需要去更好的平台,接触更好的技术。

同时在最近的面试过程中也感觉到了,java的内卷严重性,面试造火箭是必须的,虽然mysql Redis这类东西我是半年前才接触到的,但现在我在简历里写的是深入理解MySQL Redis的原理和使用,深入理解并发编程的原理和使用,熟悉spring cloud各组件的原理和使用等,面试也是各种技术的原理面,好在大部分小公司一面都能吊打面试官(但是即使面试官被吊打了依然有不让过的,可能是因为我只有半年多java经验的原因吧)。



写在开头

很庆幸自己现在走的路,没有什么是后悔的,机械毕业的我,可以说是经历了山穷水复疑无路,柳暗花明又一村的感觉,现在已经转行做java了,虽然也没有大富大贵,但是已经在往好的方向发展了。

本科是一所普通的一本院校,以前高考选专业就喜欢挑那些分数高的专业来选,于是来到了机械设计制造及其自动化专业,大一到大三都是无忧无虑的过着,没有什么想法,玩一玩就过去了,然后快到了大四,开始了解工作,也开始发现,原来大家都喜欢在知乎上谈这些专业选择、人身规划、工作发展之类的话题,然后不也是智能制造2025吗,就想着往这方面去发展。机械专业在知乎上有经常看蒋小坏的文章,当时就觉得以后机械还会不错,往设计方向,往技术含量高一点的方向去走。

正好是在大四前一段时间,学校开始有一个校企合作的一个项目,可以去学机器人,当时就觉得,这个校企合作挺好的,兴冲冲的去报名了,和家里人吹了一点牛皮,然后就开始大四的不在学校的生涯了,想想在学校少呆了一年,感觉还是挺可惜的。


2018年八月份,开始校企合作培训班

就直接开始了,后来来了这里才知道,原来,这是一个培训机构,身边班上的同学有四十岁的油腻大叔,也有和我们一样马上毕业的大专生,不过一直都也在上课,感觉还是可以的


其实主要就是学PLC,学个solidworks,学工业机器人的应用,这个可能大家没有做过的都不是很清楚,我们也没有做过,当时就感觉能学到东西挺不错的,除了就是感觉班上同学咋啥学历的人都有不表示有点不开心(不是歧视学历比我低的人的意思),现在看来,确实也不是什么高端活儿,没有什么技术含量,可以说是无门槛的,后来了解到,我们和他们的区别就是,原来他们是交了几万块钱来培训的,我们是之后要派到别的工厂做苦力来还钱(这也是做了苦力才了解到的,可能是最初没有好好了解清楚吧,培训机构也是要挣点钱的,校企合作,那也是有条件的),尽管这样来说,这段时间还是过的还可以的。

好吧,再接下来,学了差不多两个月了,说的是要教学和在企业工作相结合,我们又兴冲冲的来到了工厂,当时还信誓旦旦的,在和工厂在聊培养计划,在憧憬着未来,但也是这个时候才知道,原来培训机构是要从我们每个月的工资里拿钱的,有点不开心,那也没关系,有前途就行。

2018年十月,在这里开始了工厂生涯

进了工厂,开始的前段时间,就是去拧螺丝,接电线,搬东西,一连着几个星期,我们还想着,做机械哪有不先在基层干的,(现在想来,其实我在那里的唯一收获,就是见识了底层工人的生活状态,外加磨砺了我吃苦耐劳的意志),好吧,,,已经在这里连续一个月了,每天都是早上八点上班,晚上10点下班,一周六天,天天就是拧螺丝,接线,干体力活,每天下完班的第一件事就是睡觉,先不说累不累了,天天在里面被叼,果然底层干活的人,氛围工作环境就是不一样,公司其实根本就没想着来培养你,压榨劳动力罢了,一问,马上可以派我们出去做售后技术支持了,轮岗培养,,,

嗯,终于又有可以期待的事情了(),本以为这是一个很好的机会,可以学到和见识到很多东西。

当然了,期待的也正是自己不愿发生的

首先外派到长安vivo厂,这里有一个PM,怼天怼地怼空气,这里除了所有人包括售后,工程师,其他任何人,都不愿意理他,当然我们是新来的好欺负,天天被叼,没有给过我们好脸色看,甚至扬言要去和HR说不要录我们这一群人,这里稍微和他同级别的,也经常在工作群里和他互怼,但是在这里好的一点就是没有那么累了。

后面这边不缺人了,要调到南京仁宝华宝吉宝厂去了,可以这么说吧,那边才是最不愿意待的地方。只要进了他们厂大门,保安时时刻刻盯着你,就为了多抓几个人,(听说好像是抓了人有钱奖),我们在里面就不能玩手机。

外派人员在里面是极不招待见的,无论是谁看到你了都能叼你两句,不管有没有进车间,只要进了厂门就不能玩手机,可能你因为工作原因微信沟通一下,就直接过来把你厂牌扯了,然后就是罚钱了。或者你就没动一会,直接过来二话不说扯掉牌子,说你在睡觉,要罚钱。在我离开那个厂子的时候本来我还想投诉的,后来感觉也没啥用,没有做这事了。

在那里每天也是工作到很晚的,忙的时候就天天晚上凌晨回去。再加上那边的售后带我们的那个人也是,就想着混加班工资,每天没事也得晚上加班,自己加班就算了,我们其他人也不许走,要陪着他加班。又是闹了矛盾,还是经常挨叼,还累。(已经有几个同学放弃了回学校了,毫无技术含量的活,还得在身体上和精神上受到折磨,一本的学生不该这样的吧)


2019年三月,好不容易到快毕业了,熬过了秋招,熬过了春招,终于熬到我们回学校了

但是我们错过了春秋招,而我们去学工业机器人的大部分人就没有找到工作。有的提前回来了,有的转行了,有的准备考研了。

班上其余的同学基本早已找好工作,享受在大学的最后的时光,我们这些人回来后就又开始了找工作的历程,和同学们交流发生的事情,以及再最后感受一下在大学的时光,仅此而已了。

此时我仍然对这个行业保持乐观的心态,我认为这段时间的不快乐只是那个公司的问题而已,并不是行业问题。

2019年七月毕业,找到非标机械工作

我和其他两同学找了一家在深圳的非标自动化公司,基本工资是5000块。
我做上位机电气方向的,那辆同学做机构方向的,没有加班费,到手还是有4100块钱的,当时竟然也满足了,进来后才发现被坑了,他们公司走校招流程的全都比我门要高500,即使是个三本没有任何经验的。

这家公司的总部在江苏,深圳是分公司,就一个三层楼小房,我们在深圳报道后被派去了江苏实习三个月,开始时也是满心欣喜,过去一看,又是在车间里面拧螺丝和干体力活,他们正常校招的就是正常进车间体验个两周,我们被通知必须在车间干满三个月,而且不同的是,总部是五天制,我们是六天制,我们说之前已经干这个干了半年多了,这方面经验已经差不多了。。车间主任来找我们三谈话,说你们不要觉得在车间干不好,得先熟悉了才能设计的出好的东西,之前有个人就是才干了一个月就回办公室去了,后来设计的东西根本就不行,被我叼了好几回。其实总部最多就两周,当时真的是气的我们差点当场离职了。

遂与一个级别比较高的大佬联系,让他协调一下,好在答应了,让我们白天在车间干活,晚上可以不干,但是必须在办公室学习,妥协了这样的一点点我们就欣慰了,开始了干活之旅,中途一机构的同学又被气的离职要转行,第二天没来,后来和家里人商量转行的事未成,然后气消了,又接着上班了。

我呢,后来因为表现特别突出,学习能力较好大佬们看到了,正好深圳这边忙不过来,提前把我放回了深圳,没有在车间干满三个月。

后来回到深圳之后,对我而言其实也是比较好了,工程师而言整体素质就好了不少,不像底层一样工作氛围差,动不动叼人,再加上深圳的领导确实好,至少我没有再受过那样的气了。

2019年10月,正式工作后的又一个困难——007的累

深圳这边是比较忙的,在做一个大项目,我也参与到了里面来,前期确实还可以,学到了不少东西,后来项目着急了起来,又是开始了下一个循环了。

项目一步步的在做,我们这个项目的人由于项目需要,又回到了江苏,已经是冬天了,在江苏还刮着北风,还是比较冷,整个团队的人都在夜以继日的在车间工作,我们工程师的话,有部分上白班,有部分上夜班,差不多每个人正好能有个七个小时睡眠把,我是上夜班的,领导是白夜不分的,天天晚上三四点睡,早上十点又来了,有时领导也喜欢往车间外的空地上跑,刮着刺骨的北风,在外面吸几口烟,思考项目上的事,这可能是我工作以来印象最深刻的事吧,确实在这里好的一点就是,领导干活是最多最积极的,当然压力也是最大的,我们整个项目的小团队其实所有人压力都大。

江苏干完活了之后,大家回到了深圳,又开始了在富士康车间里面调试设备的活儿了,设备一直有问题,不行,我们搞电气控制的真的没办法,机构在设计上问题太多了,如果说有做非标设备的朋友应该就很清楚了,机构设计、方案设计有问题,我们做电气的就根本没法做,而对手已经领先我们太多了,我们一直在改一直在改,也是经常到凌晨吧,第二天依旧要正常点起床上班。

马上快要过年了,我们的项目一直都没弄好,我们团队人员安排大部分人都得留在深圳工作,过年春节那三天每个人发一百一天的加班工资,其他的时间没有钱。

过年那天,领导在富士康车间里面叫我们一个一个出来打电话给家里人拜个年,拜完年,接着到车间里面工作。

2020年春节,连续加班四十天

过完年没几天,疫情蔓延了,本来还想着过完年回去几天,又不行了,于是再连续上了四十天班,一天也没有休息过,平均每天出富士康车间,应该有到晚上十一点半吧。

经常就是进去了车间也没有什么经历干活,只想找个地方休息,然后再富士康车间里面又是有一个很大的问题,很多时候不会允许我们外派人员坐着,因为富士康是没有给外派人员预留凳子的,所以我们基本上都是天天在车间里面站上十多个小时干活的。

同团队的有个工程师就经常和我说,要是能有一天晚上能不加班,可以多给休息个三四个小时,他第二天绝对干劲十足,这样下去的话他快撑不住了,因为我们基本都是到凌晨的,能有个晚上休息一下基本是不可能的,每个人是真的有事。我也不知道我是怎么坚持下来的,关键是每个月拿到手也就只有4100块钱而已。

有时候领导就和我们说,他最近有点胸痛,希望我们可以再多坚持一会儿,也和我们说,如果你觉得你真的你身体感觉异样了,可以向他反馈休息一下,毕竟,在非标行业里面为了调机通宵熬夜过世的外派人员那也不在少数了。

上面是我的部分工作记录,去除了部分敏感信息,可以看到春节连续四十天都没休息过。

我在这家公司的一年多时间里,一个月平均应该能有2天休息。


2020年公司年度表彰大会

给我发了个最佳新人奖,同时答应我转正给我加1000块钱。

终于终于,项目差不多OK了,终于可以休息了,然而,在这里的休息,仅仅只是去富士康车间里面看线,站一整天,真正在办公室的时候还是很少的,我们做这一行的就是这样的,要么忙的时候在车间累到死(虽然其实也是站着),要么没啥事了,也去车间里面站着,守着设备生产,其实就是售后,一个被 富士康里流水线上员工呼唤的调机技术员罢了。。好吧,即使这样,那也轻松了不是?

但是在富士康里面站一整天也不是什么滋味,我们一本的大学生毕业就在里面干耗着站着浪费生命?

趁着晚上不加班,自己做了一个框架出来,用来控制设备运行的。说句实话,在公司三年以内技术就没有比我厉害的,至少,他们就做不出框架出来。


2020年中左右,又是开始加班到凌晨

2020年中左右,由于量产准备,又是开始了忙起来了,或者说比之前还要忙了,就经常是晚上三点出富士康大门,第二天早上九点接着进车间把,其实这边虽然是累,领导比我更累,都是为了项目,打工人的无奈。

以及,一新来的同事,凌晨和我一起去三点出的车间大门,第二天上午就没来,下午才过来上班,然后被领导问责,为什么上午不来上班?据我所知,现在这个同事好像是已经被劝退了。

有时实在太累,和同事一起吃烧烤的时候,我就在讲,我应该是很惨了吧,应该没什么其他人比我更惨了吧。工资又低,我在富士康里面流水线当个普工坐着,坐这么久,那也比现在工资高多了啊,我们加班到再晚,加班到晚上三四点它也不会给我们加班工资啊。

在富士康车间里面的时候,有的时候一条生产线的线长就知道我们是大学生就挺兴奋的,和我们聊天,说别人说这里有重本的大学生啊,有前途啊,听说你们一个月拿个两三万,我也就是笑笑,说工资还没他高呢

有的时候到凌晨了,富士康里换了上夜班的人来了,他们没啥事干,坐在旁边的人也会来和我们闲聊,问我说你们工程师也有夜班啊,我说我们没有夜班,我们是从白天一直在车间里面,一直到晚上,它就夸夸,我们真厉害,嗯!确实挺厉害的。

2020年八月末,离职的前夕

我和领导提出要离职的想法,说我在这边没有生活,我想转行,希望领导能让我在接下来的时间里让我轻松一点有时间准备,领导同意了,说让我不要再跟着他受苦了。。建议我去转前端(其实一般情况下不应该还没离职就和领导说的,我这个领导和我关系比较好,大我个快三十岁,感觉像兄弟一样,我们是经常大半夜从富士康车间出来去吃夜宵吃烧烤的)。

确实是,接下来还是轻松了一点,也就偶尔是在没办法让我去加班吧,后来就只有差不多五天左右加班到晚上两三点了吧,没办法,在这就还是多帮个忙吧,我不做,那也是我领导替我去干了。

导致我离职的原因呢也不仅仅是加班,也不仅仅是工资的问题,确实这个行业本身就没有太多的前途,在我身边的工程师,无论是多大的年龄,天天也都往车间里面跑(可能别的公司没我们这么严重吧),反正就是以后成家立业了,要么到处出差,要么一直在工厂加班,没有生活,顾不上家庭,干非标基本上都是这样吧。

而最最主要的原因就是,我不希望我以后老了还是处于像我领导一样的状态,一个很好的大学毕业的,快五十岁的人了,还这么累,而且能到他这个位置的人已经很少了,难道我已经努力竭尽全力,到老来了就是这样的状态。


2020九月末,同学离职

我那两做机构的同学也离职了,马上就要离开深圳了我才知道(我们不在一个项目,也是干不同的活,我干电气控制),然后才问他们,他们说这儿太累了而且也学不到东西,他们两都回去考研去了,我是八月末提的,他们两是九月10号提的,不约而同。

在说说后来面试的事吧,最开始什么也不会就去面试了个C#的活,结果直接over,我就意识到还是得先多学习,不然也真是拿不到什么offer,那一个月里除了在车间加班太晚,我也都是每天在宿舍学习到凌晨,像操作系统,C#多线程,设计模式这些。

真的是山穷水复疑无路,柳暗花明又一村啊。


2020十月初,幸运的转行Java

做java后端的,一万的月薪,遂直接提离职,公司有调休的最大天数限制,多了就不算了,也是离职的时候才知道,最后调休了二十多天,来到了目前的公司。

我算是找到java工作后才开始学习java或者后端那一套的吧。

入职后的工作状态比较好,十一月多入职,转正又加了工资,从进公司开始没有加过一分钟班,整个五天八小时制的,领导也比较好,相对于部门其他同事来说,似乎我在这里也比较受到重视,进公司以来氛围变好了,工作没有什么压力,一直在学习中

目前来说,我也在深入学习后端的一些知识,差不多每天晚上除了去跑步了,就会在学习java,这里的工作氛围太轻松了,好不容易转行过来,当然是不能当一条咸鱼在这养老,放弃努力的。

目前的目标,努力学习,争取早日至少进个二线大厂,月薪两万+吧,年轻人还是得要多努力,真的好不容易转行过来,当然是坚持不懈的去学习啦!!!


回头想想我的这些经历,如果不是我在这里回顾和列出来的话,我还真每发现自己的经历这么曲折,所以我也想和现在还在迷茫的年轻人说,年轻人就不要进厂,真的会让人抑郁了,还好我是已经提前跳出来了。反正,不要干机械,如果你有足够的动力和毅力的话,那就赶紧转行,好好努力才是真的。

或者目前做的只是一个没什么前途的悠闲的工作,没有像我一样被逼着走的话,最好赶紧跳出舒适圈,温水煮青蛙可不好了

年轻没有什么好怕的,找准方向,努力就是了!!!


最近,2021年三月,另一同学去大数据培训班

我们当初去校企合作学工业机器人那十个同学,已经提离职去大数据培训班了。

这样,我们当初一起出来的十个同学,还在干非标机械的,又少了一个。


再来说说,怎么转的java的

有评论觉着我当初机械转java太简单了,什么都不会就进去了,都是进了公司之后才学的,现在可以回答下,原因就在于,技术主管是做C#的,没有做过java,面试的时候都不问java的,也是没有技术深度的。很多东西主管也是边学边做。

当初说好的用微服务架构,现在来看就只是一个分布式单体应用,微服务开发中的各种需要注意的各种问题,也没人知道,没有稳定性,没有可靠性,就连微服务框架也没用,因为连领导都没用过,然后领导这边给出的意见是搭微服务组件麻烦,还要花很多时间研究……

目前我们是前端来对各个服务进行协调调用,没有服务间的远程调用,没有分布式事务,比如下订单就由前端往订单服务发个创建订单请求,再往库存模块发个减库存请求,不管有没有库存,不管各服务是否同时成功,直接前端同时往多个服务发多个请求。和领导沟通说会有很多可靠性问题,要引入微服务组件,领导的回答是只要能实现功能就行了。就连前端本来要用的是vue,后来因为内网环境搭不出来,就直接建一个thymeleaf的java程序用来专门写前端౿(།﹏།)૭。权限控制因为没有gateway,就写一个公共模块,每个模块都引入就行了。包括很多不合理的地方,都是没有办法决定的,大伙提了按照github上开源那样做就好了,但是领导只相信自己的想法,基本都不会接受我们的意见。

总而言之,这是一个用来生活、养老的好去处!


在这家公司的成长

由于我是从来没有做过java的,很多东西都没有用过,甚至也没有听过,所以进来之后一直都在学习,也得益于这家公司的性质,传统公司的IT岗位,任务不多,技术不强,空闲时间多,正好能够给我更大的成长和学习的空间。

由于之前没有接触过框架、数据库和中间件这些,加上我本身喜欢研究一些技术的原理,便有了这个机会去认真的学习他。

比如MySQL的底层原理、集群、使用,Redis的原理、集群、使用等,现在都变成了我所擅长的东西。

Redis方面的内容,其实仅仅只知道存取值肯定是不够的,正好一985硕士的同事给我推荐了一个他在淘宝上买的视频资源,于是我就下载下来了一个龙果学院的亿级电商大型分布式缓存架构实战的课程,让我对Redis有了特别多的了解,包括他的选举机制、集群模式、复制机制、缓存雪崩穿透击穿及其解决方案等、数据丢失及可靠性分析、缓存双写一致性等等,那段时间也是特别的兴奋,每天都能学到凌晨去了,确实有了目标,有了想学习的东西,就是每天到凌晨也是一件幸福的事情。基本所有的值得记录和回顾的内容,我都会以博客的方式,加上自己的想法,发布在自己的博客上。每发一篇博客,都是成就感满满的。

再就是由于我们这边是分布式单体应用,没有接触到微服务组件的任何东西,这里实在是要感谢尚硅谷,在B站上的谷粒商城,让我对分布式与微服务有了相当大的提升。在当初是在看博客时,发现一个优质哈工大的博客博主,有在记录谷粒商城的分布式基础篇、分布式高级篇、集群篇的内容,看了一下视频,简直就是发现了新大陆一样的兴奋,于是不出所料的,接下来得两个月的时间里,每天都能搞到晚上十一二点,这也是最能让我兴奋地一点,包括服务注册与发现、网关、配置中心、远程调用、负载均衡、熔断限流、分布式事务、消息队列、压力测试、性能优化、接口幂等性、分布式锁等,算是给我打下了很好的基础,甚至直到现在,我还老是觉得,只要不是大厂的三年以内的程序员,我就觉得他没我技术好,同时,也正是因为这个,为我下一次的跳槽打好了基础。

然后再来说一说MySQL,MySQL我是基本没有怎么看着视频是学习的,在这里我还是推荐大家有时间也可以看看知乎,一般在知乎上的一些知识点质量相对来说都是比较高的,同时学习的过程中肯定是要对某一个知识点是需要翻越大量的博客去进行学习的。而对于MySQL来说,我个人比较喜欢、和掌握的比较好的点是:MySQL的索引原理、MySQL的集群、主从复制、MySQL的数据可靠性、以及各个大厂对MySQL集群数据安全性所做的努力等、MVCC、MySQL的原子性、一致性、持久性、隔离性的实现原理、页分裂和页合并的原理等,很多都可以在知乎上看到,也可以去关注一些知乎的一些大厂的官方账号,比如爱可生云数据库、美团技术团队、携程技术、阿里技术、阿里巴巴淘系技术等,一般大厂分享的知识和架构,都是值得我们去看的。

再就是并发编程方面了,并发编程也算是我最拿的出手的一个技能点了,当然了,说并发编程当然也不仅仅就是会开个线程而已,可以从操作系统层面去理解并发编程,理解他的原理,比如CAS的底层机制、volitale的底层原理、锁和对象头之间的关系、CPU的调度机制、总线锁和MESI缓存一致性协议等,而操作系统方面推荐看的是在中国大学MOOC上面的哈尔滨工业大学李治军老师讲的操作系统,相对于其他大学的课程,讲的会更加的底层。而除了操作系统底层方面,再就是java的并发包了,线程池、AQS、ReentrantLock、条件队列、信号量的原理,自己可以画一个流程图出来,便于记忆。这些完了以后,再就是看看这些东西,在各个框架中是怎么应用的,然后还有就是并发安全性,什么样的代码或者是场景,需要去保证并发安全性,可以达到一看就知道的程度。


再次跳槽,17k的工资

这一次的跳槽也是迫于无奈,想要更好的自身发展,想要追求技术,就需要去更好的平台。再加上公司是传统类型公司,马上下一个项目又是非Java的项目了,为了自己的前途着想只能跳槽。

由于机械专业转行Java只有半年多的经验,所以在简历上是不好看的,基本上拿到的都是一些小公司的offer,同时面试也可以感受到,小公司的技术水平真的是拉胯,基本一面就是吊打面试官的,因为原理方面面试官就不懂,就乐呵呵的听着你讲讲,也不敢打断你,逐渐深入的问他想知道的。
所以即使拿到了好几个小公司的offer就没想着要过去

后来又面了转转,感觉还是挺不错的,一面面试官也是挑着原理一直面下去的,最后面完说了,整体表现很好,既有深度又有广度,尤其是对于我这种非科班才转行半年的,以及很不错了,就是算法方面还需要再加强一下,因为不仅仅是需要工程能力,有算法思维的人写出来的代码是不一样的。
一面过了,可惜的是二面问的项目没咋准备好,上来就让我画个这个项目的架构图,然后JVM调优没有做过,再加上问微服务组件的底层实现原理没有答上来,就在这里挂掉了。

痛定思痛,接下来一个月又安心学习和准备了,没有再面试,主要通过前面自己学到的知识,自己将项目改造成了一个微服务项目,技术选型,架构,消息队列,分布式事务等等,涉及到的分布式要注意的点等等,以及自己也画了一个架构图出来,果然事实证明的是,一个月后的面试让介绍项目,我首先就反客为主给他介绍架构,直接开始聊架构,不会等到面试官先来问架构的事,这样就OK了,项目不仅不会是弱点,反而在这里变成了闪光点。然后就是微服务组件方面,Nacos的AP模式和CP模式,服务注册与发现的源码,原理,流程图,涉及到的技术点,Gateway的原理和流程,以及Sentinel的滑动窗口算法、限流的原理、责任链模式等等,基本上都能直接从源码层面说出来了。

给大家看看后来我在简历上的部分内容:

  • 熟练掌握:Java、C#
  • 熟练掌握:操作系统,数据结构
  • 熟练掌握:并发编程的原理和使用
  • 熟练掌握:Redis、MySQL 的原理和使用
  • 熟悉:SpringCloud 及 alibaba 组件的原理与使用
  • 熟悉:RabbitMq 消息队列
  • 了解:JVM 机制和调优
  • 了解:Spring原理
  • 了解:netty 原理

再来说说最后 两次面试

  1. 介绍项目,描述了整个项目的架构,以及技术选型中为啥这么选,实际上是怎么用的,
  2. 叙述自己对数据库与Redis双写一致性所作出的方案,他的优势和不足在哪里
  3. 开始讲Sentinel的源码,滑动窗口,责任链模式等,顺便问了我看的哪个版本的源码
  4. 再讲了OpenFeign远程调用的流程和原理,有什么需要注意的事项
  5. 由OpenFeign的调用流程又带出了Nacos的原理,服务注册与发现的流程,APCP,Distro和Raft等。
  6. 再来问问并发安全性有设计到多少东西可以保证的,答了Synchronized、ReentrantLock等所相关的,再就是CAS这些,答完再问还有没有其他的?然后又给他说了个CoppyOnWrite,在解释了一下CoppyOnWrite的机制。
  7. 再就是死锁,以及死锁方面出的一道计算题。
  8. 再来问AQS的原理,流程图,由此又把条件队列的原理和流程图给答了。
  9. 再从操作系统的CPU调度机制,到CAS和volatile的底层原理,以及自己做的使用volatile做的验证内存可见性的实验、验证CPU缓存行MESI缓存一致性效率的实验、验证发生指令重排序的实验等。
  10. 再来说到MySQL的索引,说到页分裂和页合并,再说说MySQL的持久性是通过什么实现的,再就是MVCC的原理,还有记录锁、间隙锁,以及这两锁什么时候加。
  11. 然后就是模糊查询%号在前的话要怎么查询。
  12. 说了一下Redis方面哨兵集群和RedisCluster集群,以及一致性哈希算法,由此分析他的优缺点,带出其他的分片算法,分析每一种分片算法以及他们作出的改进等。
  13. 还有数据库的乐观锁的实现。
  14. JVM方面是中间问的,主要就是CPU100%和内存溢出的排查。
  15. 再就是一个我觉得答得还不错的,可以分享出来
    问的接口突然无法访问了,怎么排查?
    我说那肯定是宕机了,面试官就接着问要是没有宕机呢?
    我说这肯定是宕机了
    面试官接着问,那他除了宕机,就是如果有个这个问题来了,然后上级要你去做要怎么排查?
    我思考了一会说,如果采用的是CMS的垃圾回收器,他要是在并发收集期间发生Concurrent Mode Failure,就会采用备用的方案Old GC去进行堆内存的GC,如果说这这个堆内存设置的特别大,那么Old GC只有一个回收线程,就会收集的特别慢,就有可能需要几个小时甚至几天才能够收集完。而收集期间会Stop The World,就会导致程序一直无法响应。

以上是关于一个机械毕业生的转编程之路的主要内容,如果未能解决你的问题,请参考以下文章

程序员入门--两年养成之路

杂谈《编程之路职业指导》视频

双非本硕“统计学”连读,带你讲述一下我的 “Python编程学习” 之路!

python之路--day18--面向对象编程--类和对象

编程求职之路

话编程|Dubbo 云原生之路