{eval=Array;=+count(Array);}

国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

問答專欄Q & A COLUMN

java程序員如何提升自己?

luodongseuluodongseu 回答0 收藏1
收藏問題

10條回答

graf

graf

回答于2022-06-28 14:34

當前最多的程序員可能就是Java程序員了,作為工作了近20年的Java程序員,一路走來經歷過很多彎路,也見過、培訓過很多技術人員一步步成長,作為公司的技術負責人一直試圖把自己血淚史、最佳實踐進行傳導、傳播,中間犯過理想主義的錯誤,以為:告訴他(們),他們就可以知道、就會不犯錯誤,事實上不是這樣的,計算機是一門實踐性科學,很多東西需要實踐、反復訓練才可以深刻理解、才可以轉化為能力,以至變成下意識的行為。

有人天生代碼感覺、邏輯思維比較好,有些人后天訓練、打開天眼也可以成為技術高手,多看、多研究、多實踐、多總結是笨招也是必殺另外,溝通交流是可以讓你進步加速的,不要悶頭苦學,在前5年工作生涯里做的絕大多數的事情,都是把前人的知識進行收集應用、歸納總結,要知道哪些不知道、要知道哪些東西自己必須要知道,對不知道的領域結合自己工作情況制定計劃,逐步落實、修煉內功。

對于程序員來說,如果可能盡量選一個技術型公司、最好有“傳幫帶”文化體系的公司要學會制定計劃、落實計劃、工作總結、溝通交流,習慣看源碼、習慣調試、習慣反編譯、習慣問別人之前先把問題說清楚了、習慣寫需求/設計/測試文檔、習慣了解新生技術以及思考為什么產生、底層原理以及如何跟自己當前工作結合。要學會喜歡跟不同領域的人員溝通,底層邏輯相通的,成為高手過程中經歷是相似的、可以借鑒的。

成為高手最重要的是:對未知領域的求知欲、傻逼一樣的持續堅持以及過程中的不斷優化改進的工作學習方法。學而優則仕,當積累到一定程度的時候,你可以選擇華麗轉型,也可以選擇升級打怪,也可以自主創業打造平臺,不管怎樣:勤奮、堅持、改進,There is no set path , Just follow your heart!

數通暢聯專注于企業IT架構、SOA綜合集成、數據治理分析領域,感謝您的閱讀與關注。

評論0 贊同0
  •  加載中...
imccl

imccl

回答于2022-06-28 14:34

學習 Java 很容易,想要精通很難,提升自己有 2 個層面的難點:一個是知識點和企業實踐層面,一個是個人綜合能力層面。

學 Java 要學什么?

在回答問題之前,先討論下學 Java 到底要學什么。

我個人的觀點:學 Java 是為了學習企業級后端的架構及開發模式

這里有必要說明 3 個點:

  1. 語言只是工具,單純學習語言及其簡單的周邊知識,將很快被淘汰;
  2. Java 語言只所以流行了二十多年,根源在于其逐漸完善的生態和社區,企業級后端目前只有 Java 生態最為豐富,你能想到的所有場景及組件都有對應的技術實現和方案;
  3. 學習 Java 的目的是為了以 Java 語言為切入點,切入到整個企業級后端開發的技術棧,學習到架構思維的真諦和靈魂,構建完整的技術知識體系。

提升層面之一:知識點和企業實踐層面

知識點和企業實踐層面,對應武功修煉的“招式”。

在這個層面,我給到的建議是:

  1. 無論技術學習到什么程度,都要始終明確你的學習目標:逐步構建完整的企業級后端技術體系(前面已經講過,此處不再贅述),這是你學習所有后端技術棧的地圖,防止你迷路;
  2. 工作 1-2 年:以快速掌握框架為主,以學習適當的基礎理論和知識為輔,快速應用到工作場景,這樣可以快速獲得成就感,更容易堅持和學習下去;
  3. 工作 2-3 年:隨著框架技術運用越來越嫻熟,就要精通幾門技術,目標是達到源碼級掌握,推薦從最常用的核心技術開始鉆研,比如:Spring、Kafka、RocketMQ 等;
  4. 工作 3 年以上:如果上述目標已經達成,可以考慮結合業務場景有意識地訓練并形成自己的架構思維,重點關注分布式系統、微服務和持續交付的相關知識;
  5. 工作 5 年以上:此時應該能解決工作中常見的技術問題,對系統性能越來越關注了,所以要開始回歸到底層基礎知識的研究上,所有高性能中間件和系統的底層都是對核心基礎理論的最佳實踐,此時重讀核心技術的源碼,重點關注核心基礎理論的落地實現,以此深入重構個人的架構思維,重塑個人知識體系;
  6. 工作 7 年以上:到這個階段,已經可以嘗試架構師了,重點關注全局架構設計,解決常見業務場景的完整解決方案,能夠設計出針對特定場景的技術方案,好的技術方案可以做到簡潔高效、彈性擴容、方便落地實現;
  7. 工作 10 年以上:如果體力和精力依然跟得上,自求生路吧,未曾嘗試不敢妄言。

