Java程式設計師如何突破成長的瓶頸期?在下五毒散人2019-02-20 08:28:36

很多人做Java開發2,3年後,都會感覺自己遇到瓶頸。什麼都會又什麼都不會,如何改變困境,為什麼很多人寫了7,8年還是一個碼農,工作中太多被動是因為不懂底層原理。公司的工作節奏又比較快,難有機會學習架構原理,也沒人教,所以這個時候,學習架構原理,擴充套件思維,對自己以後職業生涯尤為重要。

同樣公司的兩個新人,一個新人一點就通,學東西很快,有的人,學東西很慢,也很痛苦,處處都是新技術。 為什麼?因為那個人懂原理,萬物都有規律,掌握了規律學其他東西原理相通,一觸就會,不懂原理就會處處碰壁,學習很慢還很折磨。

1。與他人分享經驗

我使用社交媒體和網路論壇得到的最大好處,就是我可以與其他開發人員分享經驗,並且從他們分享的經驗中不斷學習。一個很好的例子是Hacker News。我喜歡參加這個社群,因為可以獲取廣泛的意見和經驗。你可能在與某人談論某種特定的技術,開發這項技術的那個人可能突然露面,加入對話。以這種方式進行交流是一種有效的學習手段。與更聰明的人交談是消除受困感覺的一種好方法。當然你得保證你謙虛的態度,學會傾聽別的意見選取適合自己的方法不斷的學習。否則,你不會得到多大的好處。

2。別害怕失敗

我過去通常不喜歡分享程式碼。我討厭分享程式碼,我擔心別人會因程式碼編的太爛而批評我。我之所以對自己的程式設計能力覺得毫無把握,是因為我希望可以做得更好。害怕別人說三道四,這會使我想在一個角落裡隱藏起來。事實上,每個人的程式設計水平都不咋樣。大家都是一個貨色,水平再高的程式設計師也會有一段很水的程式碼。成功的程式設計師知道,只有透過失敗,才能成功。高水平的程式設計技能是由糟糕的程式設計技能不斷改進而來的。對失敗的恐懼會封閉我們的思想,任由沒把握的感覺佔上風。我們應該接受這個事實:學習就是錯誤不斷的過程,不能任由恐懼阻礙了我們前進的腳步。只有學到足夠多的東西,你才會進步。因此,為了成功,只能先失敗。

3。對自己要有耐心

我不敢承認這點:我在過了很久後才明白了這個道理。你對自己要有耐心,急於求成可不行,也就會存在這種可能性:自己把自己搞得筋疲力盡、導致倦怠。我不想讓你遇到這種情況。

那怎樣才能對自己更有耐心?要明白,凡事都需要時間。我們要分清輕重緩急。我想要提高Java技能,於是,我決定先致力於加強JavaJVM技術。分清輕重緩急還意味著,我們還要設定目標。設定目標很棘手。我在這方面學到的一個道理是,我們的估計總是錯的,實際上任務要花更長的時間才能完成。有耐心意味著我們會重新考慮時間表,相應地進行調整。如果,利用好時間對來說會有意想不到的收穫,我們應該要像管理寶貴資源那樣來管理時間。

Java程式設計師如何突破成長的瓶頸期?

Java程式設計師如何突破成長的瓶頸期?千鋒長沙2019-02-20 11:06:59

謝謝邀請,從到現在從業已經快7年啦,一直在Java的WEB開發行業混跡。我不是牛人,但是自我感覺還算是個合格的程式設計師,有必要寫下自己的經歷,給自我以提示,給剛入行的朋友提供點參考。

使用Java——>深入理解Java積累經驗————>獨立設計分析能力————>獨當一面的多面手!

因此,必須學習:

列舉一些技術

比如對集合類,併發包,IO/NIO,JVM,記憶體模型,泛型,異常,反射,等有深入瞭解,最好是看過原始碼瞭解底層的設計。比如一般面試都會問ConcurrentHashMap,CopyOnWrite,執行緒池,CAS,AQS,虛擬機器最佳化等知識點,因為這些對網際網路的企業是絕對重要的。而且一般人這關都過不了,還發鬧騷說這些沒什麼用,為什麼要面試。舉一例子,在使用執行緒池時,因為使用了無界佇列,在遠端服務異常情況下導致內層飆升,怎麼去解決?你要是連執行緒池都不清楚,你怎麼去玩?

1。 資料庫再舉一例,由於對ThreadLocal理解出錯,使用它做執行緒安全的控制,導致沒能實現真的執行緒安全。所以作為一個拿兩萬的JAVA程式設計師這點基礎是要有的。最常用的是Oracle了(當然銀行專案等需要DB2等),熟練掌握使用儲存過程,觸發器等;

2。 UML

專案中經常要寫文件,專案經理的基本功,程式設計師走向設計的基本功;

3。 設計模式

這個建議多看吧,在閱讀原始碼中體會;

4。 linux系統

需要掌握常用的linux命令————部署在windows作業系統上的專案很少吧。

其他就不多說了,大家可以補充。

學習上,興趣是最大的老師;專案驅動也是不錯的選擇,總之,不學習不行。

5。現今面試基本都會問到這些:多執行緒 、高併發 、IO、 NIO、 分散式、 JVM原理與調優 、各種框架(原始碼級別)、 SQL效能最佳化、 搜尋引擎、 規則引擎、叢集、 負載均衡、 Tomcat效能最佳化、 Nginx、 RabbitMQ、 Redis、 Memcache、 MongoDB、 AngularJS、 Activity工作流、 WebService、 Https、網路通訊、Linux還有各種設計模式。

所以為了將來不被問倒,那就需要現今的努力學習,增強自己的力量。

Java程式設計師如何突破成長的瓶頸期?javaadu2019-02-20 10:41:58

要解決這個問題,首先要說清楚突破瓶頸之後的方向有哪些?如果技術做技術,Java程式設計師的發展方向有兩個:(1)結合業務,做相關業務的領域專家;(2)專精技術,做相關技術領域的技術專家。這兩個方向怎麼選,要結合自己的優勢、劣勢和興趣。

以做技術專家為例,要做非常底層和基礎的技術點,越底層的越基礎,越基礎的受眾面越廣,越基礎的越不容易被替代,對於Java領域來說,那就是JVM虛擬機器;對於雲計算領域來說,那就是Docker、網路、Xen/KVM虛擬化等技術。

再講一些學習的規則

1。 知行合一,完成學習閉環:我們要結合自己現在工作中能實踐的場景去學習,學習了什麼東西馬上就要用在實踐中驗證,驗證過了要做總結,總結過了要分享出去,這樣才能完成一個完整的學習流程。

2。 持之以恆:不管做什麼事情,都沒有一蹴而就的,持之以恆得做一件事非常重要。