主頁 > 後端開發 > 一個機械畢業生的轉編程之路

一個機械畢業生的轉編程之路

2021-07-27 07:28:30 後端開發

一個機械畢業生的轉編程之路

      • 2021年六月
      • 寫在開頭
      • 2018年八月份,開始校企合作培訓班
      • 2018年十月,在這里開始了工廠生涯
      • 2019年三月,好不容易到快畢業了,熬過了秋招,熬過了春招,終于熬到我們回學校了
      • 2019年七月畢業,找到非標機械作業
      • 2019年10月,正式作業后的又一個困難——007的累
      • 2020年春節,連續加班四十天
      • 2020年公司年度表彰大會
      • 2020年中左右,又是開始加班到凌晨
      • 2020年八月末,離職的前夕
      • 2020九月末,同學離職
      • 2020十月初,幸運的轉行Java
      • 最近,2021年三月,另一同學去大資料培訓班
      • 再來說說,怎么轉的java的
      • 在這家公司的成長
      • 再次跳槽,17k的工資

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,就會導致程式一直無法回應,

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/290247.html

標籤:java

上一篇:JDK8的安裝配置

下一篇:# Day01-Java基礎

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more