提升層面之二:個人綜合能力

除了上述技術能力的提升,更重要的是個人綜合能力的提升,這個對應于武功修煉的“內功”。

關于個人綜合能力,我給到的建議是:

  1. 一定要有意識、有目的、一步一步地構建個人知識體系,首先是系統學習,然后才是碎片化學習,所有知識理論和方法只有內化到自己的知識體系中,才能掌握和應用;
  2. 所有的原理性知識和方法都很容易獲取到,難點在于能否合理運用,大量實踐和應用才能掌握,才能內化到個人知識體系,消化后再輸出才是真正的閉環;
  3. 無論工作了幾年,都要重點提升邏輯思維能力、閱讀能力、寫作能力、溝通能力、演講能力,可以通過思維導圖工具、寫博客、團隊內部演講等方式不斷訓練這些能力;
  4. 一個重要的學習觀念:所有的知識學習都要以解決問題為目標;
  5. 最后一個重要的觀點:如果你有強烈的掙錢欲望,且能長時間保持這種欲望,那么,大概率你會更快地成功,賺錢的動力是最強勁的,遠比高尚目標來得實際。

最后,來碗雞湯

最后的最后,來碗雞湯提提神,希望一直激勵的雞湯,對你同樣有效。

一、關掉朋友圈,拒絕無效社交,卸載游戲

二、早睡早起,不再熬夜

三、每天結束,反省自己

四、堅持鍛煉身體,堅持每天出汗

五、看書學習,每天漲知識

六、腦子里想著賺錢,賺錢第一

七、拒絕拖延癥,做事果斷大氣

八、多和優秀的人交談

九、學會獨處,別怕孤獨

十、減少負面情緒的釋放(生氣嫉妒悲傷郁悶)

十一、記住第六條不然其他的都是白扯

評論0 贊同0
  •  加載中...
NicolasHe

NicolasHe

回答于2022-06-28 14:34

如何提升自己?

1. 提升興趣

一定要讓自己熱愛這項工作,我帶過很多小孩(都是校招),你可以認為他們剛來的時候,基本上都是白紙(基礎還行,動手能力很差),到公司一年后,再觀察,就能發現個體之間開始有比較明顯的差別,有些人進步非常明顯,他們與其他人對比最大的區別就是對這項工作的熱情,投入程度,由于公司有集團宿舍,大部分校招的都是在宿舍住,他們都是很晚才回去睡覺,其實由于他們是新人,一般不會把特別重(重要)的事情壓給他們,他們晚上都是在學習框架(我們公司自己的框架),學習Hadoop部署,docker原理這些看似與Java無關但可以極大提升能力的知識;

2. 腳踏實地學習

初期都要求看jdk代碼,先不看紛繁復雜的外部框架,就看jdk代碼,而且只需要看share(jdk中Java部分)部分,再細一點,可以只看util部分,里面的大部分各種容器,里面有很多算法,很多優化設計,如果認真學,能得到很多,以后面試別人還可以考考別人呢????

3. 主動承擔

工作中主動承擔任務及其帶來的責任,在項目模塊開發的過程中,可以快速融入公司技術體系中,理解技術的同時可以深入了解業務及其實現,不同的公司都會有不同的技術體系,當你能把握各種體系,就不會走到哪里,都認為人家的代碼怎么不好了(這是一般程序員都有的毛病)。我認為對產品的重構的能力比重寫的能力重要太多了!動輒要求重寫的人,一般心理和能力都比較脆弱。漸進永遠比重來風險小,產品是設計出來的,更是生長出來的。

另,不要怕擔責,主動承擔責任的同事,領導一般會預估其能力,如果他能勝任,會放心讓他做,如果他能力不行,領導是不會同意全部交給他的,如果剛剛可以勝任,領導會在交給他的同時準備兜底方案。所以,要敢于承擔,責任(壓力)會讓你的能力大幅度提高。

評論0 贊同0
  •  加載中...
layman

layman

回答于2022-06-28 14:34

對于一名剛入行的Java程序員,要想不斷提高自己并建立自己的職場優勢,需要從以下幾個方面入手:

第一,制定自己的職場規劃(方向)。作為職場人來說,制定自己的職場規劃是比較重要的。具體到Java程序員來說,要給自己定一個方向,并制定對應的階段性目標和長期目標。如果想在程序員這條路上走的更遠,就一定要有一個自己的主攻方向,比如大數據、云計算、人工智能、區塊鏈等,這些方向都是不錯的選擇。

第二,合理利用時間提高自己的能力。程序員能力的提升分為兩個部分,一部分是工作本身帶來的提高,另一部分是主動學習帶來的提高。通過工作帶來的提高往往是有一定期限的,如果在一個崗位上工作超過3年,那么每天通過工作獲得的提升是十分有限的,此時要想獲得持續不斷的提高就要借助自主學習,或者是轉崗。自主學習的重點在于時間的利用,大部分程序員的業余時間都是碎片化的,如何有效利用碎片化時間來系統學習是非常考驗程序員的。

