Re: [閒聊] 資料結構不重要 ?
※ 引述《YunJonWei (楊宗緯)》之銘言:
: 最近常看到越來越多人說 "資料結構不重要"
: Queue、List、Heap、Hash Table .NET JAVA早就做好了,你根本不用懂資料結構。
: 排序、搜尋 Library 早就幫你做好了,你根本不用懂演算法。
: 至於其他更複雜的資料結構與演算法,更不用學,
: 太難,你也用不到。 太冷門,需要時再去找 Sample codes 就好。
: 演算法複雜度?
: 根本不用考慮阿,現在硬體那麼快,演算法差個 0.1秒 ,會扣錢嗎?
: 結論 => 不懂資料結構也可寫很好的程式。
: 我想很多人應該都是這種觀念的。
: 不知道大家對於 "資料結構與演算法" 不重要的想法是如何?
: 分享一些我看到的一些狀況好了:
: -------------------------------------
: 我的工作環境,常常需要在有幾億筆資料的Table內查資訊。
: 理論上這種環境根本就不要懂演算法與資料結構,
: 反正搜尋演算法、排序一定叫SQL Server做就好。
: 但有趣的事情就在這,當資料量大成這樣時,很多人就開始抱怨了,
: "為何搜尋速度那麼慢? "
: "這一定不是我的錯,是微軟的錯"
: "這是硬碟的存取的極限,我也沒辦法"
: 最後效能差到,沒辦法使用資料庫了,只好開始砍資料庫內的資料了。
: 把資料備份,然後砍掉九成的資料,讓資料變少,存取速度增快。
: (然後固定每段時間做這種事情)
: 然後有需要舊資料再去請助理把資料還原,撈部分資料出來匯入。
: 但是,如果有學過演算法或資料結構的,
: 頭腦應該都不會這樣想吧@@
: 資料長度 N 太大, 就刪長度 ?
: 明明就可以把 Table Schema 搞成樹狀結構,定期(或定量)增加節點Table。
: 明明就可以把 Table 拆成多個, 用程式做索引,加快存取。
: 明明資料進來時,就可以做一些計算,統計,快取等方式,讓未來不用查大量資料
: (其實還有很多種作法,而且資料結構課本都有教)
: --------------------------
: 但是我不知道為什麼,
: 感覺越來越多人對於存取效率一點都不重視,
: 系統架構、程式演算法設計一點都不重視,
: 總是用連大學生都不如的方式去設計與管理系統,
: 寫程式與設計系統總是用非常沒效率的方式在做。
: 而剛好我看到的這些人,都是非本科系出來的。
: 資料結構與演算法真的不重要嗎?
: 我始終是存在反對的意見。
: 即使你不用自己去設計一些有效率或特殊用途的資料結構,
: 即使你不用自己去設計各種常用的演算法,
: 但是,有學過這些基礎理論,
: 會讓你未來在設計系統時,總是知道怎麼做比較有效率,
: 光是設計資料庫架構就需要一堆傳統資料結構概念了,
: 寫程式、Protocol 要有效率,也要一堆以前學資料結構的觀念,
: "不懂資料結構,根本就沒差"?
: 差多了。
其實講了這麼多... 你知道為什麼沒有用嗎?
台灣的軟體環境很差 很多時候為了接單搶案子 都盡可能配合客戶的需求一改再改
地基都打好了 還在改設計圖...然後schedule 不改...
覺得越快出來越好 有個可以動的就好...
台灣做產品..硬體做久了..要求的就快..產品能work就先上了 搶時機
所以對軟體也這樣...講難聽點 管你能力多強...你根本沒空再去規劃什麼好的架構設計
好的架構與設計 常常被一些奇怪的要求給破壞掉....
架構都亂七八糟了 你想更細節的演算法和效率 真的誰care
不要bug太多就偷笑了...
台灣跟韓國的差異 就在於 台灣關注於賺錢搶市場 韓國關注於做世界第一的夢想
台灣重量 韓國重質...三星雖然很機車...但他成功絕非平白和光靠國家
軟體把他當硬體在搞 難怪台灣軟體起不來...
軟體是門藝術..跟建築一樣....
台灣50~80年代建築醜得要死(比日據時代還醜) 台灣的軟體目前就是這個狀況
指講究成本
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.37.63.120
→
06/13 01:16, , 1F
06/13 01:16, 1F
→
06/13 01:36, , 2F
06/13 01:36, 2F
推
06/13 21:10, , 3F
06/13 21:10, 3F
→
06/13 21:11, , 4F
06/13 21:11, 4F
→
06/13 21:14, , 5F
06/13 21:14, 5F
討論串 (同標題文章)