技術人的年終總結

java編程技術樂園 發佈 2020-01-15T08:13:44+00:00

相信大家看過不少雞湯,毒雞湯,各種態度都有,既然都有案例,那麼說明就不該討論努力的問題。結論分析方法如果給定一個落後的鄉村作為條件,如果說這個地區癌症率高,我們就會想到是經濟條件差飲食,醫療等落後導致,如果說這個地區癌症率低,我們就會想到是環境污染少導致的。

點擊上方☝Java編程技術樂園,輕鬆關注!及時獲取有趣有料的技術文章

文章很好,耐心閱讀,記得點讚和關注哦~



關於思想


教科書式的努力

努力很重要,這個觀點從小學到高中都在強調這個。如果寫作文,很多經典案例,季羨林的早起讀書,鄧亞萍依靠努力克服身體缺陷,貝多芬的失聰後的創作……感覺我的高中作文就是典型的雞湯文。
下面再來一段科比的

記者問科比:「你為什麼能如此成功呢?」
科比反問道:「你知道洛杉磯凌晨四點是什麼樣子嗎?」
記者搖搖頭:「不知道,那你說說洛杉磯每天早上四點鐘究竟什麼樣兒?」
科比撓撓頭,說:「滿天星星,寥落的燈光,行人很少。」

後來程式設計師模擬了和科比的對話

程式設計師問科比:「你為什麼能如此成功呢?」
科比反問道:「你知道洛杉磯凌晨四點是什麼樣子嗎?」
程式設計師:「知道啊,那時候我還沒下班」
科比: ……

你面對運氣超好的楊超越。是否能和她好好聊聊努力的重要性。
你面對劉秀,你問問那場隕石是不是他自己努力得到的。
相信大家看過不少雞湯,毒雞湯,各種態度都有,既然都有案例,那麼說明就不該討論努力的問題。

判斷合適場景,判斷時機,以最少的努力達到相同的效果。這個才是值得思考的。沒有合適的場景和時機,努力起來很費力的。如果沒有合適的場景和時機,那麼努力與否看個人。場景和時機的如何判斷,推薦可以看看《易經》。

結論分析方法

如果給定一個落後的鄉村作為條件,如果說這個地區癌症率高,我們就會想到是經濟條件差飲食,醫療等落後導致,如果說這個地區癌症率低,我們就會想到是環境污染少導致的。
明明是同一個條件,給不一樣的結果,我們就會想到不同的部分來作為誘因。我們分析自己的時候往往也是這樣,從結論出發思考很簡單,但是忽略很多條件,以上面的為例,飲食條件差是不好的,環境污染少是好的,那麼同時作用,為何導致結論才是值得思考的。起碼是一個調查,歸因的過程,需要屏蔽結果來列出條件,做推演。推薦丹尼爾卡尼曼的《思考,快與慢》。



關於技術

對於技術的思考,我的感覺就是合適。
通過一些案例來聊聊。

全能工程師

我的一個朋友,說他們的研發很厲害,一個人搞定了前端和後台。我感覺一個人能幹這麼幹,說明項目人手是肯定不夠的,而且應該做出的是一個符合當前場景的代碼。這裡說符合當前場景,很重要。例如業務好了,tps超高,客戶說介面太醜等等,那麼更多專業一些的需求出來的時候,是否應該交給專業的美工,前台,後台,dba呢。全能肯定是有代價的,有點類似cap一樣,是互相制約的,一定是選擇削弱了部分才能達到的。這裡不需要抬槓,肯定會有各方面最終都可以達到一定程度的人,例如可以使用時間積累,3年前台,3年後台,3年dba。你差不多可以和3個2.5年的組合一起比了。
一個技能達到一種層次是需要時間的消耗的,和做產品不一樣。畢竟我們可以通過cv等手段來實現功能。這個東西叫做技術債務。這個借與不借,看當時的情況來選擇。畢竟有一些債可能是不用還的,例如功能的廢棄和重構,直接可能是新的債務。

調優

說個很有意思的事情。對方問我是不是hbase jvm堆內存給的越小,gc每次時間就越少,能滿足心跳,是不是可以不用調優了。這確實是一個很有意思的問題,通過減少堆內存來減少gc的壓力。講道理,正常人都是調整gc算法,以及停頓參數,回收觸發的比率等來滿足心跳的,他的這個做法倒是解決了心跳的問題,至於程序還是否能正常提供服務,就得看場景了。
很多人和我說從來沒做過jvm參數調優。調優是一件比較龐大的事情,業務調優,結構調優,代碼調優,參數調優。能作為痛點的調優才有價值,優先調整痛點,這個思路很正確,例如本來就是db查詢慢,在db上優化足夠了,相比之下jvm貌似就可以減少,但是hbase的regionserver這種程序是有心跳的,gc停頓的時間必須在心跳設置範圍內,否則regionserver就掛了。
調優這個事情,其實是在調整痛點,優先解決痛點的決策很正確。例如健身,你練大肌肉群,時間少見效快,相比之下練6塊腹肌就沒那麼重要了,主要還是難練,而且沒有其他大肌肉群的襯托,也很難看。

底層原理

《倭寇的蹤跡 》中如影如響簡直是個神技。但是裡面的高手並沒有自己動手,而是告訴其他人,當人的影子到那個位置就出手,不怎麼會武功的人記住這個位置,打趴了一堆高手。
我想了想底層原理就是上面的如影如響的技能。如果我是想搞創新那麼是必須學會的,但是如果是想應用,似乎出個操作手冊,其他人滿足這個手冊操作就行。例如上面例子中的要記住的那個位置。
簡單說,假設我不知道B+樹,但是給我一個mysql的建立索引的規範,只要規範寫的足夠全,在索引這塊,你和知道b+的很難提現出區別。
底層知識的遷移作用很強,有點類似左強定律,數據結構的變動小,組合組合就可以出現新的,知識的遷移就提現的比較重要,可以去看看我介紹底層原理的部分,都會圍繞遷移,相似來的。

註:現在面試或多或少都喜歡問底層,你就算遷移不了,記下來過面試總是好的。

關鍵字: