小公司工作 7 年,后面這樣走!

作者:沉默王二
Java 程序員進階之路:https://tobebetterjavaer.com
大家好,我是二哥呀。
對于大多數(shù)打工人來說,可能并沒有高大上的工作(大廠、高并發(fā)高可用、高薪水??),有的只是 CRUD(小公司、修修 bug、日常維護、養(yǎng)家糊口),但我們的內(nèi)心依然有一顆“不甘咸魚”的心!
今天這篇算是之前小公司工作 7 年,后面怎么走的續(xù)集,當時球友洋洋灑灑寫了 6000 多字,考慮到大家的閱讀體驗,我就把內(nèi)容分開了,上篇是球友的故事,這篇是二哥針對球友提問的回復(fù)。
再來回顧一下故事的主題:二哥編程星球里的一位球友,他在小公司工作七年了,平凡而不甘平庸。他 16 年畢業(yè),參加過安卓的培訓(xùn),被騙去過外包。后來經(jīng)過自己的努力去了一家做支付的自研公司,一直工作到現(xiàn)在,目前薪資 20k+,技術(shù)上不能說多牛,但能獨當一面。
下面????是球友當時提出的問題。
球友提問
最后說一下我求助于二哥你的問題吧:
1.我該如何去改變目前的狀態(tài)?我現(xiàn)在就像是迷霧里的航船,感覺怎么走都不對,怎么做都是錯的,想請二哥你幫忙指引一下方向,哪怕是一個模糊不清的方向都好呀;
2.最近公司已經(jīng)出臺了嚴厲的績效考核,我估計跨境業(yè)務(wù)再壞下去,估計有被優(yōu)化的風(fēng)險,想問一下二哥,我是應(yīng)該寄希望于考公(今年已過,最快也是今年年底才考,明年才面試,上岸是明年中期的事情了)?還是說要準備面試?如果是后者,該如何開始?
最后感謝二哥百忙之中看完我啰啰嗦嗦的這些話,祝二哥身體健康,工作順利!
二哥回復(fù)
球友好。
恭喜你,你是個不可多得的人才!
你知道你寫了多少字嗎?(6000+),你知道我在閱讀的過程中有多愉快嗎?仿佛就是一個真實的人在我面前,敲代碼、Google,上班遲到、愧疚,領(lǐng)導(dǎo)認真講給他聽,他左耳聽進去了,右耳又出來了。
非常真實。
其實對于絕大多數(shù)的普通人來說,這就是最真實的樣子。
平凡而又不甘平庸。
先來回答你的兩個問題。
1、如何改變?
鑒于你經(jīng)常反復(fù)的癥狀,但又確實能出活的事實,我的回答可能會改變你,但也可能只是投到海里的一塊石子,連個水花都看不到。
不妨說說我的一個朋友吧,他對技術(shù),不能說是熱忱,但也不能說厭倦,他只是知道,假如他不搞這個,也沒有其他更好的選擇了。
家庭背景一般,人長得帥,但也沒到可以傍富婆的地步;人聰明,但也不見得就能想出來改變世界的新創(chuàng)意;人踏實,但也偶爾偷偷懶、打打游戲、刷刷視頻,墮落會。
只是,他一直有一個底線,如果在某一個圈子,一定要做到 TOP 級別,不做就算了,做就做到自己的極限。
在公司,他不是最拼命的那個,但項目上遇到什么技術(shù)難題,到他這,不管是通過谷歌也好,通過鉆源碼也好,總是能找到解決辦法,讓領(lǐng)導(dǎo)放心。
他不是最會哄領(lǐng)導(dǎo)開心的那個,但知道和領(lǐng)導(dǎo)關(guān)系處好了,績效就會多出來一些。
如果用三體的觀點來看,他就是一個非常平凡的人,但在另外一個維度,他又十分的重要,老婆在乎他,女兒在乎他,父母在乎他,妹妹在乎他,領(lǐng)導(dǎo)在乎他,同事在乎他。
他表面上謙虛,但骨子里有股狠勁,他接受有人比他優(yōu)秀的事實,但絕不允許自甘墮落,差距拉得太大。
最重要的是,他善于挖掘自己的優(yōu)勢,并且把這個優(yōu)勢無限地放大;而他身上的弱點,不怕暴露,但也知道盡量不去拿短處和別人比。
我這個朋友,筆名叫沉默王二(??)。
我不知道你平常寫不寫文字,但就這篇而言,是個掏心掏肺但又能引人閱讀下去的好文章。
技術(shù)上,估計我們屬于同一類人了,走不了技術(shù)專家的路線,但又不怎么喜歡管理、業(yè)務(wù)、產(chǎn)品。
如果有可能,我希望你走一走寫作分享這條路,這條路難走,需要運氣,可一旦步入正軌,它會逼迫你成為更好的自己,讓你的人生步入一個新的高度。
同時,又能兼顧工作,相得益彰,收入又還不錯。
2、要不要考公?還是換個工作?
我其實也不喜歡考試,雖然我也羨慕公務(wù)員的清閑,鐵飯碗,世界的盡頭是編制,但說實話,我每次考試,也都是裸考,因為我不喜歡考試。
換個工作?我覺得你目前的領(lǐng)導(dǎo)對你挺好的,技術(shù)上你也能用自己的方法解決問題,成為開發(fā)主力,對于大多數(shù)普通人來說,這樣的工作環(huán)境,很難得了。
不建議你換。
如果說,你并不喜歡寫作,不打算走我這條路。
那就需要你再挖掘一下,自己身上還有什么亮點,可以無限放大的那種。
這種不好找,但互聯(lián)網(wǎng)的世界,充滿著不確定性,也就充滿著機遇,你能來星球,其實就是一種改變。
你可以看看我以前寫的文字(公眾號翻到 2017 年左右吧),感受一下我身上的變化,尋找一些可以借鑒的點。
我非常期待,我們能成為同路人。但如果你想準備面試,換個工作,不妨參考之前我給一位球友準備的學(xué)習(xí)內(nèi)容。
3、如何準備面試?
我在一家要求 4-5 年的工作崗位上看到這樣的招聘要求,基本上羅列出了一位 Java 后端高級工程師應(yīng)該具備的素質(zhì)。
- 有 NIO 開發(fā)經(jīng)驗
- 在產(chǎn)品交付的各個周期都能有所貢獻,比如說需求溝通、系統(tǒng)設(shè)計、文檔撰寫、功能研發(fā)、線上測試、系統(tǒng)監(jiān)控
- 熟悉常用的數(shù)據(jù)結(jié)構(gòu)與算法
- 熟悉分布式系統(tǒng),熟悉消息隊列
- 熟悉 Zookeeper /MongoDB / Redis / Kafka 等技術(shù)
- 熟悉線程池/異步/鎖等技術(shù)
- 有 MySQL 調(diào)優(yōu)經(jīng)驗,熟悉索引、事務(wù)
- 熟悉常用的設(shè)計模式
- 有良好的編碼習(xí)慣
- 熟悉 Git
- 熟悉 JVM,遇到性能問題能快速修復(fù)和調(diào)優(yōu)
- 熟悉 Spring 全家桶
- 能在 Linux 上獨立排查/解決問題
- 熟悉持續(xù)集成/容器相關(guān)技術(shù),比如說 Jenkins,Docker,k8s
- 具備良好的技術(shù)寫作能力
- 有自己項目或者技術(shù)博客的優(yōu)先
有了目標,學(xué)習(xí)就有的放矢了!
一個一個來攻克。
1)NIO,Java 程序員進階之路上有這個系列:
https://tobebetterjavaer.com/nio/rumen.html
如果想更進一步,需要把 Netty 學(xué)好:
https://tobebetterjavaer.com/netty/rumen.html
2)產(chǎn)品交付能力。需求溝通,這個基本上都能搞定;系統(tǒng)設(shè)計,最近技術(shù)派的教程里,二哥的合伙人樓仔添加了一些文檔,可以去看看;

