道在中國哲學中,是一個重要的概念,表示“終極真理”。此一概念,不單為哲學流派諸子百家所重視,也被宗教流派道教等所使用。大道至簡是指大道理(基本原理、方法和規律)是極其簡單的,簡單到一兩句話就能說明白。所謂“真傳一句話,假傳萬卷書”。這便是大道至簡的基本釋義。
但是現在很多作者寫書是為厚而厚,原創精華總是很少。而這本《大道至簡》卻是作者從事十年開發工作的總結,雖然不厚,但卻閃爍著獨立思考的光芒。要知道,大道至簡,悟者天成。
作者在第一章通過愚公移山的故事介紹了編程的根本是順序、分支和循環,當中提到除了先天智力問題或者后天懶惰不思進取的人,都能學會編程,程序=算法+結構。所以這一點給我們學習編程提供了信心。像我們這些編程小白總是覺得代碼好像是神作,總會在想自己能不能學好,編程適不適合自己。讀完這本書,我們就可以放下顧慮,輕裝上陣了。
第二章則用愚公移山“碎尸擊壤”與李冰鑿山“積薪燒之”來提出懶人造就了方法,人的精力終歸是有限的,提出新的方法,才能突破人類精力的極限。當然這并不是說我們不需要勤奮,而是說我們在勤奮的基礎上可以增加效率。
我們所謂的編程,其實就是給計算機布置任務,我們只需掌握計算機可以聽懂的語言。但是,首先我們自己要搞清楚事情的本質,把事情分析清楚,把事情之間的邏輯關系和依賴關系搞清楚。這樣我們才能讓計算機理解我們,并為我們去工作。
在書中,作者還講解了團隊的重要性,以及團隊管理的方法,效率,意義。軟件工程里沒有個人英雄主義,我們必須融入團隊,聽從安排,彈性分工。這點對于現在的我們可能實用性不高。但是在未來,當我們合作工程時,你會發現書中一字一句,皆是至理名言。
同樣,讀完大道至簡你會發現,所謂的主流語言全是無稽之談。語言只是工具,我們可以去學習任何一門語言,但是真正重要的是我們如何把語言變成我們需要的程序。所以我們在學習語言的過程中更重要的是培養自我學習的能力,這樣當你將來工作的時候需要用到不熟悉的語言時,你能說的就不會是我不會,而是我馬上學。
《大道至簡》,與其說它是一本書,不如說它是一種指引我們編程的思想,它就像一個幽默詼諧的老師,總結了我們在開發過程中前人的經驗和錯誤。讓我們更深刻的了解了軟件工程這個專業,以及外界對于我們的基本需求。
在大一時,我們的編程其實根本不足以稱為編程。我們只是去填充一個模型,達成基本的輸入輸出。我們從未去考慮如何自己去設計,優化。我們更多的是在按部就班的應付。
讀完這本書之后,我們更應該明白大道至簡的真正含義,我們必須從跟隨前人經驗的套模板轉變為追尋自己的道。你真正悟得的,才是你編程所需要的“道”。我們必須學會用真正的軟件開發的思想去思考問題。大道至簡,知易行難。望共勉。