看板Soft_Job
: 刷題只要當下可以accept就好,但專案可能需要活個三五年
: 當下沒問題,但沒做好維護作業,很容易變成替未來埋地雷
: 個人覺得刷題很強跟工作很強並沒有直接劃上等號啦...
想作一下補充,維護legacy code應該算是比較吃經驗跟工程技術:
1. 判別code smell
2. 了解原code的邏輯 (願意而且能夠讀懂別人的程式碼)
3. 還要能改得對
看這位大大應該是解題能力強、做大型專案的能力也強,把code寫對跟寫好對你
來說可能已經不是問題。但以我見過很多的髒code來說,發現大部分髒code都有
一個共通點(撇除亂命名),那就是:用數倍的程式碼去達成一件很簡單的事情。
舉例來說,
1. 不知道怎麼辨別acyclic graph,寫了一百多行程式碼效率不僅差還漏洞百出
2. nlogn能解決的問題,用了n^2,效率差還寫得又臭又長
3. 不知道unordered_map怎麼使用自製的hash function,把程式碼寫得超複雜
4. 不知道如何使用自定義的comparator,手寫排序演算法還寫錯
等...罄竹難書,沒有最誇張、只有更誇張。
常見的演算法,只要不是刁鑽或罕見的題目,我相信解題至少能刷掉一些基礎不
強的工程師......
--
※ 批踢踢實業坊(ptt.cc), 來自: 61.216.78.140 (臺灣)※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1652169134.A.58C.html
推 CRPKT: 除了要改對之外還有要改成怎樣的策略問題 XD 05/10 16:21
推 ntpuisbest: 可以舉一個需求是把複雜度寫成n平方的嗎? 05/10 16:58
推 Sunal: 前端常常看到這種 Array.map().filter(e=>e.find())....... 05/10 18:05
推 Hsins: 非本科的轉職者,有些連複雜度的概念都沒有就會寫出這種東 05/10 18:07
→ Hsins: 西 05/10 18:07
→ laosoacj: 3,4也太扯惹吧 05/10 22:11
推 a0943537986: 推推 05/14 01:04
→ a0943537986: 想請問該如何增進自己的第一點”判別code smell”呢 05/14 01:04
→ a0943537986: ? 05/14 01:04
→ a0943537986: 很怕自己寫出別人所講的髒扣 05/14 01:04
推 wulouise: Clean code, Code complete這類書可以找來看 05/14 09:50