第三,注重交流。對于程序員來說,交流是提升自己的重要渠道,尤其是對于剛入行的程序員來說,更要多與其他人交流,以便于獲得更多的信息量。這些交流包括技術交流、業務交流等內容,通過交流來吸收更多的知識,然后指導自己的工作。按照歷史經驗來看,往往善于交流的程序員成長的更快。

除了以上幾點,作為程序員來說還有一點要引起足夠的重視,那就是外語能力。掌握一門外語對于未來程序員提升職場競爭力有非常大的幫助,尤其是在30歲以后,語言優勢將逐漸顯露出來。

我帶軟件團隊多年,目前也在帶移動互聯團隊和大數據團隊,我會陸續在頭條上寫一些關于軟件開發方面的文章,感興趣的朋友可以關注我的頭條號,相信一定會有所收獲。

如果有互聯網方面的問題,也可以咨詢我。

謝謝!

評論0 贊同0
  •  加載中...
paulquei

paulquei

回答于2022-06-28 14:34

抱拳謝邀。

Java程序員如何提升自己,我覺得應該從以下3點入手。

一、找準自我定位

不論是企業大佬,還是剛剛入行的小菜鳥,都應該快速找到自己的定位。定位是一個方向,這個方向定位,包括一系列信息。

它們包括,但不限于以下這些:

適合自己從事的行業、個人職業發展規劃(管理或純技術)、個人核心技術能力等等。

因為Java的應用場景紛繁復雜,因此,找到一個適合自己的業務場景就顯得十分重要。金融領域、電商領域、教育領域、房地產領域或者互聯網等等,你需要快速進入到某一個領域中,然后發展自己的業務知識。

沒錯,找到適合自己從事的行業就是找準Java應用領域,然后學習業務。因為不論你是否承認,業務知識都是十分重要的。頻繁的更換行業導致學習的業務知識不通用,將會延長你成功的時間。

個人的職業規劃需要你為自己定制一個適合自己發展的技術方向,這個規劃表需要你給出具體的時間,節點,目標以及實現方式等信息。比如,我初入職場的時候,給自己定的近期目標是3年工資達到13K,要精通某某某技術。就算最后沒有達到目標也不能氣餒,重新調整計劃再起航。

個人核心技術能力指的是個人的技術亮點。比如Java中的幾個技術加分項:虛擬機、并發編程、網絡編程、Spring底層原理、Mybatis底層原理;或者其他的比如代碼重構、架構技術等等。

如果你能在應聘的時候能展示出一兩樣拿得出手的技術亮點,一定會比那些什么都懂一點的應聘者更容易拿到理想的Offer。

二、增強知識的檢索能力

在《認知天性》一書中,提到了一個基礎核心要點,那就是學習的過程就是在不斷增強自己的檢索能力。

通俗點解釋,一個知識點,在你腦海中儲存著,檢索能力強的人,可以快速準確地給出問題的答案,并提出合理的解釋。而檢索能力弱的人會對知識點模糊,導致問題無法解決。

因此,你不僅要學習知識,還要練習如何快速地從你的腦海中獲取學到的知識。

而書中提出的一個重要的方法就是需要你不斷的變換場景去應用你學到的知識。

那么我的建議就是——寫博客。

寫博客可以給自己更多的思考時間,對于一個知識點,你需要不斷地加深它的印象,通過寫博客,你可以整理這些知識,用文章的形式幫助你快速提取這些曾經的知識點。我寫博客已經兩年的時間了,深刻體會到這種方法的有效性。也希望題主可以試著嘗試一下。

三、提高自己的個人聲望

第二條提到了寫博客,那么提高個人聲望也同樣息息相關。

博客是屬于大眾媒體,包括個人公眾號以及GitHub等,你在上面的活躍程度,可以從側面說明你對工作的熱愛程度。

個人的價值也恰恰你能夠發揮出多少熱量。文字就是最好的武器,它可以把你的觀點、你的見解、你的成長通過網絡的形式讓他人看到,包括你的面試官。

因此,品牌和聲望也是你需要不斷加固的堡壘。這會在你日后的發展中起到推波助瀾的作用。

以上,就是關于如何提升Java程序員自我價值的重要觀點。希望可以幫助到題主。

點個贊吧,點個贊再走,好人一生平安。

評論0 贊同0
  •  加載中...
myshell

myshell

回答于2022-06-28 14:34

以下皆出自本人親自翻閱過的書籍,體驗良好,豆瓣大眾也以為然,遂列舉,以供后浪規劃學習。


1 JavaSE

1.1 基礎

《Java 核心技術:卷1 》

適合轉行及大一的CS專業新生們


1.2 進階

Java 編程思想 中文第四版

即使是最晦澀的概念,在Bruce Eckel的文字親和力和小而直接的編程示例面前也會化解于無形。從Java的基礎語法到最高級特性(深入的面向對象概念、多線程、自動項目構建、單元測試和調試等),本書都能逐步指導你輕松掌握。

作者擁有多年教學經驗,對C、C++以及Java語言都有獨到、深入的見解,以通俗易懂及小而直接的示例解釋了一個個晦澀抽象的概念。包含了Java語言基礎語法以及高級特性,適合各層次Java程序員閱讀。


