1. 程式人生 > >《Java特種兵》1.8 老A是在逆境中迎難而上者

《Java特種兵》1.8 老A是在逆境中迎難而上者

本文是《Java特種兵》的樣章,感謝博文視點和作者授權本站釋出

1.8 老A是在逆境中迎難而上者

小胖哥雖然不是一個“傳道者”,但是喜歡小小論道,因為在人生的道路上,很多時候你我都會面臨許多糾結的事情,而這個時候我們的態度會決定命運,而道就是道理和方法。

◎ 作為“程式設計師”,每天被要求修改程式碼是否會煩躁不堪,甚至覺得失去工作的價值?當有人說你的程式碼有很多Bug時,你會像小鳥或老鳥一樣反應嗎?

◎ 作為“架構師”,成天被程式設計師說這裡(那裡)不好用、效能不好、伸縮性差、太重等,而程式設計師可能並沒有理解框架的真正意義,你是否會糾結?你應該如何去面對和解決?

◎ 作為“經理”,要被客戶罵,又無處發洩,還要聽下面人的抱怨,你有一顆強大的內心世界嗎?

有很多事情只可意會不可言傳,對於大多數事情都需要你我修煉內心世界。大家可能都看過一些特種兵的電影或故事,老A們通常會面對常規兵種沒有遇到過的困難和絕境,但他們總能找到絕處逢生的道路,這就是老A的本色,老A除了要練好基本功外,擁有面對逆境的心態和戰勝困難的決心是十分重要的。

我們在解決問題時,不僅要學會面對成功,而且要學會面對失敗與困難,這樣才會進步,如果有人說他沒有失敗過,只能說他不願意去承認自己的過去而已。我們都會在成功、失敗、困難的過程中不斷交替輪詢,對於許多深入問題的看法,也不斷在模糊與明瞭中輪詢(就像圖1-10所示的太極圖那樣)。在這個過程中只要願意去堅持和思考,都會有自己對人生的理解和豐富的經驗,並且能跟上社會的潮流,經歷從量變到質變的過程,以達到境界的提升。

CLUQ(0{}B~~AEOKW0W)Y127
在逆境中敢於迎難而上的老A們,除了擁有信心戰勝困難以外,也擁有極強的功底和快速學習的能力。提到學習能力,在不同的部落格、網站、論文、通訊群裡面你能看到不少人提出的學習方法,而且每個人總結出來的學習方法都會有些不一樣的地方,即使同樣的學習方法,你也未必全部理解它們的意思。胖哥絞盡腦汁寫出下文,希望你能看懂真正意義,能得到一些幫助。

每個人在不同的階段應當有不同的學習方法,不能一概而論。提到學習方法,還是一句老話:多看、多練、多思考、多練習、多總結而對於這句老話,胖哥的理解如下。

□ 多看

看什麼?看別人如何寫程式碼,如何分析和解決問題,用到了什麼技術,如何面對工作的壓力,如何為人處事,如何協調資源等。

怎麼看?周圍都是你的同事,同事中肯定有高手。網上有你的朋友,朋友中肯定有佼佼者。你會用到許多開源框架,其中肯定包含了許多經典的程式碼和思想。

□ 多練

多練,但是很多人找不到方向,應該練什麼?這是問題的關鍵,也是初學者陷入迷茫的一個重要原因(很多已經有一定工作經驗的人也會陷入這種迷茫)。

有些時候看到別人寫的程式,自己什麼都想練習,什麼都想學習。其實要知道,無論別人寫出多麼優秀的程式,幹出多麼大的事情,這並非一朝一夕之事。

需要做的是立足當下,找到自己的進步點,而不要好高騖遠。什麼是立足當下呢?

立足當下就是找到自己的興趣,而非別人的興趣;找到自己的業務挖掘點,而並非別人的業務(並不是說不去關注別人所做的事情,而是一種經驗的交流,不要老覺得別人碗裡面的飯要香一些)。

興趣建立在你對所解決的問題的價值是否理解上,興趣可以給你帶來不錯的收入,興趣是你可以處理一些周圍人處理不了的問題,興趣是你擅長的點是否能夠得到發揮等,其實興趣是自己挖掘的。

