開發者眼中的“道、法、術、器”

程式猿DD發表於2021-08-13

“道、法、術、器”,出自老子的《道德經》,是我們老祖宗的智慧結晶。經過了兩千多年的歷史,細細想來,依然是那麼具有深意!

今天我就結合開發者的視角,給大家聊聊開發者眼中的這四個層面!

如果你現在正碰到職業發展的瓶頸,那麼可以看看下面的內容,也許會有所感悟和幫助。我們將分別從“道、法、術、器”,聊聊我們在這四個層面上的不同表現,重新審視下目前的你所付出的努力都集中於哪一層,並思考接下來更應該從哪點去進一步提高更有價值?

“器”

什麼是“器”?假設,現在要開發一個電商網站,我們可以用什麼去實現?可以用Java、可以用PHP、可以用Go… 我們可以聽到很多答案。而這裡我們所說的各種程式語言,就是“器”,是一種工具。

“PHP是世界上最好的語言”,這是所有程式設計師都知道的一個梗,因為這句話就是關於最底層的“器”的爭論,由於爭論的點很基礎,所以就被廣為流傳。

那麼這類問題是否有最優答案呢?縱觀所有成功案例,你會發現各種語言都會出現,所以在“器”問題的爭論上往往並沒有標準答案。

所以,什麼是世界上最好的語言,這是一個永遠不會停止的爭論。

“術”

繼續思考,為什麼"什麼程式語言最好"這樣的問題不會有標準答案呢?

因為“器”是一種工具,工具能否發揮作用還取決於使用它的人。而"術"就是如何使用"器"的方法。所以,拋開"術",光靠“器”來比較是否能完成某個目標,是很難斷定結果的。

比如:即使Go在網路程式設計方面很有優勢,但如果你讓一個初學者來實現一個複雜目標的時候,與一個資深Java開發者來實現做比較,僅僅依靠“器”的優勢,是不一定能戰勝雖然“器”上有劣勢、但“術”上存在優勢的Java開發者的。

所以,對於做好某件事來說,"器"與"術"都很重要!要成為一名好的開發者,"器"與"術"是必須雙修的。

“法”

那麼如果選擇的“器”有優勢,開發者的“術”也到位,就一定能做很好的達成目標嗎?那也未必。

這就到了“法”的級別,這個級別我們更關注於路線。什麼是路線?我們那架構的觀點去看,可以具體到如何根據成本去演進式的利用“器”與“術”來逐步達成目標的路線設計。

再具體一點,比如:架構路線的選擇。有的可能架構師可能一開始直接緊跟潮流,選擇微服務的架構風格來做;而有的可能因為成本跟不上,會選擇單體應用開始,逐步的演進到分散式架構來做。

這就是“術”上的決策,你為了實現目標,所選擇的不同發展道路。好的發展道路,可以讓你的團隊前進沒那麼陡峭,一步一個腳印,最終達成目標。不好的發展道路,可能中間還會有下坡路,延誤業務的發展。

“道”

繼續上升,如果我們在“法”、“術”、“器”上都有很大的優勢,那麼“道”又是什麼呢?

我們技術的目標是啥?是不是服務業務?只有業務越做越好,我們才能獲得更大的收益與成就?那麼業務與什麼有關?雷軍說過“要順勢而為”,所以,大方向,大趨勢就是我們要關注的“道”。

關於“道”,最好的例子現在就在發生,如果當初你選擇了一家做K12課外培訓的公司,就算“法”、“術”、“器”都很棒。這個時候,也可能正在面臨被裁員重新找工作的情況。還有一些深刻的例子:想想那些網際網路公司上市時候的造富時刻,這些人中間,他們的“法”、“術”、“器”都比你棒嗎?

小結

關於“道”和“法”,是不是你是不是很少關心?甚至有時候覺得他們很虛?所以,大量的時間都花在了“術”和“器”上?

我們不斷的花大力去學習各種“器”:Java、Go、Python等等;不斷的花大力氣學習各種“術”:海量資料的分表分庫、多級快取的資料讀取加速等等。

很快,我們就會發現道瓶頸了,而接下來能做的,其實就是在“法”與“道”的突破上。

  • “術”方面,你要去積累更多的經驗,在“法”上做突破,學習和總結更大的架構思維和管理思維,才能繼續往前進。
  • “道”方面,你要去多瞭解市場環境,去預測大趨勢,如果能夠順勢而為,選擇對了大方向,就算你的主要工作依然還在“器”和“術”上,你也會比其他“道”上的兄弟獲得更高的收益。

說了那麼多,相信聰明的你一定也有所感悟了!如果你有任何想法,不妨留言跟大家一起分享一下吧!

歡迎關注我的公眾號:程式猿DD,分享外面看不到的乾貨與思考!

相關文章