精神小夥: 寫代碼是世界上最好的工作, 不接受反駁!

前言

每逢金三銀四 , 像作者這樣的IT碼農, 會按捺住內心對 996 和 產品經理 的一萬種髒話, 偷偷將手中的簡歷更新, 投往互聯網各公司的HR手中 , 這時IT論壇裏也熱鬧起來了, 各種大廠內推和求內推的帖子被頂的火熱. 有些幸運的 碼農拿到了些大廠的 面試邀請, 想着大廠入職後誘人的福利, Double 的薪資, 不少年輕的碼農不知不覺流下了口水, 興奮的徹夜難眠…

脫帽面試

激盪風雲

據說今年畢業季找工作是地獄難度, 最近我加了個 計算機應屆生 找工作的羣, 青年學子們林林總總的隻言片語 讓我觸景生情, 誰畢業時不帶着 對未知的慌恐, 當年剛畢業時我也是一個小白 !

有幸去武漢xxx研究中心的一家 IT公司面試, 拿到邀請的當晚激動的徹夜難眠, 因爲這是我少的可憐的實習機會。 清晨早早的趕去目的地, 透過公交車窗看到外面的天空雪花飛舞, 我提前 30 分鐘到了該公司附近, 那時的我青澀害羞 並沒有到辦公樓中躲雪。
到了時間我打電話聯繫了面試官,刷了身份證進入辦公樓, 頓時渾身冷冰冰的我置身於暖和的空調房裏, 像乾枯的白菊花放在了熱水中說不盡的自在。

面試官看上去和藹可親, 我們聊了一會, 他拿了一份 面試題給我做, 我依稀的記得上面 有一些 關於 Java 排序算法和 多表查詢的SQL題目, 那時這些題目對於我來說 有點難度, 我絞盡腦汁的把這些題目做完 顫顫巍巍的交給面試官.

我清晰的記得, 他拿到面試題時, 臉上的表情從藹可親變成了面目猙獰, 彷彿我浪費了他的時間。 現實與大家猜想的一樣, 我做錯了很多道基礎的題目, 算法和SQL更是錯多對少, 他不厭其煩的和我走了個過場, 勉勵了我幾句, 結果我信以爲真, 以爲抓住了救命的稻草 當晚上我用短信懇求他, 希望能加入那家公司.

後來做了面試官 也曾有面試者對我這樣 低聲下氣的懇求, 仔細想想其實這是對面試官的一次道德綁架, 一個資質平平的候選者, 一個需要你收拾爛攤子的同事, 誰會歡迎這樣的人呢 ?

那時的我在武漢不同的IT公司先後碰壁了 十幾次後終於找到了工作, 同時也在這種求職環境中, 沒有氣餒 十年磨一劍 。 我現在的綜合能力已經 超過了大多數面我的面試官, 不懈的努力奮鬥下也讓我成了 Offer 收割機, 這一切的一切都是 臥薪嚐膽的結果。

“三年不翅,將以長羽翼, 雖無飛,飛必沖天;雖無鳴,鳴必驚人!" – 韓非子

少年 不要懇求別人, 懇求自己吧!

當初爲什麼選擇寫代碼 ?

coding

網傳 2020年4月18號, 🧒周某人即將出獄, 廣西南寧市人人籠罩🛵有車無電瓶的恐懼中, 當年 “流氓無產者代言人” 周某人的至理名言在網絡上瘋傳 好像說什麼

“打工這方面,打工是不可能打工的,這輩子不可能打工的!”

“做生意又不會做,就是偷這種東西,才能維持得了生活這樣子,進看守所感覺像回家一樣,在看守所裏的感覺比家裏感覺好多啦!”

“裏面個個都是人才,說話又好聽,我超喜歡裏面的。”

這種言論初聽很好笑, 瘋傳的背後也道出了很多人的無奈, 城市生活中房貸,車貸,學貸 💔壓的人喘不過氣, 很多人開始審視自己的未來, 前段時間有人問我 爲什麼當初選擇寫代碼 ?

我回答她: 寫代碼是世界上最好的工作, 不接受反駁!

