國外的公司都是如何對待大齡程序員的?在國內該如何應對?

{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"一程序員老哥跟我講,最近看電視劇看得扎心。電視劇是《都挺好》,扎心的橋段是大齡程序員被辭退後的窘境。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"劇中程序員蘇明哲的人設可謂非常華麗:清華之後留學斯坦福,畢業後在舊金山灣區做程序員,已經拿到美國綠卡,嬌妻、女兒、別墅一應俱全。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"但就是這麼一個華麗麗的程序員被辭退後,在美國竟找不到工作。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"迫於生活壓力,他的妻子勸他改行做體力活,當然被嚴詞拒絕。居然萌生出做“家庭婦男”“喫軟飯”的想法。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"後來,在飯店偶遇前同事,而對方竟然已經在中餐廳開始了傳菜生的嶄新職業生涯……"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"程序員老哥看完不僅老淚縱橫。原來聽人說,只有中國會辭退 30 歲以上的程序員,真的是這樣的嗎?"}]},{"type":"heading","attrs":{"align":null,"level":1},"content":[{"type":"text","text":"國外的公司都是如何對待大齡程序員的?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"其實「處理大齡程序員」這種現象能夠在國內出現,一方面是因爲人口紅利還沒結束,尚有大批新鮮血液湧入業界,所以僱主可以坐擁買方市場來挑選鮮肉;另一方面則是因爲社會主義還沒實現,法制也虛弱,資本家過河拆橋不用付出太高的成本。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"說說我在德國的觀感吧,當然不能代表「國外」的普遍情況,僅供參考。德國從一九八〇年代開始老齡化,如今是個人口年齡結構糟糕程度僅次於日本的超老齡國家,五分之一的德國人超過六十五歲,而退休年齡是六十七歲。在這樣的社會里,別說受過教育的職業人才了,連底層勞動力都一直供不應求,程序員這種門檻低但要求技術熟練的工種更是如此,否則藍卡也不會特別爲程序員降低標準[0]。我從業七年多以來跳過三次槽,基本每一次都是在 Monster 上更新一下簡歷立刻會被獵頭騷擾一星期,最近一次面試的時候老闆也坦言「程序員非常難招」。在這種狀況之下,三四十歲的程序員是大部分公司的骨幹,即便有條件挑三揀四的國際大公司也很難富集年輕人。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"即便不考慮社會老齡化,赤裸裸地以年齡爲由辭退員工在一個勞動法健全的國家也相當不可思議。德國勞動法對僱員的保護非常詳盡,公司如果有工會的話更是不可能讓這種事情發生。當然歐洲比較左,但即便在奉行新自由主義且目前還沒有老齡化困擾的美國,敢這樣明目張膽搞年齡歧視的僱主也絕無僅有,如果被抓到把柄,被辭退者的賠償金應該足夠他後半生財務自由了。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"所以至少在德國,大齡程序員不會需要擔心僅僅因爲年事已高而被年輕人代替。年輕人精力旺盛能加班這一點談不上什麼優勢,因爲公司不讓你加班——七年來我大概加過三天班。願意安心做技術的話,完全可以做到六十七歲再回家養老,當然大部分人會選擇提前退休,畢竟程序員養老保險交得多,加上自己能稍微投資經營一下的話,多數人不會太差。我接觸到四五十歲的德國程序員的出路包括:"}]},{"type":"bulletedlist","content":[{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"轉管理"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"成爲公司核心技術骨幹"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"加入外包公司,每隔幾個月或幾年空降到新的短期職位"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"跳去業界的技術諮詢公司,埃森哲、凱捷之類"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"成爲自謀職業者直接與客戶打交道,比較辛苦但少了一層剝削"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"跳去薪水更高的歐洲國家,比如瑞士"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"創業"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"補充一句:「單純因爲大齡被勸退」和「由於經濟危機或公司經營不善而成爲解僱的對象」性質不一樣。當然後者也會涉及到年齡歧視,但至少是可以理解的。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"以上內容轉自知乎,那麼在國內的話怎麼辦呢?"}]},{"type":"heading","attrs":{"align":null,"level":1},"content":[{"type":"text","text":"作爲一位程序員如何在中年危機之前成長起來"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"工作已經8年有餘,這8年裏特別感謝技術管理人員的器重,以及同事的幫忙,學到了不少東西。這8年裏走過一些彎路,也碰到一些難題,也受到過做爲一名開發卻經常爲系統維護和發佈當救火隊員的苦惱。遂決定梳理一下自己所學的東西,可以幫助大家減少三十五歲之後的焦慮,畢竟好的架構師並不多。其實「處理大齡程序員」這種現象能夠在國內出現,一方面是因爲人口紅利還沒結束,尚有大批新鮮血液湧入業界,所以僱主可以坐擁買方市場來挑選鮮肉;另一方面則是因爲社會主義還沒實現,法制也虛弱,資本家過河拆橋不用付出太高的成本。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"說說我在德國的觀感吧,當然不能代表「國外」的普遍情況,僅供參考。德國從一九八〇年代開始老齡化,如今是個人口年齡結構糟糕程度僅次於日本的超老齡國家,五分之一的德國人超過六十五歲,而退休年齡是六十七歲。在這樣的社會里,別說受過教育的職業人才了,連底層勞動力都一直供不應求,程序員這種門檻低但要求技術熟練的工種更是如此,否則藍卡也不會特別爲程序員降低標準[0]。我從業七年多以來跳過三次槽,基本每一次都是在 Monster 上更新一下簡歷立刻會被獵頭騷擾一星期,最近一次面試的時候老闆也坦言「程序員非常難招」。在這種狀況之下,三四十歲的程序員是大部分公司的骨幹,即便有條件挑三揀四的國際大公司也很難富集年輕人。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"即便不考慮社會老齡化,赤裸裸地以年齡爲由辭退員工在一個勞動法健全的國家也相當不可思議。德國勞動法對僱員的保護非常詳盡,公司如果有工會的話更是不可能讓這種事情發生。當然歐洲比較左,但即便在奉行新自由主義且目前還沒有老齡化困擾的美國,敢這樣明目張膽搞年齡歧視的僱主也絕無僅有,如果被抓到把柄,被辭退者的賠償金應該足夠他後半生財務自由了。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"所以至少在德國,大齡程序員不會需要擔心僅僅因爲年事已高而被年輕人代替。年輕人精力旺盛能加班這一點談不上什麼優勢,因爲公司不讓你加班——七年來我大概加過三天班。願意安心做技術的話,完全可以做到六十七歲再回家養老,當然大部分人會選擇提前退休,畢竟程序員養老保險交得多,加上自己能稍微投資經營一下的話,多數人不會太差。我接觸到四五十歲的德國程序員的出路包括:"}]},{"type":"bulletedlist","content":[{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"轉管理"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"成爲公司核心技術骨幹"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"加入外包公司,每隔幾個月或幾年空降到新的短期職位"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"跳去業界的技術諮詢公司,埃森哲、凱捷之類"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"成爲自謀職業者直接與客戶打交道,比較辛苦但少了一層剝削"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"跳去薪水更高的歐洲國家,比如瑞士"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"創業"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"補充一句:「單純因爲大齡被勸退」和「由於經濟危機或公司經營不善而成爲解僱的對象」性質不一樣。當然後者也會涉及到年齡歧視,但至少是可以理解的。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"以上內容轉自知乎,那麼在國內的話怎麼辦呢?"}]},{"type":"heading","attrs":{"align":null,"level":1},"content":[{"type":"text","text":"作爲一位程序員如何在中年危機之前成長起來"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"工作已經8年有餘,這8年裏特別感謝技術管理人員的器重,以及同事的幫忙,學到了不少東西。這8年裏走過一些彎路,也碰到一些難題,也受到過做爲一名開發卻經常爲系統維護和發佈當救火隊員的苦惱。遂決定梳理一下自己所學的東西,可以幫助大家減少三十五歲之後的焦慮,畢竟好的架構師並不多。"}]},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/90/902660406b6f69112e6f7fb81a162d28.jpeg","alt":null,"title":null,"style":null,"href":null,"fromPaste":true,"pastePass":true}},{"type":"heading","attrs":{"align":null,"level":1},"content":[{"type":"text","text":"  對於開發1-5年的程序員,先簡單點,問自己幾個問題:"}]},{"type":"bulletedlist","content":[{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"你工作幾年了,你願意一直和新入行的新手一樣就是個簡單的程序員嗎?"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"你願意一直寫代碼,而不關心其他嗎?"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"一個項目的前期需求,設計,後期部署維護,領導找到你,你說咱搞不定,行嗎?"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" 程序員不是敲代碼的機器。第一年太多東西不懂,你可以一切聽從老大的安排,敲敲代碼,看看數據庫,測試自己和別人的代碼;"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" 但是第二年,你還希望這樣嗎?不可能的,一年的經驗你完全可以入行了,是時候該學習怎麼進行需求分析,怎麼設計數據庫,怎麼寫各類文檔,怎麼寫更好的代碼?這是高級程序員的要求!"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"heading","attrs":{"align":null,"level":1},"content":[{"type":"text","text":"高級程序員的標配是什麼? 月入30K!"}]},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/95/95ad32ec9c399a0e3e655f38d3bee6e1.gif","alt":null,"title":null,"style":null,"href":null,"fromPaste":true,"pastePass":true}},{"type":"heading","attrs":{"align":null,"level":1},"content":[{"type":"text","text":" 什麼是高級程序員?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"具有分析設計能力,能進行技術攻關,而且具有某行業深厚背景的程序員!"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"一個項目立項後,你要積極的參與到前期設計中,跟老同志們一道思考分析問題,學習經驗!OK,你這就成長啦!"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"空閒時一定記得要多學習,任何行業從業者都需要不斷學習,只有更高效率的工作,才能創造更高的價值。特別是對於程序員來說,一不小心就有可能更不上時代的步伐"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":",天天互聯網寒冬,其實哪有什麼寒冬,只是懶惰者的託詞而已! 不主動學習,等待你的,只有被淘汰!"}]},{"type":"heading","attrs":{"align":null,"level":1},"content":[{"type":"text","text":"30K對應的層級分別是什麼?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"一位程序員能在五年的時間內薪資達到30k左右纔算達到一個平均水平吧!那麼達到30K的薪資也就是防止中年危機的第一步;進入一線大廠也是達到月薪30K最輕鬆的一條路,同時大廠完善的成長體系與系統的學習培訓能使程序員得到最快的提升;"}]},{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"30K的月薪在BAT等一線大廠實在太普遍了,一般是高級工程師和資深工程師的職位,在阿里是p6~p7左右,在百度是t5左右,騰訊是t2-3左右,在京東是t3-1,美團是p6左右,其他的我不瞭解。"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" 那麼我們Java程序員, 應該學習哪些知識成長自己,該如何成長自己?讓自己進入一線大廠?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"0-1年入門:"}]},{"type":"bulletedlist","content":[{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"Java基礎覆盤"},{"type":"text","text":"(面向對象+Java的超類+Java的反射機制+異常處理+集合+泛型+基礎IO操作+多線程+網絡編程+JDK新特性)"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"Web編程初探"},{"type":"text","text":"(Servlet+MySQL數據庫+商品管理系統實戰)"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"SSM從入門到精通"},{"type":"text","text":"(Spring+SpringMVC+Mybatis+商品管理系統實戰-SSM版)"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"SpringBoot快速上手"},{"type":"text","text":"(SpringBoot+基於SpringBoot的商品管理系統實戰)"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"零距離互聯網項目實戰"},{"type":"text","text":"(Linux+Redis+雙十一秒殺實戰系統)"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"1-3年高工:"}]},{"type":"bulletedlist","content":[{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"併發編程進階"},{"type":"text","text":"(併發工具類實戰+CAS+顯示鎖解析+線程池內部機制+性能優化)"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"JVM深度剖析"},{"type":"text","text":"(理解運行時數據區+堆外內存解讀+JDK+內存泄漏問題排查+Arthas+GC算法和垃圾回收器+類加載機制等)"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"MySQL深度進階"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"深入Tomcat底層"},{"type":"text","text":"(線程模型+性能調優)"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"3-5年資深:"}]},{"type":"bulletedlist","content":[{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"數據庫"},{"type":"text","text":"(調優+事務+鎖+集羣+主從+緩存等)"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"Linux"},{"type":"text","text":"(命令+生產環境+日誌等)"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"中間件&分佈式"},{"type":"text","text":"(dubbo+MQ/kafka、ElasticSearch、SpringCloud等組件)"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"5-7年架構:"}]},{"type":"bulletedlist","content":[{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"開源框架"},{"type":"text","text":"(Spring5源碼+SpringMVC源碼+Mybatis源碼)"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"分佈式架構"},{"type":"text","text":"(Zk實戰+RabbitMQ+RocketMQ+Kafka)"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"高效存儲"},{"type":"text","text":"(Redis+mongoDB+MySQL高可用+Mycat+Sharing-Sphere)"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"微服務架構"},{"type":"text","text":"(RPC+SpringBoot+SpringCloud Netflix+SpringCloud Alibaba+docker+k8s)"}]}]}]},{"type":"heading","attrs":{"align":null,"level":1},"content":[{"type":"text","text":"一、Java築基(基礎)"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"1.Tomcat"}]},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/05/05a49971799b451e2c47e8a43003c361.jpeg","alt":null,"title":null,"style":null,"href":null,"fromPaste":true,"pastePass":true}},{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" 想要領取這一整套進階筆記的朋友可以點贊此文後關注公衆號【Java鬥帝】免費獲取"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"2.Mysql"}]},{"type":"bulletedlist","content":[{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"MySQL體系結構和存儲引擎"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"InnoDB存儲引擎"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"索引與算法"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"鎖"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"事務"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"性能調優"}]}]}]},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/c9/c9cd308fb414fd1549e4240d6eb2f9d8.jpeg","alt":null,"title":null,"style":null,"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "},{"type":"text","marks":[{"type":"strong"}],"text":" 3.設計模式"}]},{"type":"bulletedlist","content":[{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"24種設計模式與6大設計原則"}]}]}]},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/15/153e39dd89c76d862af18f21f6815cd8.jpeg","alt":null,"title":null,"style":null,"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":" 4.併發編程"}]},{"type":"bulletedlist","content":[{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Java線程"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"線程池"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"生命週期"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"阻塞隊列"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"CAS"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"AQS"}]}]}]},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/36/363700a410d39f4cbfb0a391df6aa2c9.jpeg","alt":null,"title":null,"style":null,"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "},{"type":"text","marks":[{"type":"strong"}],"text":" 5.JVM"}]},{"type":"bulletedlist","content":[{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"線程"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"JVM內存區域"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"JVM運行時內存"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"垃圾回收與算法"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"GC"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"IO/NIO"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"類加載機制"}]}]}]},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/22/2263e12c026814a366b19957b5369860.jpeg","alt":null,"title":null,"style":null,"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "},{"type":"text","marks":[{"type":"strong"}],"text":" 6.Netty"}]},{"type":"bulletedlist","content":[{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Netty原理"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Netty高性能"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"NettyRPC實現"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"RMI實現方式"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Protoclol Buffer"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Thrift"}]}]}]},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/1b/1bf0e1d8c8adebace19772dad5450121.jpeg","alt":null,"title":null,"style":null,"href":null,"fromPaste":true,"pastePass":true}},{"type":"heading","attrs":{"align":null,"level":1},"content":[{"type":"text","text":" 二、開源框架(SSM框架)"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"1.Spring"}]},{"type":"bulletedlist","content":[{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Spring特點、核心組件、常用模塊、主要包、常用註解、第三方結合"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Spring IOC、AOP"}]}]}]},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/8c/8cbf637e2c16f2b2943e7870710b5646.jpeg","alt":null,"title":null,"style":null,"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":" 2.Spring MVC"}]},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/30/30954bdb8f2fdd4e5492f6222a4454dd.jpeg","alt":null,"title":null,"style":null,"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "},{"type":"text","marks":[{"type":"strong"}],"text":" 3.Mybatis"}]},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/51/5127c1506d25d98813a5bd90b4871baa.jpeg","alt":null,"title":null,"style":null,"href":null,"fromPaste":true,"pastePass":true}},{"type":"heading","attrs":{"align":null,"level":1},"content":[{"type":"text","text":"  三、微服務架構"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"1.Dubbo"}]},{"type":"bulletedlist","content":[{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"基於XML配置實現"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Dubbo註冊中心"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Dubbo擴展點加載機制"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Dubbo啓停原理解析"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Dubbo遠程調用"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Dubbo集羣容錯"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Dubbo擴展點"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Dubbo高級特性"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Dubbo過濾器"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Dubbo註冊中心擴展實踐"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Dubbo服務治理平臺"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Dubbo未來生態"}]}]}]},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/40/403242491793ae3b3f465dae0ed10f2f.jpeg","alt":null,"title":null,"style":null,"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":" 2.SpringBoot"}]},{"type":"bulletedlist","content":[{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Spring Boot入門"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"配置文件"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"日誌"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Web開發"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Docker"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"SpringBoot與數據訪問"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"啓動配置原理"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"自定義starter"}]}]}]},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/31/3175aea0ccd64aa12db8b2deb5199f5a.jpeg","alt":null,"title":null,"style":null,"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":" 3.SpringCloud"}]},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/09/092251237664e25fcbade5ea56255512.jpeg","alt":null,"title":null,"style":null,"href":null,"fromPaste":true,"pastePass":true}},{"type":"heading","attrs":{"align":null,"level":1},"content":[{"type":"text","text":" 四、分佈式"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"1.分佈式限流(Nignx+Zookeeper)"}]},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/19/19a68d2997a99aa2454df526687b4d56.jpeg","alt":null,"title":null,"style":null,"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":" 2.分佈式緩存(Redis+MongoDB+Memcached)"}]},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/82/82067b62446bcce8be59a88cabb81cac.jpeg","alt":null,"title":null,"style":null,"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "},{"type":"text","marks":[{"type":"strong"}],"text":" 3.分佈式通訊(RabbitMQ+RocketMQ+Kafka)"}]},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/64/647a6651232a718d538d6340c2cd96ec.jpeg","alt":null,"title":null,"style":null,"href":null,"fromPaste":true,"pastePass":true}},{"type":"heading","attrs":{"align":null,"level":1},"content":[{"type":"text","text":"  五、性能優化"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"1.Java性能調優"}]},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/5c/5c8f7c6296b61956d212926bd5df9060.jpeg","alt":null,"title":null,"style":null,"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"  "},{"type":"text","marks":[{"type":"strong"}],"text":"2.Mysql調優"}]},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/6f/6f98900f78cfd336d69950260e317ce4.jpeg","alt":null,"title":null,"style":null,"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "},{"type":"text","marks":[{"type":"strong"}],"text":"3.JVM調優"}]},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/e7/e7d09fc5dd1387f1556ece0ecef1be87.jpeg","alt":null,"title":null,"style":null,"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":" 4.Tomcat調優"}]},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/0c/0c9d8da57e1f18166f3c7f3ec1ebeb1f.jpeg","alt":null,"title":null,"style":null,"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" 上述這一套進階筆記由於篇幅原因無法全部展示;需要的朋友可以點贊此文後關注公衆號【Java鬥帝】免費獲取"}]},{"type":"heading","attrs":{"align":null,"level":1},"content":[{"type":"text","text":"​總結:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" 我認爲,只有弱者纔會說'程序員30之後工作不好找\"、\"程序員30歲之後就要送外賣了”"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"這個時代,技術技術日新月異是不假,但是說“程序員到了一定年齡在創造力和學習能力上都難以跟上年輕的一代\"這真的是扯淡。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"現階段很多人被表象迷惑,感覺Java開發人員並不好找工作。一部分人就誤以爲市場飽和了,卻沒考慮到是自身能力不足,而且他們在學習的過程中往往是這樣的:"}]},{"type":"numberedlist","attrs":{"start":"1","normalizeStart":1},"content":[{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":1,"align":null,"origin":null},"content":[{"type":"text","text":"對知識點不會篩選,盲目買書看視頻,資料堆積如山,什麼都不管先學了再說;"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":2,"align":null,"origin":null},"content":[{"type":"text","text":"指望把一本書啃透、一套視頻看完,多敲敲寫一些就能搞定;"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":3,"align":null,"origin":null},"content":[{"type":"text","text":"什麼都學,感覺什麼都會,但是在做項目的時候一頭霧水;"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":4,"align":null,"origin":null},"content":[{"type":"text","text":"聽別人說哪個好就學哪個,盲目跟風;"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":5,"align":null,"origin":null},"content":[{"type":"text","text":"各種亂七八糟的東西都用,只要實現效果其他的都可以忽略,停留在\"搬運\"階段;"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":6,"align":null,"origin":null},"content":[{"type":"text","text":"從來沒有意識到做項目的規範和標準以及注意事項;"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"可想而知,這樣學習下來的技能達不到企業要求水平,自然而然找不到工作。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"所以啊,不要考慮什麼中年危機了,你如果是個人(fei)才(wu),別說中年危機了,你連青年危機都過不去,不要溫水煮青蛙;"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"好啦!"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"------------------------------------------------------------see you-----------------------------------------------------------------"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":"看完三件事❤️"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"如果你覺得這篇內容對你還蠻有幫助,我想邀請你幫我三個小忙:"}]},{"type":"numberedlist","attrs":{"start":null,"normalizeStart":1},"content":[{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":1,"align":null,"origin":null},"content":[{"type":"text","text":"點贊,轉發,有你們的 『點贊和評論』,纔是我創造的動力。"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":2,"align":null,"origin":null},"content":[{"type":"text","text":"關注公衆號 『 Java鬥帝 』,不定期分享原創知識。"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":3,"align":null,"origin":null},"content":[{"type":"text","text":"同時可以期待後續文章ing🚀"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章