Effective Java中文版(第3版)

90個條目,每個條目討論Java程序設計中的一條規則。這些規則反映了最有經驗的優秀程序員在實踐中常用的一些有益的做法。

每一章都涉及軟件設計的一個主要方面,并不一定需要按部就班地從頭讀到尾,每個條目都有一定程度的獨立性。相互之間經常交叉引用,因此可以很容易地在書中找到自己需要的內容。

本書的目標是幫助讀者更加有效地使用Java編程語言及其基本類庫:java.lang、java.util和java.io,以及子包,如java.util.concurrent和java.util.function。

并發

《Java并發編程實戰》

并發領域圣經,適合進階選手的閱讀,由 JDK 并發包作者親自執筆,科學權威地講解了并發的設計原理。

2 JVM

2.1 基礎

深入理解Java虛擬機(第3版)

這是一部從工作原理和工程實踐兩個維度深入剖析JVM的著作,是計算機領域公認的經典,繁體版在臺灣也頗受歡迎。

第3版在第2版的基礎上做了重大修訂,內容更豐富、實戰性更強:根據新版JDK對內容進行了全方位的修訂和升級,圍繞新技術和生產實踐新增逾10萬字,包含近50%的全新內容,并對第2版中含糊、瑕疵和錯誤內容進行了修正。


Inside the Java 2 Virtual Machine

3 操作系統(Linux)

3.1 基礎

鳥哥的Linux私房菜(第四版)

深入理解計算機系統(原書第3版)

完全以x86-64為基礎:

基于x86-64,大量地重寫代碼,首次介紹對處理浮點數據的程序的機器級支持。

處理器體系結構修改為支持64位字和操作的設計。

引入更多的功能單元和更復雜的控制邏輯,使基于程序數據流表示的程序性能模型預測更加可靠。

擴充關于用GOT和PLT創建與位置無關代碼的討論,描述了更加強大的鏈接技術(比如庫打樁)。

增加了對信號處理程序更細致的描述,包括異步信號安全的函數等。

更新了與協議無關和線程安全的網絡編程。


編碼 隱匿在計算機軟硬件背后的語言

本書講述計算機工作原理。作者用豐富的想象和清晰的筆墨將看似繁雜的理論闡述得通俗易懂,你絲毫不會感到枯燥和生硬。更重要的是,你會因此而獲得對計算機工作原理較深刻的理解。這種理解不是抽象層面上的,而是具有一定深度。


UNIX環境高級編程》第三版

被譽為UNIX編程“圣經”的Advanced Programming in the UNIX Environment一書的第3版。書中除了介紹UNIX文件和目錄、標準I/O庫、系統數據文件和信息、進程環境、進程控制、進程關系、信號、線程、線程控制、守護進程、各種I/O、進程間通信、網絡IPC、偽終端等方面的內容,還在此基礎上介紹了眾多應用實例,包括如何創建數據庫函數庫以及如何與網絡打印機通信等

4 Spring 框架

4.1 基礎

Spring實戰(第4版)

入門經典書籍。第5版最新但是設計不適合初學者,所以推薦四版。適合剛開始學習Spring 框架的Java 開發人員快速上手。

5 數據庫(MySQL)

5.1 基礎

《SQL 必知必會》

本書是深受世界各地讀者歡迎的SQL經典暢銷書,內容豐富,文字簡潔明快,針對Oracle、SQL Server、MySQL、DB2、PostgreSQL、SQLite等各種主流數據庫提供了大量簡明的實例。與其他同類圖書不同,它沒有過多闡述數據庫基礎理論,而是專門針對一線軟件開發人員,直接從SQL SELECT開始,講述實際工作環境中最常用和最必需的SQL知識,實用性極強。通過本書,讀者能夠從沒有多少SQL經驗的新手,迅速編寫出世界級的SQL!

《高性能 MySQL》第三版


6 Redis

6.1 基礎

Redis設計與實現

Redis開發與運維

本書全面講解Redis基本功能及其應用,并結合線上開發與運維監控中的實際使用案例,深入分析并總結了實際開發運維中遇到的“陷阱”,以及背后的原因, 包含大規模集群開發與管理的場景、應用案例與開發技巧,為高效開發運維提供了大量實際經驗和建議。本書不要求讀者有任何Redis使用經驗,對入門與進階DevOps的開發者提供有價值的幫助。主要內容包括:Redis的安裝配置、API、各種高效功能、客戶端、持久化、復制、高可用、內存、哨兵、集群、緩存設計等,Redis高可用集群解決方案,Redis設計和使用中的問題,最后提供了一個開源工具:Redis監控運維云平臺CacheCloud。

Redis 深度歷險:核心原理與應用實踐

《Redis 深度歷險:核心原理與應用實踐》分為基礎和應用篇、原理篇、集群篇、拓展篇、源碼篇共 5 大塊內容。基礎和應用篇講解對讀者來說最有價值的內容,可以直接應用到實際工作中;原理篇、集群篇讓開發者透過簡單的技術表面看到精致的底層世界;拓展篇幫助讀者拓展技術視野和夯實基礎,便于進階學習;源碼篇讓高階的讀者能夠讀懂源碼,掌握核心技術實力。