初學者一定要多練習,即使是練習程式碼,也是很好的,達到一定程度再思考都可以。即使是水平很高的人,也會多練習,只是練習的程式碼不一樣罷了。練習可以讓我們對問題有更多的感性認識,許多問題在練習後自然會逐步變得清晰起來。在練習的基礎上,才會進一步有理性認識。

□ 多思考、多練習

經過多練習,很多人會走偏方向,進入一個“技術控”的死角里,因為“對技術的控制”會成為一種樂趣。“技術控”如果“深陷泥潭、難以自拔”,最終可能是被技術控制,會被技術牽著鼻子走。

這個階段我們需要更多的思考——這種技術有什麼缺點?我們用它能解決什麼核心問題?相關的技術有什麼?它們有什麼區別?

當我們深入地去學習一樣東西的時候,會自然而然地需要去學習另外一樣東西,這就是知識之間的串聯,碎片化的學習並非完全碎片化,隨著學習不斷深入,知識自然會串聯在一起。

在練習、思考的基礎上還要如何深入?各類網路部落格、官方文件、原始碼、書籍都是積累的關鍵要素,當資料很多的時候要學會挑關鍵點。

什麼是關鍵點?我們關注的點就是關鍵點。其實關鍵點就是你最想要知道的一個點,這種關鍵點對不同層次的人會有不同的劃分概念,它可以細到一條程式碼怎麼寫,一個二進位制位在機器內部如何處理,也可以粗到總體架構是怎麼回事,這完全和你的工作相關,同時也與你對工作的理解程度相關。這是一個積累的過程,知識和業務體系越“通”,想要找到關鍵點就越容易,所以學習、思考、時間是一套不斷迭代的“組合拳”。

思維上我們要去放縱擴充套件、體系化擴充套件(但不要鑽牛角尖),在擴充套件的過程中會迫使自己去學習相關的許多知識,而且這些知識會刻骨銘心,隨著知識不斷地串聯化,也會逐步形成體系。如果有一天你發自內心地認為“一切源於基礎思想和生活方法”,這時你再看高手們的書,或許就是一種知識的梳理過程和經驗的交流。

□ 多總結

一個人不論學習多麼努力,多麼會思考,但如果他的知識沒有沉澱,終究會丟掉一些東西。

何時沉澱?沉澱什麼?這是我們不斷摸索的東西,胖哥也認為沒有定論,如果你認為它對你未來的發展是有幫助的,或者說你認為它可以幫助你提高水平或擴充套件知識面,那麼你就將它沉澱下來。

每天我們有了一個小沉澱,每週就會有點小總結,每月就有一些感悟,每季度就會發現幾個月前的自己是那麼的“幼稚”,那麼自己就真的成長了。經過1年、2年的堅持,你可能會比別人知道得更多,也深入了很多。

也許有人說無論你怎麼沉澱都沒有用,始終在原地踏步,幾年後還是一個樣。那麼你就要想想:在總結的過程中是否考慮過方法有沒有問題?或許自己始終在沉澱那些很簡單、很容易的東西,僅僅是為了“記錄”而缺乏自己的見解;或許在總結的過程中沒有去考慮如何做得比以前更好。當然如何總結是個人的自由,胖哥無法干預,每一種總結都有它的價值所在,即使是“面”上的擴充套件總結,只要是沒有曲解基本的道理,仍可以“引導他人”成長。

什麼時候需要去沉澱知識呢?當你解決了問題時,當你學習到問題的本質時,當你看到了以前看不到的東西時,當你覺得值得去總結時,長期堅持總結是厚積薄發的基礎,這是亙古不變的道理。從量變到質變取決於在總結的過程中你能否從某個點去突破和深入,也許就差那麼一點點兒,當發生質變後在對待問題的態度和方法上會有一個更加廣闊的空間,這就是我們通常所說的“茅塞頓開”。

沉澱什麼?我們不僅要總結知識點,也要總結方法、手段、心態,以及身邊可以深度挖掘的業務。

接下來的幾章將會真正介紹Java的一些基礎知識。