回覆列表
-
1 # IT程式設計學習棧
-
2 # 成都茂大叔
任何 程式/軟體,在本質上,就是演算法加資料結構。這是對 程式/軟體 開發工作的高度抽象。無論 程式/軟體 多麼複雜,最終解決問題的,就是演算法和資料結構。
如果你要反駁這一點,你可以偷換概念,例如:我在說司法程式,不是計算機那個程式。
這樣,你很容易槓贏對方的。
相關內容
- 如何反駁“大陸音樂人不如國外”“只有國外才有音樂大師”這樣的言論?
- 想用Java學習資料結構與演算法,我應該掌握Java到哪種程度?
- 大一學習了C語言。寒假準備好好學習,是學習c++,還是學資料結構演算法?
- 我該怎麼反駁“憤青”同學的一些言論?
- Java程式設計師需要學習演算法和資料結構嗎?
- 為什麼計算機面試中不面函數語言程式設計而要面演算法和資料結構?
- 資料結構與演算法是不是1對1的關係,如果是,為什麼?如果不是,請說明原因並舉例?
- C++、C#資料結構和演算法的學習體系是什麼?比較好的書籍和網站有哪些推薦?
- 當別人懟你的時候要不要反駁?應該怎麼面對別人對自己言論的否定?
- NET程式設計師,學習演算法和資料結構適合讀哪些書?
你好,感謝您給我這個機會回答這個問題。
首先,程式 = 演算法 + 資料結構
說的沒錯,但前提是:這是你一個人在寫程式,沒有前置條件也不用對結果負責。
大部分情況下,在寫程式之前,你面對的是一堆需求。需求有好有壞,但你得把它們搞懂,至少知道你需要作甚,當然你不幸的沒有在一個大產業鏈中的一環,那你自己還得去發掘需求,別和我說這不是一個程式設計師應該乾的事情,你要知道,沒有需求的推動,你寫什麼的程式碼?
那我們先別管這些需求了,總算可以開始寫程式碼了吧?錯了,除非你的程式碼沒有生命週期可言,寫完丟一遍,然後這輩子永不相見。那確實可以愉快的敲打鍵盤,然後用你的演算法和資料結構知識完成它,我在大學的時候,很多ICPC的比賽確實就是如此的狀態。不過可惜的是,好日子一去不復返。現在的大部分時候,你得和你或者別人幾天前,幾個月前,甚至幾年前、十幾年前寫的程式碼日夜搏鬥,真慶幸軟體行業也還沒超過三十年。晚上夢裡都會因為夢到自己給自己挖了一個大坑而一身冷汗的驚醒。為了讓自己過得舒服點,還是在寫程式碼之前多想想,想清楚了再動手,一般高階點的說法把這個過程叫做“架構設計”。
之後,愉快的敲著鍵盤,把程式碼寫完了吧。你覺得就解放了嗎?你苦難的日子才剛剛開始。bug,無盡的bug折磨著你,說沒有bug的程式設計師,我只能鄙視你沒有寫過超過千行程式碼。那就投入到無盡的改bug歲月中吧,你還得面對無盡的新需求,你可憐的工作時間,在不斷的陳舊程式碼維護中越來越少。你得學會如何合理管理自己的時間,否則,工作幾年以後,你寸步難行,只能使出絕招:走為上。
什麼,我程式碼都寫完了,你們要改需求!!這種無理的要求面對工資和老闆好像沒什麼勇氣去拒絕。但之前好像從來沒有考慮過這種事情啊,那以後好好考慮一下吧,如何面對變換莫測的需求,在足夠小的代價的前提下滿足它們……
好吧,我嘮叨了那麼多,其實遠遠沒有把苦逼的“寫程式”這麼一件“簡單”的事情說完。
最後只想告訴題主:真正的寫程式,是一個系統工程學科,不是簡單的演算法+資料結構。就如說造房子不就是砌磚頭一樣的無知。當一個工程的複雜度越來越高的時候,當一個工程面對的問題越來越大的時候,你需要具備的能力也是越來越高。