適合人群:有 Redis 基礎,渴望深度掌握 Redis 技術原理的中高級后端開發者;渴望成功進入大型互聯網企業研發部的中高級后端開發者;需要支撐公司 Redis 中間件運維工作的初中級運維工程師;對 Redis 中間件技術好奇的中高級前端技術研究者。

6.2 進階

Redis5設計與源碼分析

本書系統講解Redis 5設計、數據結構、底層命令實現,以及持久化、主從復制、集群的實現。

7 軟件設計

7.1 基礎

《Head First設計模式》

大話設計模式

設計模式之禪(第2版)

本書是設計模式領域公認的3本經典著作之一,“極具趣味,容易理解,但講解又極為嚴謹和透徹”是本書的寫作風格和方法的最大特點。深刻解讀6大設計原則和28種設計模式的準確定義、應用方法和最佳實踐,全方位比較各種同類模式之間的異同,詳細講解將不同的模式組合使用的方法。

代碼整潔之道

本書提出:代碼質量與其整潔度成正比。干凈的代碼,既在質量上較為可靠,也為后期維護、升級奠定了良好基礎。本書給出一系列行之有效的整潔代碼操作實踐,并輔以來自現實項目的正、反兩面的范例。

遵循這些規則,就能編寫出干凈的代碼,有效提升代碼質量。涵蓋從命名到重構的多個編程方面。

UNIX編程藝術

本書主要介紹了Unix系統領域中的設計和開發哲學、思想文化體系、原則與經驗,由公認的Unix編程大師、開源運動領袖人物之一Eric S. Raymond傾力多年寫作而成。包括Unix設計者在內的多位領域專家也為本書貢獻了寶貴的內容。本書內容涉及社群文化、軟件開發設計與實現,覆蓋面廣、內容深邃,完全展現了作者極其深厚的經驗積累和領域智慧。


8 架構

8.1 基礎

《大型網站技術架構:核心原理與案例分析》- 面試架構知識點核心書籍

通過梳理大型網站技術發展歷程,剖析大型網站技術架構模式,深入講述大型互聯網架構設計的核心原理,并通過一組典型網站技術架構設計案例,為讀者呈現一幅包括技術選型、架構設計、性能優化、Web 安全、系統發布、運維監控等在內的大型網站開發全景視圖。了解大型網站的解決方案和開發理念。

8.2 進階

億級流量網站架構核心技術

京東架構師經驗之談,總結并梳理了億級流量網站高可用和高并發原則,通過實例詳細介紹了如何落地這些原則。

分為四部分:概述、高可用原則、高并發原則、案例實戰。從負載均衡、限流、降級、隔離、超時與重試、回滾機制、壓測與預案、緩存、池化、異步化、擴容、隊列等多方面詳細介紹了億級流量網站的架構核心技術,讓讀者看后能快速運用到實踐項目中。

企業應用架構模式

本書作者是當今面向對象軟件開發的權威,他在一組專家級合作者的幫助下,將40多種經常出現的解決方案轉化成模式,最終寫成這本能夠應用于任何一種企業應用平臺的、關于解決方案的、不可或缺的手冊。本書獲得了2003年度美國軟件開發雜志圖書類的生產效率獎和讀者選擇獎。本書分為兩大部分。第一部分是關于如何開發企業應用的簡單介紹。第二部分是本書的主體,是關于模式的詳細參考手冊,每個模式都給出使用方法和實現信息

架構整潔之道

創造“Clean神話”的Bob大叔在架構領域的登峰之作,圍繞“架構整潔”這一重要導向,系統地剖析其緣起、內涵及應用場景,涵蓋軟件研發完整過程及所有核心架構模式。

數據密集型應用系統設計

全書分為三大部分:

第一部分,主要討論有關增強數據密集型應用系統所需的若干基本原則。首先開篇第1章即瞄準目標:可靠性、可擴展性與可維護性,如何認識這些問題以及如何達成目標。第2章我們比較了多種不同的數據模型和查詢語言,討論各自的適用場景。接下來第3章主要針對存儲引擎,即數據庫是如何安排磁盤結構從而提高檢索效率。第4章轉向數據編碼(序列化)方面,包括常見模式的演化歷程。

第二部分,我們將從單機的數據存儲轉向跨機器的分布式系統,這是擴展性的重要一步,但隨之而來的是各種挑戰。所以將依次討論數據遠程復制(第5章)、數據分區(第6章)以及事務(第7章)。接下來的第8章包括分布式系統的更多細節,以及分布式環境如何達成一致性與共識(第9章)。

第三部分,主要針對產生派生數據的系統,所謂派生數據主要指在異構系統中,如果無法用一個數據源來解決所有問題,那么一種自然的方式就是集成多個不同的數據庫、緩存模塊以及索引模塊等。首先第10章以批處理開始來處理派生數據,緊接著第11章采用流式處理。第12章總結之前介紹的多種技術,并分析討論未來構建可靠、可擴展和可維護應用系統可能的新方向或方法。