文檔撰寫,說實話,不少開發(fā)者比較抗拒寫文檔,包括產(chǎn)品方案、技術(shù)方案、接口文檔、測試報告、需求文檔等等,我個人感覺挺重要的,需要平常自己多寫寫;功能研發(fā),對于我們開發(fā)來說,就是敲代碼寫注釋;
線上測試,平常多寫寫單元測試,提交代碼之前要做集成測試,尤其是修復(fù) bug 的時候注意不要引入新的 bug,一般團隊都有專業(yè)的測試,但自己負責(zé)開發(fā)的部分,最好不要留給測試,有的部門會考核 bug 數(shù),自己早點測出來早解決。
系統(tǒng)監(jiān)控,像 ELK(Elasticsearch、Logstash 和 Kibana 組成的一套完整的日志管理系統(tǒng)),一般項目都會上一套;像 SkyWalking,主要用來跟蹤分布式系統(tǒng)中的服務(wù)調(diào)用鏈。
3)數(shù)據(jù)結(jié)構(gòu)與算法,對于 Java 黨來說,就需要吃透字符串、數(shù)組、集合框架中的 ArrayList、LinkedList、HashMap、二叉樹、二分查找法等等。
Java 針對大多數(shù)常見的數(shù)據(jù)結(jié)構(gòu)和算法都做了封裝,自己注意多去研究一下源碼(比如說自動擴容、拉鏈法),對編程能力的提高也會有較大幫助。你可以到知識星球的百度網(wǎng)盤里看一下:

https://t.zsxq.com/0brEo9Pdu
4)分布式系統(tǒng),《我在 B站上大學(xué)之 Java 后端篇》中推薦了不少視頻可供學(xué)習(xí)。
https://t.zsxq.com/0b961HekU

在星球的網(wǎng)盤里也有幾套成熟的分布式系統(tǒng)視頻可供學(xué)習(xí)。

5)消息隊列,主要就是 kafka,RocketMQ,RabbitMQ 這三個,挑一個學(xué)習(xí)一下就可以,比如說你之前項目用的 kafka,那你就只用學(xué) kafka,別的不用學(xué)?!段以?B站上大學(xué)之 Java 后端篇》中也有推薦。

6)Zookeeper,Java 程序員進階之路上有總結(jié):
https://tobebetterjavaer.com/zookeeper/jibenjieshao.html
7)MongoDB,星球里有推薦:https://t.zsxq.com/08CqgjaXR

8)Redis,前幾天剛分享過學(xué)習(xí)路線。
https://tobebetterjavaer.com/xuexiluxian/redis.html

9)線程池/異步/鎖,可以看 Java 程序員進階之路《并發(fā)編程》:
https://tobebetterjavaer.com/xuexiluxian/java/thread.html
10)MySQL,學(xué)習(xí)路線在這里:
https://tobebetterjavaer.com/xuexiluxian/mysql.html

11)設(shè)計模式,看星球?qū)凇禞ava 面試指南》中「技術(shù)提升篇」的兩篇設(shè)計模式:
https://t.zsxq.com/6iuzn6I

系統(tǒng)學(xué)習(xí)的話,可以看小傅哥的重學(xué) Java 設(shè)計模式:
https://tobebetterjavaer.com/pdf/shejimoshi.html

12)良好的編碼習(xí)慣,這個可以看看阿里巴巴開發(fā)手冊:
https://tobebetterjavaer.com/pdf/ali-java-shouce.html
13)Git,我把精華都放在了 Java 程序員進階之路上:
https://tobebetterjavaer.com/git/git-qiyuan.html

14)JVM,要學(xué)習(xí)的重點看這里:
https://tobebetterjavaer.com/xuexiluxian/java/jvm.html

15)Spring 全家桶,這個主要就是實戰(zhàn)了,這個要學(xué)的東西也比較多,首先是 Spring Boot,然后是 Spring Cloud,推薦的資料都在
https://t.zsxq.com/0b961HekU

實戰(zhàn)項目就刷技術(shù)派,配套的教程也會跟上:
https://github.com/itwanger/paicoding

16)Linux,可以刷韓順平的視頻

17)Jenkins,可以刷尚硅谷的:
https://www.bilibili.com/video/BV1bS4y1471A

18)Docker,星球里有推薦:
https://t.zsxq.com/080tGlFYy

19)k8s,星球上有推薦:
https://t.zsxq.com/08x1I1XAd

20)技術(shù)影響力,這個就是靠平常的寫作積累了,看個人愛好。我目前最看重的就是《Java 程序員進階之路》和《技術(shù)派》了,一個是開源的知識庫學(xué)習(xí)文檔,一個是開源的實戰(zhàn)項目。

乍一看,Java 要學(xué)的內(nèi)容比較多,但都有成熟公開的學(xué)習(xí)資料,只要自己肯去學(xué)習(xí),金九銀十我覺得還是值得去期待的,時間規(guī)劃上,你也可以看看星球「知識圖譜」里的學(xué)習(xí)規(guī)劃。

以上,希望幫助到你。
ending
一個人可以走得很快,但一群人才能走得更遠。二哥的編程星球已經(jīng)有 2100 多名 球友加入了,如果你也需要一個良好的學(xué)習(xí)環(huán)境,戳鏈接 ??加入我們吧。這是一個編程學(xué)習(xí)指南 + Java項目實戰(zhàn) + LeetCode刷題的私密圈子,你可以閱讀星球?qū)凇⑾蚨缣釂?、幫你制定學(xué)習(xí)計劃、和球友一起打卡成長。
星球的知識圖譜里已經(jīng)沉淀了非常多優(yōu)質(zhì)的內(nèi)容,相信能幫助你走的更快、更穩(wěn)、更遠。

最后,把二哥的座右銘送給大家:沒有什么使我停留——除了目的,縱然岸旁有玫瑰、有綠蔭、有寧靜的港灣,我是不系之舟。共勉 ??。

歡迎點擊左下角閱讀原文了解二哥的編程星球詳情,這可能是你學(xué)習(xí)求職路上最有含金量的一次點擊。
