《Java特種兵》1.4 功底概述
1.4 功底概述
本節是本章的“道”第一次總結胖哥會盡量簡單說明。
1.4.1 什麼是功底
古人有句話“心有靈犀一點通”形容相互之間的交流十分默契而融洽的基礎在於彼此十分了解對方。在專業領域上要做到這一點就是要深深地了解技術以及它的內在。
武俠中有一種武學叫“九陽神功”也有一種武學叫“易筋經”等它們之所以很神奇是因為它們都有一種不變的特征就是學習了這些武功後再學習任何武學都很快而且可以比別人學得更好。同時這些“武學秘籍”也有一個共同的思想就是以內功修為為主而不是以招式為主。
胖哥寫的書自然不敢與這些“神”一樣的“秘籍”相提並論胖哥隻是借此告訴大家內在修為將會決定你在技術這條路上能走多遠。
胖哥無法幫助你成為“張無忌”一樣的絕世高手但是一個真正的老A也同樣需要有很深厚的內功修養否則當新的事物出現時你會跟不上潮流“out”了正所謂練武不練功到老一場空。
在功底方麵我們還需要做到知其然並知其所以然形成一種由知識引導思維由思維引導答案由結果印證理論不斷迭代的過程。在這個過程中對問題的認識會越來越清晰自然在見解上也會越來越有道理同時也會對自己所在的領域充滿自信。
1.4.2 功底有何用途
第1節講解了String的故事第2節講解了關於一些算法的故事第3節我們開始玩數字遊戲是否覺得自己用了很久的Java好多東西還不知道當然如果你認為胖哥說得過於小兒科那麼就跳過去吧。
在前麵的這些知識中很多技術本質源於生活很多意想不到的事情發生了這一切在本書中才剛剛開始或許後續章節中的一些內容會更加讓你感覺出乎意料。這些原本認為是真理的內容被徹底顛覆在實際的場景中也許就在不經意之間你會留下一個很難琢磨的Bug或者根本不會認為是Bug的Bug然後讓別人來解決這個Bug。正所謂我們不怕犯錯怕的是不知道什麼是錯更怕的是我們一直堅信正確的事竟然是錯的。
很多時候印證了一個通過測試得到的經驗並不那麼靠譜胖哥的例子也許已經令你感受到測試場景可能會決定許多不同的結果。在不知道本質的時候僅僅通過某些特定的測試場景是不能作為真理來指導開發的最多隻能是指導同樣場景下的開發。測試通常可以幫助我們去理解本質以及在知道本質後它是一個印證的過程。
知道了內在就像知道了String的編譯優化、String的常量池、String的內存結構知道了常規的算法知道了生活中的對應方法我們發現它並不是那麼難關鍵是你是否願意去看它的本質。其實看本質對於許多程序員來講是一件擁有快感的事情因為生活的現實世界在自己的工作中找到了靈感但是它又不像人性那麼複雜它比生活更加簡單。
隻是我們過於看中技術本身過分仰望技術本身“容易陷入深淵而難以自拔”甚至有人喜歡鑽牛角尖對於這樣的同學來講胖哥隻能說“苦海無涯”你需放下才能找到新的方向需解脫和放下才能超越自我。
總的來講胖哥認為隻有不斷顛覆自我找出本質才能將一些問題連根拔起。而不是過分相信自己曾經做過的實驗和別人說過的所謂真理這些都僅僅作為參考而已。
1.4.3 如何磨練功底
功底並非天高任何人隻要願意能靜心就都行
大多數初學者對能做出一個例子或做非常多的例子引以為傲其實這並不是壞事隻是學習後一定要“落實於根本回顧與總結”切勿讓“猴子掰玉米”的故事發生在你的身上。換句話說浮躁的心態是“猴急”什麼都想要去學習結果學了就丟了沒有自己知識的凝固沒有自己的總結和筆記。
首先要能靜心靜心才能落實立足於當下要知道學海無涯、浩瀚無邊並且社會在發展知識在進步我們的確需要不斷學習但是要從當下做起。
當我們靜下心來就可以開始總結了總結啥呢感想嗎也可以不過老這麼總結就不像IT從業者了而像一個感情豐富的編輯。我們剛開始做總結有點像記筆記就是將老師所講或自己所學記錄下來按照條目一條條地陳列。但是這不算總結隻能算是筆記這些內 容在許多的書籍和網站上可以找到更好的內容而總結應當包含自己的理解和感受應當能闡述學習和理解過程中的痛苦。
在技術領域你可以總結思路總結所學所用總結所遇到的問題總結為什麼總結解決問題的手段和方法分析問題和定位問題的思路總結在解決問題時所用的知識總結技術點上是否還有相關的方案以及對比相關知識的優缺點。
在業務上總結自己最近做過些什麼那些是大事還是小事自己所做的事情和幾個月前比提高沒有效率上提升沒有時間安排如何如果加班太多能否不加班自己的工作效率是否可以進一步提升以及如何提升通過技術完成某些自動化還是基於時間管理來更合理地安排自己未來幾個月準備或希望去做什麼樣的事情是否有能力去參與更重要的職責。
當然我們不是每天都要去做總結那樣會很浪費時間。
即使每天去做總結也是一個小總結而已如果我們非常忙那就沒必要這樣做。但是當我們看到一篇比較好的文章時可以先初步看看內容把它記錄下來寫到總結中表示想要去學習的內容等到閑暇之餘去看看再進一步來總結或許會更好。
本節我們用一個簡單String等值對就能說出一大堆基礎知識也能說出類似的方法相應的算法也能聯想出來你不覺得這樣的由小的點入手引導相關知識的方法也是一種不錯的學習方法嗎
工作與學習本身並不矛盾工作本身就是一種學習隻是它更偏重於實踐基於工作驅動學習一個新東西會更快一些不過大多在使用層麵。當遇上了稀奇古怪的問題時就想要去看看內在的原理了此時去看看源碼你會更加有動力。這樣的碎片化學習方式其實也是一個積土成山的過程達到一定程度自然是“量變發生質變”那個時候再去看看“牛人的秘籍”就是一種交流一種知識梳理的過程。
也許剛開始我們無法做到很深入的細化與知識聯想尤其是某些相關技術點需要很大的知識麵才能把它講清楚技術需要理論理論又需要技術這是一個死循環我們便開始產生了“雞與蛋”的糾結問題許多人在長期的糾結中選擇了原地踏步也就是相當於放棄了。其實我們需要的還是立足於當下業務盡自己所能去挖掘通過業務細化驅動技術的發展盡我們所能廣泛聯係知識整個學習過程是一個迭代的過程功底是逐步提升的不要糾結於死循環的問題。
如果你希望自己從事技術這個領域就要學會相信自己擁有一定的自信有信心不是說自負而是有信心去麵對困難。當你有一定成就的時候不可狂傲要知道天外有天人外有人世界上沒有最高隻有更高即使是今天的最高明天也會有更高出現。而我們的功底將支撐自己的這座山峰我們更加願意去追求自己的極限追求自己理想的巔峰。
最後更新:2017-05-23 14:32:43