9 DDD

9.1 基礎

領域驅動設計模式、原理與實踐

實現領域驅動設計

領域驅動設計(DDD)教我們如何做好軟件的,同時也是教我們如何更好地使用面向對象技術的。它為我們提供了設計軟件的全新視角,同時也給開發者留下了一大難題:如何將領域驅動設計付諸實踐?Vaughn Vernon 的這本《實現領域驅動設計》為我們給出了全面的解答。

《實現領域驅動設計》分別從戰略和戰術層面詳盡地討論了如何實現DDD,其中包含了大量的最佳實踐、設計準則和對一些問題的折中性討論。《實現領域驅動設計》共分為14 章,在DDD 戰略部分,《實現領域驅動設計》向我們講解了領域、限界上下文、上下文映射圖和架構等內容,戰術部分包括實體、值對象、領域服務、領域事件、聚合和資源庫等內容。一個虛構的案例研究貫穿全書,這對于實例講解DDD 實現來說非常有用。

《實現領域驅動設計》在DDD 的思想和實現之間建立起了一座橋梁,架構師和程序員均可閱讀,同時也可以作為一本DDD 參考書。

9.2 進階

領域驅動設計

領域驅動設計方面的經典之作。全書圍繞設計和開發實踐,結合項目案例,向讀者闡述如何在真實的軟件開發中應用領域驅動設計。給出了領域驅動設計的系統化方法,并將人們普遍接受的一些實踐綜合到一起,融入了作者的見解和經驗,展現了一些可擴展的設計新實踐、已驗證過的技術以及便于應對復雜領域的軟件項目開發的基本原則。


10 計算機網絡

10.1 基礎

《圖解HTTP》

本書對HTTP協議進行全面系統介紹。作者由HTTP協議的發展歷史娓娓道來,嚴謹細致地剖析了HTTP協議的結構,列舉諸多常見通信場景及實戰案例,最后延伸到Web安全、最新技術動向等方面。本書的特色為在講解的同時,輔以大量生動形象的通信圖例,更好地幫助讀者深刻理解HTTP通信過程中客戶端與服務器之間的交互情況。讀者可通過本書快速了解并掌握HTTP協議的基礎,前端工程師分析抓包數據,后端工程師實現REST API、實現自己的HTTP服務器等過程中所需的HTTP相關知識點本書均有介紹。

11 數據結構與算法

11.1 基礎

算法(第4版)

Sedgewick暢銷著作的最新版,反映了經過幾十年演化而成的算法核心知識體系,全面論述排序、搜索、圖處理和字符串處理的算法和數據結構,涵蓋每位程序員應知應會的50種算法,全新的Java實現代碼,采用模塊化的編程風格,所有代碼均可供讀者使用。

大話數據結構

本書為超級暢銷書《大話設計模式》作者程杰潛心三年推出的扛鼎之作!以一個計算機教師教學為場景,講解數據結構和相關算法的知識。通篇以一種趣味方式來敘述,大量引用了各種各樣的生活知識來類比,并充分運用圖形語言來體現抽象內容,對數據結構所涉及到的一些經典算法做到逐行分析、多算法比較。與市場上的同類數據結構圖書相比,本書內容趣味易讀,算法講解細致深刻,是一本非常適合自學的讀物。

本書以一個計算機教師教學為場景,講解數據結構和相關算法的知識。通篇以一種趣味方式來敘述,大量引用了各種各樣的生活知識來類比,并充分運用圖形語言來體現抽象內容,對數據結構所涉及到的一些經典算法做到逐行分析、多算法比較。與市場上的同類數據結構圖書相比,本書內容趣味易讀,算法講解細致深刻,是一本非常適合自學的讀物。


11.2 進階

程序員代碼面試指南(第2版)

程序員代碼面試"神書”!書中對IT名企代碼面試各類題目的最優解進行了總結,并提供了相關代碼實現。針對當前程序員面試缺乏權威題目匯總這一痛點,本書選取將近300道真實出現過的經典代碼面試題,幫助廣大程序員的面試準備做到接近萬無一失。"刷”完本書后,你就是"題王”!《程序員代碼面試指南:IT名企算法與數據結構題目最優解(第2版)》采用題目解答的方式組織內容,并把面試題類型相近或者解法相近的題目盡量放在一起,讀者在學習本書時很容易看出面試題解法之間的聯系,使知識的學習避免碎片化。本書所收錄的所有面試題都給出了最優解講解和代碼實現,并且提供了一些普通解法和最優解法的運行時間對比,讓讀者真切地感受到最優解的魅力!書中收錄了大量新題和最優解分析,這些內容源自筆者多年來"死磕自己”的深入思考。提升算法和數據結構等方面能力。

12 網絡編程

12.1 基礎

Netty 實戰

