Re: [討論] 所以練acm都底有啥好處?

看板Programming作者 ( )時間10年前 (2014/08/18 19:59), 編輯推噓7(7018)
留言25則, 8人參與, 最新討論串3/8 (看更多)
我已經很久沒在寫 ACM 了,不過一些好處參考看看 1. 練基礎程式邏輯。迴圈、判斷,各種 condition 剛寫出來時絕不是最優, 通常也要重構許多遍才能做到簡潔又易懂 2. 練 Code Quality。包括程式碼的排版、註解的寫法、切割 task 的能力, 是否 self-explainatory。你的程式碼是協助向其它人表達你的想法還是 剛好相反? 3. 對整體程式架構的判斷能力。效能瓶頸?一次 AC?查 bug?物件之間的 互相溝通?記憶體與效率考量?高階語言的底層實作?從設計階段到最 後寫完,不同的地方都有很多問題可以去考慮。 4. 對語法的熟悉度。所有的語言都是要表達自己的意思,程式語言也一樣。 當你對語言越熟悉,也許哪天就會發現開始會用倒裝、飾字、借代…… 5. 讓你的腦子有事情做。解題不是在電腦前猛敲鍵盤就行的,除了基礎的 題目外,很多題目都是需要你靈光一閃,讓腦袋轉轉彎。 6. 累積未來的資本。指的是你在解題時的實作方法。寫軟體時除非一開始就 打算要用特定的 Lib,不然都是從定義介面開始,再慢慢實作的。你會發 現之前用的東西都可以「移植」到現在的程式上。等到累積夠了,這就變 成你的 Lib,以後要寫什麼東西只要把框框架好,把自己以前寫的東西拿 來用就行了。 主要沒練到的部份,就是專案管理和 Team work 吧。基本上老闆是不 會管你的 Code 有多好看,他只要你盡早完成然後不要出 Bug。 在這種情況下你要會管理自己的作品,我就看過有人檔案命名都一樣 然後拿舊的蓋掉新的……。可以試試 Github。 你可以試試看,拿出三個月前寫的程式碼 Review,如果看不懂就重寫, 勉強還可以就重構,直到你只要眼睛掃過去就知道這份 Code 在幹麻為止。 總覺得這樣講下來其實跟 ACM 沒多大關係,總之就是找東西給自己寫啦! 把它當成一份要給別人看的創作,而不是單純的 AC 就好。你有看過藝術家 說自己的作品沒用的嗎? 題外話,上面提到了 Github,最近有個服務叫 Coding (https://coding.net/) 是大陸提供的,不知道大家對大陸的這種服務看法如何。可以建私人 Repo。 -- (* ̄▽ ̄)/‧★*"`'*-.,_,.-*'`"*-.,_☆,.-*` http://i.imgur.com/oAd97.png
-- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.225.53.187 ※ 文章網址: http://www.ptt.cc/bbs/Programming/M.1408363150.A.467.html

08/19 03:13, , 1F
寫過acm 心得給推~
08/19 03:13, 1F

08/19 03:13, , 2F
話說那是類似Koding的東西嗎
08/19 03:13, 2F

08/19 22:20, , 3F
要私人的話用 bitbucket 就夠拉
08/19 22:20, 3F

08/21 20:12, , 4F
ACM主要練限制狀況下的"正確性" 程式架構
08/21 20:12, 4F

08/21 20:12, , 5F
就不太可能了 除非是自己在家練習 正式比
08/21 20:12, 5F

08/21 20:13, , 6F
賽都是i,j,k,ii連發 直接宣告一大塊array
08/21 20:13, 6F

08/21 20:13, , 7F
大軟體根本不會有這種狀況
08/21 20:13, 7F

08/23 18:12, , 8F
這篇看起來不是寫ACM的效用,而是練code好處
08/23 18:12, 8F

08/23 18:15, , 9F
原po兩個月寫80幾題,可能不需要以上這些
08/23 18:15, 9F

08/23 18:15, , 10F
講code怎麼切,舊程式怎麼重構等等. 你可能
08/23 18:15, 10F

08/23 18:16, , 11F
甚至寫得比他少.
08/23 18:16, 11F

08/26 20:14, , 12F
之前寫類似ACM的比賽
08/26 20:14, 12F

08/26 20:15, , 13F
要用資料結構都直接char[10000]下去了
08/26 20:15, 13F

08/26 20:15, , 14F
效率什麼的隨便去啦
08/26 20:15, 14F

08/27 01:06, , 15F
char[10000] 的效率才好啊.. XD
08/27 01:06, 15F

08/27 10:03, , 16F
不見得, 要看放在那一塊記憶體, stack
08/27 10:03, 16F

08/27 10:03, , 17F
的cache hit rate會比bss/heap高很多
08/27 10:03, 17F

08/29 08:05, , 18F
在公司上班不都一樣,效率什麼的先隨他去,
08/29 08:05, 18F

08/29 08:06, , 19F
先隨便寫一個可以跑的,將來才來攻效率問題
08/29 08:06, 19F

08/29 08:06, , 20F
假如字斟句酌,根本沒辦法做事情。
08/29 08:06, 20F

08/29 10:45, , 21F
是啊, 先可以跑=>正確性=>調效率, 但如
08/29 10:45, 21F

08/29 10:45, , 22F
果ACM的練習題裡, 沒有針對cpu架構,
08/29 10:45, 22F

08/29 10:46, , 23F
compiler的現況出optimize的題目, 那做
08/29 10:46, 23F

08/29 10:48, , 24F
這些練習題對效率的改善還是有限
08/29 10:48, 24F

11/16 16:34, , 25F
+1 從排版可看出是高手
11/16 16:34, 25F
文章代碼(AID): #1JyUgEHd (Programming)
文章代碼(AID): #1JyUgEHd (Programming)