《大道至簡——軟體工程實踐者的思想》讀後感

haoyinuo發表於2024-07-29

初讀《大道至簡——軟體工程實踐者的思想》,單從書名就能看出,這本書的主要內容是一位從事軟體工程實踐的專家的思考與心得,是一種思想的體現。我想閱讀這本書,定會對我未來對於相關知識的學習和未來的發展產生極大的幫助。
對於我這種初出茅廬的軟體工程專業的學生而言,這本書中後半部分的一些內容,包括一些具體例項我是幾乎沒有接觸過的,更別提深入的瞭解和認識。所以閱讀過程中我也透過查詢一些資料,閱讀他人對於相關部分的瞭解與認識,最終得出了我對閱讀此書的思考與感悟。
閱讀之前我先借助目錄和網上的一些簡介大概瞭解了一下全書內容,也由此產生了一系列的問題:程式設計的精義到底是什麼?程式設計要從何學起?如何完成一個軟體專案?團隊應如何分工合作?怎樣與客戶進行溝通或者說什麼是最簡溝通?現實中的軟體工程到底是什麼樣的?未來的我應該如何快速的融入這個行業?未來我應該向著怎樣一個方向努力?於是我帶著這些問題開啟了整本書的閱讀。
這本書開篇即程式設計,從程式設計入手,藉助愚公移山的故事闡明程式設計的精義,程式設計的第一要務,程式包含的內容,以及程式語言的運用和掌握。從中,我認識到了程式設計的根本即順序、分支和迴圈以及程式設計不是一股腦兒上去就寫程式碼而是要從分析事情開始,搞清楚事件的各種關係再去用程式碼實現。更記住了一句話:積極工作和勤于思考都要佔用時間。以前的我總是上去就開始寫程式碼,不去詳細分析我要實現的一些內容的先後關係,邏輯不清,導致我程式設計的效率低下。
其次,作者用李冰團隊修堰築壩和愚公移山做對比,向我展現了程式設計的發展,時代的進步,並寫明瞭作者對於程式的本質和思考:程式 = 演算法 + 結構 + 方法 以及工程的概念。其中令我印象深刻的就是新方法的產生所帶來的結構化程式設計以及對程式的更加深入的認識。之前的我,就像書裡面所寫的那樣:我學了程式設計,把知識學了進來,能夠寫一些程式,但是不知道知識是幹什麼的,我能夠用這些知識創造什麼。所以目前我要做的就是將所學的知識歸類,明確知識的用途,做到真正意義上的會寫程式。
同時,這本書也闡明瞭如何去做專案。從團隊入手,藉助李離伏劍等例子,論述一個軟體工程團隊要修訂制度,確定組織模式,要體現人性更要表現公平。而作為管理者就要進行合理的角色定位和明確分工。更明確了當一個人進入一個新的團隊應該如何去做:就像書中所說:“跟隨螞蟻。但不要栽進螞蟻洞裡”,在跟隨的過程中發現規律,嘗試改變。這就是團隊內部的協作。然後,延伸至完成一個專案,如何與客戶進行溝通,明確客戶要求並提出最簡溝通,這也就是在網路上檢視相關的軟體系統的特徵以抽取客戶所關注的內容,深入瞭解客戶所在公司、同類公司以及客戶的競爭對手。然後開始進行設計提問,每個問題要具有發散性涵蓋更多的資訊點,明確專案的實際目標和遠期方向,實現一個系統模型讓客戶操作並提出意見,確保每一次溝通的有效性,促進專案的更快深入推進。這就是團隊外部的交流。這對於我未來如何快速的融入整個行業,在團隊中更好的發揮我個人的作用而言至關重要。
這本書也揭示了現實中的軟體工程其實是大公司手中的算盤。軟體業內如今的局面,是大公司們相互制衡的結果。更提出了更為清晰明確的軟體工程層狀模型。這使得我對現實中的軟體工程瞭解更加深入,透過書中所給出的例項瞭解到了一些實際問題。同時,書中也強調了細節和枝節的區別:要注重細節,但前提是“這是技術或方法的細部”,要“跳出枝節”,要學會忽略枝節問題,枝節是事實發展的次要分支,它不涉及行為本身,也不是對行為本身的考量。而令我感受最深的就是書的最後一部分中所提到的“知律而變”,“律”若解釋為規律就與“道”釋為同義,如果明道,可以變換無窮,這樣做軟體工程才是活的。而另一層意思就是知道原理,對於軟體工程實施而言常見的問題是需要我們知曉這些技巧、技術和方法的原理,進而進行變通來回避錯誤從而解決的。這對我產生了一定的啟示意義,使我認識到死學是根本沒有意義,不會變通,不會創新,很難成功。因此這提示我在今後的學習中要正確認識規律,學會變通,學會靈活運用,從而實現成功。
總之,透過閱讀《大道至簡——軟體工程實踐者的思想》這本書,我明確了之前我提出的問題的答案。同時,在閱讀這本書的過程中我也發現了一些我的典型性問題,這本書更是給了我很多解決方法,希望我在今後的學習過程中能夠吸取教訓,應用書中提及的方法解決自身問題,提升個人能力,做活的軟體工程,做真正的軟體工程。

相關文章