本書中文版基于Netty4.1.9做了修訂。Netty之父”Trustin Lee作序推薦。無論是構建高性能的Web、游戲服務器、推送系統、RPC框架、消息中間件還是分布式大數據處理引擎,都離不開Netty,在整個行業中,Netty廣泛而成功的應用,使其成為了Java高性能網絡編程的卓絕框架。無論是想要學習Spring 5 、Spark、Cassandra等這樣的系統,還是通過學習Netty來構建自己的基于Java的高性能網絡框架,或者是更加具體的高性能Web或者游戲服務器等,本書都將是你的超強拍檔。

13 消息隊列

RabbitMQ 實戰

評論0 贊同0
  •  加載中...
KitorinZero

KitorinZero

回答于2022-06-28 14:34

不管是程序員還是其他什么行業,最重要的當然是努力學習啦,除了努力之外,掌握高效的學習方法、自身的天賦水平、個人的境遇等也是有很大影響的。

成功

努力自己可以控制,只要你有一顆堅持的心、熱愛技術的心,每天學習知識和實際敲代碼,增加自己的技術廣度和深度,只要不傻基本都可以成為大牛。

如果你天天敲代碼卻還是沒有什么提升,那么你就要回頭看下自己的學習方式了,可能你天天做一些淺顯的crud工作,一直重復同樣的技術點,這樣也是沒有太大幫助的,只是提升了你的熟練度。所以掌握高效的學習方式是很重要的,比如先了解行業內有哪些技術點、哪是些自己擅長的有興趣的、有哪些地方有好的課程、怎么查看官方文檔、怎么閱讀源碼等等。

天賦自己沒法控制這個沒辦法,個人境遇雖然也很難控制但是我感覺卻是可以認為影響的,比如你接觸什么樣的人、選擇什么樣的公司、參加什么樣的論壇群等,有可能一個選擇就是對應不同的未來,有時候學會選擇也是很重要的。

以上都是些比較虛的東西,如果你要具體的學習路徑,那么看下你自身目前處于什么水平對應的學習,比如你是新手,那就學習javase的課程、前端js、html、css、數據庫sql,然后就是學習市場上主流的框架像spring系列、mybatis、各種中間件如Rabitmq、redis、maven、git等拓展知識面,接著深入學習某些內容jdk、spring等的源碼、其他偏原理之類的學習技術的本質,基本完成這些也算是個大牛了,后面是當架構師還是技術專家研究方向等就看自己職業發展了。

評論0 贊同0
  •  加載中...
AdolphLWQ

AdolphLWQ

回答于2022-06-28 14:34

謝謝誠邀

從事Java開發已經N年了,想說說對提升的認識。

我其實不擅長寫作(文章中錯誤歡迎指正),所以很多語句都是斟酌再三,改之又改,不斷的修正希望更好的觀點表達清楚。

觀點陳述

未進入這個公司之前,我認為只要努力學習技術就可以了,什么交流、方法論、管理、團隊...都是次要的,但是漸漸發現這種意識不是十分正確的。我們領導是一個愛讀書、愛分享、有自己擅長的方法論...

因此在領導身上學到了很多技能點,將過去工作經驗和讀書過程中的一些感悟相結合,努力形成一套方法論(僅供參考)

成為架構師靠什么驅動?

個人觀點陳述:快速成為一個架構師主要有2個方面:技術驅動和職業驅動(暫且這么叫)

技術驅動,或者說是T型人才(深度、廣度),努力的提升技術,畢竟架構師這方面技能點還是占主要, 工作3年經驗的工程師最常用這種方法,這種認知我覺得沒有什么問題,但是我們的思維一旦固化,即將技術驅動作為唯一的途徑,此時我們很容易陷入迷茫期,迷茫期或者說是瓶頸期往往是3-5年的工程師會經常遇到。大家對于技術驅動很了解,所以此篇不再詳述,其他篇章會有所涉及(也就是全面技能點圖譜),本篇著重說下職業驅動。

職業驅動:用崗位(架構師崗位)驅使工程師快速學習架構師該掌握的技能點,提升架構師水品。

對于職業驅動大家可能不是十分了解,也致使當問到走那一條路線時,大家一致選擇技術驅動。

1.不同的職位有不同的職責,即從事架構師的崗位要比非架構師崗位進步快(大部分)

2.架構師崗位分為高、中、低,待遇也相差甚大,并不是所有的架構師水平比其他工程師水平高,

即沒有架構師的技能水平(自然技能水平相差不是很大)也可以有架構師的職位。

(說白了就是在技能迷茫期,試著找個架構師的崗位)

3.如果你邁出了上面一步,說明你已獲得合適的崗位,但是這只是邁出的第一步,接下來的才是真正驅動過程。

有架構師的職位沒有架構師的薪資不可恥(說白了就是薪資低),但是有架構師的職位沒有架構師的水平此時就嚴重了,

輕則被辭,重則名譽掃地,一蹶不振。

4.人要有危機感,沒有架構師的水平短期不可怕,入職后謙虛求教,快速上手業務,此時你的一天要分成24塊規劃了,每小時都充分利用高效學習,總之就是不“死”便學,娛樂項目建議也暫時放放。彌補自身技能點不足,有學習的環境(即根據崗位所負責的任務也不同),此時不快速進步,還有等什么時候。

