Re: 不想唸碩士了,想去刷題

作者: bachelorwhc (單身老王)   2022-05-10 15:52:11
※ 引述《hidog (.....)》之銘言:
: 刷題只要當下可以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,手寫排序演算法還寫錯
等...罄竹難書,沒有最誇張、只有更誇張。
常見的演算法,只要不是刁鑽或罕見的題目,我相信解題至少能刷掉一些基礎不
強的工程師......
作者: CRPKT (crpkt)   2022-05-10 16:21:00
除了要改對之外還有要改成怎樣的策略問題 XD
作者: ntpuisbest (阿龍)   2022-05-10 16:58:00
可以舉一個需求是把複雜度寫成n平方的嗎?
作者: Sunal (SSSSSSSSSSSSSSSSSSSSSSS)   2022-05-10 18:05:00
前端常常看到這種 Array.map().filter(e=>e.find()).......
作者: Hsins (翔)   2022-05-10 18:07:00
非本科的轉職者,有些連複雜度的概念都沒有就會寫出這種東西
作者: laosoacj (外來種)   2022-05-10 22:11:00
3,4也太扯惹吧
作者: a0943537986 (ntpc9527)   2022-05-14 01:04:00
推推想請問該如何增進自己的第一點”判別code smell”呢?很怕自己寫出別人所講的髒扣
作者: wulouise (在線上!=在電腦前)   2022-05-14 09:50:00
Clean code, Code complete這類書可以找來看

Links booklink

Contact Us: admin [ a t ] ucptt.com