回覆列表
  • 1 # IT程式設計學習棧

    你好,感謝您給我這個機會回答這個問題。

    首先,程式 = 演算法 + 資料結構

    說的沒錯,但前提是:這是你一個人在寫程式,沒有前置條件也不用對結果負責。

    大部分情況下,在寫程式之前,你面對的是一堆需求。需求有好有壞,但你得把它們搞懂,至少知道你需要作甚,當然你不幸的沒有在一個大產業鏈中的一環,那你自己還得去發掘需求,別和我說這不是一個程式設計師應該乾的事情,你要知道,沒有需求的推動,你寫什麼的程式碼?

    那我們先別管這些需求了,總算可以開始寫程式碼了吧?錯了,除非你的程式碼沒有生命週期可言,寫完丟一遍,然後這輩子永不相見。那確實可以愉快的敲打鍵盤,然後用你的演算法和資料結構知識完成它,我在大學的時候,很多ICPC的比賽確實就是如此的狀態。不過可惜的是,好日子一去不復返。現在的大部分時候,你得和你或者別人幾天前,幾個月前,甚至幾年前、十幾年前寫的程式碼日夜搏鬥,真慶幸軟體行業也還沒超過三十年。晚上夢裡都會因為夢到自己給自己挖了一個大坑而一身冷汗的驚醒。為了讓自己過得舒服點,還是在寫程式碼之前多想想,想清楚了再動手,一般高階點的說法把這個過程叫做“架構設計”。

    之後,愉快的敲著鍵盤,把程式碼寫完了吧。你覺得就解放了嗎?你苦難的日子才剛剛開始。bug,無盡的bug折磨著你,說沒有bug的程式設計師,我只能鄙視你沒有寫過超過千行程式碼。那就投入到無盡的改bug歲月中吧,你還得面對無盡的新需求,你可憐的工作時間,在不斷的陳舊程式碼維護中越來越少。你得學會如何合理管理自己的時間,否則,工作幾年以後,你寸步難行,只能使出絕招:走為上。

    什麼,我程式碼都寫完了,你們要改需求!!這種無理的要求面對工資和老闆好像沒什麼勇氣去拒絕。但之前好像從來沒有考慮過這種事情啊,那以後好好考慮一下吧,如何面對變換莫測的需求,在足夠小的代價的前提下滿足它們……

    好吧,我嘮叨了那麼多,其實遠遠沒有把苦逼的“寫程式”這麼一件“簡單”的事情說完。

    最後只想告訴題主:真正的寫程式,是一個系統工程學科,不是簡單的演算法+資料結構。就如說造房子不就是砌磚頭一樣的無知。當一個工程的複雜度越來越高的時候,當一個工程面對的問題越來越大的時候,你需要具備的能力也是越來越高。

  • 2 # 成都茂大叔

    任何 程式/軟體,在本質上,就是演算法加資料結構。這是對 程式/軟體 開發工作的高度抽象。無論 程式/軟體 多麼複雜,最終解決問題的,就是演算法和資料結構。

    如果你要反駁這一點,你可以偷換概念,例如:我在說司法程式,不是計算機那個程式。

    這樣,你很容易槓贏對方的。

  • 中秋節和大豐收的關聯?
  • 毛豆煮多久才能熟?