5.回歸技能驅動,職業驅動只是幫你完成轉型,歸根到底還是要以技能驅動為主。

說這么多也是希望大家在這被辭的寒冬季、或者找工作的階段正確的擺正心態的同時做好職業規劃。

案例分析

我曾經是待遇最低的架構師(通過職業驅動完成職位轉化),

但是我知道自身技能點的不足,內心懷著對這個崗位的不可褻瀆態度去玩命的學(1-2點前基本沒睡過,致使那段時間脫發嚴重),技能點也快速的提升,對這個崗位有了把控度(也就說學了很多技能點,很多項目遇到的問題很容易解決)。

也成為架構師崗位提升算是比較快的工程師(好的學習環境不提升也難)

有的架構師的水平,沒有架構師待遇此時你們的選擇是什么?

是的,通過調查我們知道一般企業漲薪是在2-3K左右,合適的崗位才能給企業帶來更大的價值,

所以在此我們要感謝幫助我們成長的企業,懷有感恩之心,揮揮手離開吧,此時盡量要果斷堅決(至于原因大家可以討論下)。

有了架構師的水平自然也找到了合適的崗位(此篇終)

正在寫相關系列文章,對于職業生涯有困惑或者不知如何突破的工程師可以參考下,感興趣的可以關注下

評論0 贊同0
  •  加載中...
svtter

svtter

回答于2022-06-28 14:34

這個問題如果改為“Java程序員如何避開中年危機”,也許答題的人會蜂蛹而至,而圍觀的小伙伴也會格外多,因為人對危機總是敏感而響應積極的


“Java程序員怎么提升自己”這其實是一個對每個人而言都至關重要的職業發展規劃問題,準備充分的人生才有更多選擇的機會,沒有規劃、得過且過是導致許多人中年危機的最重要原因,往往很多人會忽略這一點。因此,我認為這個問題極其重要,值得每位工作1-3年的程序員深入思考,如果看到這里的朋友還沒有自己的職業規劃,希望你可以花些時間,好好思考并規劃自己的將來。


我們先來看看JAVA程序員的幾個成長階段:


第一階段:1-3年

這一階段,我們走出校園,邁入社會,成為一名程序員,正式從書本上的內容邁向真正的企業級開發。我們知道如何團隊協作、如何使用項目管理工具、項目版本如何控制、我們寫的代碼如何測試如何在線上運行等等,積累了一定的開發經驗,也對代碼有了一定深入的認識,是一個比較純粹的Coder的階段。


第二階段:3-5年

這是程序員的分水嶺,如果在這個期間,除了完成本職工作之余,基本不會研究別的東西,這些人永遠就是個Coder,年紀大一些勢必被更年輕的人給頂替;如果你能在寫好代碼的同時,還熱衷于研究各種技術實現細節、精進1-2門技術,技術上有獨當一面、快速解決問題的能力,并且清楚自己未來的發展方向,你將從一個Coder逐步走向系統分析師或是架構師,隨之時間的推移,你會成為項目組中不可或缺的核心人物。


第三階段:5-10年

這又是另一個門檻了,轉行或是繼續做一名程序員就在這個節點上。如果在前幾年就決定在技術進階路徑上精進并且為之努力的話,那么在這個節點上,你必然會成長為一名對行業有著深入認識、對技術有著深入認識、能從零開始對一個產品進行分析的高級程序員,在公司的title基本都是CTO、技術專家、首席架構師等最關鍵的職位。

Java程序員的技術提升路徑

1、研究源代碼

有時間就多研究Tomcat/Resin/Jetty的源代碼;


2、 學習相關知識

譬如,高性能/高并發,并在項目中應用實踐,提升技術廣度:

  • Socket編程
  • 多線程的知識
  • I/O庫和異步I/O庫
  • TCP/IP 協議


3、 程序員進階必看書籍

我早前羅列的不同階段的java程序員進階必看書單,詳見頭條號鏈接:https://www.toutiao.com/i6461884735961432589/

4、 多向身邊的大牛學習

通過學習別人多年沉淀的知識與經驗,能夠讓自己少走彎路,更快達成目標。


5、多爭取項目實踐機會

知識需要經過項目演練,最終才能沉淀。

每個人的情況不同,學習方法也有差異,希望程序員們都能因時因地制宜,找到一條適合自己的進階學習路徑,希望程序員們都能找到一條適合自己的學習路徑!

PS:花了2小時碼字,覺得有點用的同學,歡迎點贊支持...送你【BAT架構學習資料合集80期】,關注優知學院,回復關鍵字架構立即領取。

評論0 贊同0
  •  加載中...
tinyq

tinyq

回答于2022-06-28 14:34

1:不停的寫代碼

2:寫完不停的總結

就這么簡單

評論0 贊同0
  •  加載中...

最新活動

您已邀請0人回答 查看邀請

我的邀請列表

  • 擅長該話題
  • 回答過該話題
  • 我關注的人
向幫助了您的網友說句感謝的話吧!
付費偷看金額在0.1-10元之間
<