很多行外人和業內人士都認爲, 35歲以後的程序員會被淘汰 !
寫代碼是碗青春飯, 年紀大了就學不動了也加不動班了!

我回答說: 這些都是誤解,就像說程序員人人都會修電腦一樣,
(話說作者目前還沒有組裝過電腦和系統(>人<;), 但是我相信大多數人對我解釋並不滿意, 說什麼 “大廠程序員 35歲就下崗, X廠向社會輸出 10年程序員的話來”!

主觀上我認爲

我無比熱愛寫代碼的這個工作, 假設有一天我 35歲被淘汰了, 我依然會將他當作一個興趣就和喫飯喝水一樣, 那我們不妨設想一下 自己到了35歲應該是什麼樣子, 在我的想象中把35歲的程序員分爲 3類.

  • 當一天和尚撞一天鐘型:
    • 畢業十年 換了10家不同領域的IT公司.
    • 業務領域沒有深耕, 技術上不精益求精.
    • 偷奸耍滑暴懟產品經理腳踢測試運維 毫無違和感.
    • 早早成了家 揹負車貸,房貸 面對任何事情不敢輕舉妄動, 逢人便稱 中年危機.
  • 斜槓青年型:
    • 畢業十年 早早確定方向, 選擇一個領域深耕.
    • 業餘深入參與開源社區, 自己做的項目也收穫 1W star, 博客好評如潮, 自己就是公司的技術大拿.
    • 在需求上 主動調研, 對工作一絲不苟, 能解決技術之外的一切問題.
    • 工作之餘 帶隊自研產品, 上線過多款 爆款 應用. 副業收入超過主業.
    • 把全部的精力放在了 事業上, 結果導致晚婚晚育 也落得個清淨 (有些長輩可能要說, 世界只有剩男的不剩女的,這是反面教材云云).
  • 中層管理型:
    • 畢業十年 海歸碩士 | | 985博士 的出身, 讓他能在世界500強中的熱門領域亂竄.
    • 業餘閱讀管理與生活類書籍大於技術類書籍
    • 在業務迭代上, 擔任項目經理 占主導地位, 統籌全局, 說一不二.
    • 工作之餘 愛到處旅旅遊, 經常被邀請去各種互聯網大會演說架構, 技術上也追求創新而追求穩定.
    • 百萬年薪的他, 家庭美滿婚姻幸福.

看來看去好像 第一種類型的程序員 更擔心被裁也更容易被裁 !

客觀上我認爲

程序員的價值 35歲 和 25歲是有着巨大的區別,
借用陳龍的一段話.

我覺得Web開發和汽車工業是一樣一樣的。

我模仿上面這段話,分析一下Web開發啊:這是因爲迄今爲止,Web開發仍然是大規模生產的互聯網產品之中最爲複雜的。Web開發涉及到的技術非常多,以服務器端用Java爲例:從前端的HTML、CSS、ES\TS、Node、Webpack、NPM、ESLint、NG\React\Vue,到服務器端的:Java、Spring Boot、Spring MVC、Spring Data\Mybatis、Spring Security\Shiro、Spring Cloud\dubbo、Maven\,到部署環境的Docker、K8s,到數據庫的各種SQL或NoSQL。開發一個Web應用,細數的話,會用到十幾到二十相技術或工具。

上線以後還要經歷各種用戶端環境,不同的瀏覽器、微信小程序,不同的移動設備自適應佈局。而且還要儘可能用戶體驗順滑、佔用帶寬小。現在計算機軟件業的奇蹟之一就是能把這麼複雜的一個東西做的可靠性如此之高,可維護性如此之好,成本還如此之低。但是,奇蹟是不存在的,要造出這麼個東西,挑戰想當巨大。

Web開發到底難在那?我認爲最難的是”系統工程“。

系統工程是一個跨多學科領域的工程學和工程管理,通常專注於如何設計、開發和管理在其生命週期內的複雜系統。系統工程的核心繫利用系統性思考的原則,以建構其知識體系。當處理大型、複雜的專案時,所面臨的相關議題(例如:需求工程、可靠度、物流、不同團隊的協調、測試與評估、可維修性、和許多其他能夠成就係統開發、設計、執行、和最終除役的學科)變得更加困難。系統工程藉由工作流程、優化的方法、以及風險管理等工具來處理此一類型的專案,並且與技術、和以人爲本的學科相互重疊(例如:工業工程、機械工程、製造工程、控制工程、軟件工程、電機工程、模控學、組織研究、以及專案管理)。系統工程確保專案或系統的各個層面均被詳加考慮、並整合成爲一體。
– 維基百科

就難在要跨多種語言和框架,讓多個團隊協作起來。這個和造車還是一樣的。如果李書福只作汽車輪胎,很容易成功。如果選擇去做沙發,也很容易成功。但是去造汽車,不是輪胎+沙發那麼簡單,而是系統工程。生產汽車的多個部門要協調,還有市場和客戶需要滿足。

Web開發也是一樣,前端團隊、後端團隊、測試團隊、再加上項目經理產品經理配置管理、最重要的還有客戶甲方。

如果是以體力來比較 35歲 與 25歲的程序員, 老程序員 體力上並不佔優勢, 而Bug率,技術紮實程度 上肯定要比 年輕程序員強的不知道那裏去 !

那麼請問程序員是體力勞動嗎? 顯然不是 !
那你說程序員不是要敲鍵盤嗎? 難道你沒聽說過 輪子嗎? 這一點仁者見仁智者見智 !

對代碼不感冒, 我應該怎麼辦?

eureka-core

作者也曾經有過這樣的體驗, 在公司完全不想寫代碼, 想到公司的業務都厭惡,
那麼你要重新審視下你當前的狀態.

就如我原先的一篇 <作爲程序員的你 是喜歡代碼還是喜歡工作 ?> 裏所描述的一樣, 你並不是討厭工作而是討厭其他東西,

  • 也許是毫無希望的公司
  • 可能是沒有長進的技術水平
  • 也可能是無數改了又改的需求
  • 或者是步步緊逼的DDL(最後期限)

接下來不會教你如何智鬥 產品經理, 花式砍需求, 請看到此處的程序員花 3分鐘時間, 內視下自己, 向內心深處吶喊 : “作爲程序員的你 是喜歡代碼還是喜歡工作?

  • 如果你喜歡代碼就請去追求技術上的精益求精 不要去一個天天996 寫業務代碼的公司, 給自己找個對口的東家.
  • 如果你覺得你的工作能讓你豐衣足食, 你才選擇它, 那麼我勸你轉行, 35歲懷着這樣的思想的你大概會成爲 上述所說的第一類人 當一天和尚撞一天鐘.
  • 如果你認爲這兩者都很重要, 那麼請你 繼續關注 20K+ 公衆號 !

關於職業發展

職業發展

  1. 選擇一個有前途的領域深耕, 領域具體指的是 電商,教育,金融,音視頻,大數據,ML 等, 也可再細分爲 ToB , ToC, ToG, ToVC等 ,作者推薦首選 ToB大數據, ToC社交電商 等, 道理很簡單 這樣選擇符合未來趨勢並可以隨着公司業務發展技術得到發展. 絕對不虧 !
  2. 選擇一個有前途的公司, 上面講了領域, 沒有待在一個好點的公司,領域再好也是枉然, 我心中的公司排名 增長公司 > 明星公司 > 創業公司. 增長型公司是指 餓了嗎, 美團, 拼多多, 摩拜, 年輕時的它們都有一個共同標籤 獨角獸, 我們要學會先選擇領域 再選擇公司, 不要浪費青春.
  3. 創造一個開源的項目 建議這個階段應該是你工作 1 年後, 你在一個領域深耕了很久之後, 你對開發的流程瞭如指掌. 這時候你就可以拿出工具箱根據現有的輪子創建出更強大的輪子, 因爲你在一個行業深耕了很久你解決的問題和你造的新輪子別人也一定是需要的.
  4. 創造一個自己的產品 建議這個階段應該是你工作 3 年後, 這時候你一定接觸過很多產品, 你對產品經理的設計思路也瞭如指掌, 那麼你就可以聯合幾個小夥伴 設計屬於自己的產品, 比如 解決 番茄鍾問題的 小程序, 解決 疫情查詢的 APP , 基於自己框架開發的技術產品 等, 只要你想做, 大膽放手去幹 !

做個斜槓青年是普通人的最好出路!

🦃 來一波乾貨

我們參加面試時經常會聊到一些技術相關 英語名詞, 而大多數程序員對英語發音並不感冒, 往往交談中答非所問 搞得場面一度很尷尬, 當然這裏不是叫大家立刻去學好英語, 學好一門語言, 冰凍三尺非一日之寒. 我給大家整理了一個Java相關 單詞表 , 面試前複習下即可 . 臨陣磨槍不快也光!

單詞 美式音標 技術分類 語義
abstract ˈæbstrækt, æbˈstrækt 關鍵字 抽象
break breɪk 關鍵字 打破
extends iksˈtendz 關鍵字 繼承
finally ˈfaɪnəli 關鍵字 最終
interface ˈɪntərfeɪs 關鍵字 接口
instanceof ɪnstanceof 關鍵字 實例
protected prə’tektɪd 關鍵字 受保護
synchronized ’sɪŋkrənaɪzd 關鍵字 同步
transient ˈtrænziənt 關鍵字 短暫的
volatile ˈvɑlətl 關鍵字 易變的
ReentrantReadWriteLock rɪ’entrənt riːd, red raɪt lɑk J.U.C 可重入讀寫鎖
StampedLock stæmpt lɑk J.U.C 蓋鎖
ConcurrentHashMap kənˈkɜrənt hæʃ mæp J.U.C 併發HashMap
ConcurrentSkipListMap kənˈkɜrənt skɪp lɪst mæp J.U.C 併發跳躍表映射
CopyOnWriteArrayList ˈkɑpi ɑn raɪt ə’reɪ lɪst J.U.C 複製寫入數組列表
LongAccumulator lɔŋ əˈkjumjəˌletɚ J.U.C 長整型累加器
AtomicLongArray əˈtɑmɪk lɔŋ ə’reɪ J.U.C 原子長整型數組
Exchanger ɪks’tʃeɪndʒə J.U.C 交換器
ForkJoinPool fɔrk dʒɔɪn pul J.U.C Fork連接池
ThreadPoolExecutor θrɛd pul ɪɡˈzɛkjətɚ, ˈɛksɪˌkjutɚ J.U.C 線程池執行者
Spring Cloud Bus sprɪŋ klaʊd bʌs 微服務 春天雲消息總線
Spring Cloud Consul sprɪŋ klaʊd ˈkɑnsl 微服務 春天雲服務網格
Spring Cloud Netflix sprɪŋ klaʊd Netflix 微服務 春天雲服網飛組件系列
Spring Cloud Schema Registry sprɪŋ klaʊd ˈskimə ˈrɛdʒɪstri 微服務 春天雲註冊表
Spring Cloud Security sprɪŋ klaʊd səˈkjʊrəti 微服務 春天雲安全
Spring Cloud OpenFeign sprɪŋ klaʊdˈoʊpən fen 微服務 春天雲網飛公開虛擬調用組件
Spring Cloud Eureka sprɪŋ klaʊdˈ jʊ’rikə 微服務 春天雲網飛註冊發現組件
Spring Cloud Zuul sprɪŋ klaʊdˈ zull 微服務 春天雲網飛網關組件
Spring Cloud Stream Applications sprɪŋ klaʊdˈ strim æplɪ’keɪʃəns 微服務 春天雲流式應用
Spring Cloud Hystrix sprɪŋ klaʊdˈ hɪst’rɪks 微服務 春天雲網飛熔斷組件
ElasticSearch sɜrtʃ ɪˈlæstɪk 中間件 彈性搜索
Kafka ’ka:fka: 中間件 卡夫卡
RabbitMQ ˈræbɪt mq 中間件 獵兔消息隊列
ActiveMQ ˈæktɪv mq 中間件 積極消息隊列
Zookeeper ˈzukipər 中間件 動物園管理員
Quartz kwɔrts 中間件 石英定時器

掃碼回覆 “加羣” 和我一起月入 20K+

深入淺出分享 Java 乾貨 , 找回對代碼的 Passion , 助力月入 20K+

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章