作者eight0 ( )
站内Programming
标题Re: [讨论] 所以练acm都底有啥好处?
时间Mon Aug 18 19:59:06 2014
我已经很久没在写 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://webptt.com/cn.aspx?n=bbs/Programming/M.1408363150.A.467.html
1F:推 virve: 写过acm 心得给推~ 111.252.45.94 08/19 03:13
2F:→ virve: 话说那是类似Koding的东西吗 111.252.45.94 08/19 03:13
3F:推 bill42362: 要私人的话用 bitbucket 就够拉124.178.158.129 08/19 22:20
4F:推 saladim: ACM主要练限制状况下的"正确性" 程式架构 220.129.16.63 08/21 20:12
5F:→ saladim: 就不太可能了 除非是自己在家练习 正式比 220.129.16.63 08/21 20:12
6F:→ saladim: 赛都是i,j,k,ii连发 直接宣告一大块array 220.129.16.63 08/21 20:13
7F:→ saladim: 大软体根本不会有这种状况 220.129.16.63 08/21 20:13
8F:→ yauhh: 这篇看起来不是写ACM的效用,而是练code好处118.167.143.149 08/23 18:12
9F:→ yauhh: 原po两个月写80几题,可能不需要以上这些118.167.143.149 08/23 18:15
10F:→ yauhh: 讲code怎麽切,旧程式怎麽重构等等. 你可能118.167.143.149 08/23 18:15
11F:→ yauhh: 甚至写得比他少.118.167.143.149 08/23 18:16
12F:推 wuliou: 之前写类似ACM的比赛 61.228.170.16 08/26 20:14
13F:→ wuliou: 要用资料结构都直接char[10000]下去了 61.228.170.16 08/26 20:15
14F:→ wuliou: 效率什麽的随便去啦 61.228.170.16 08/26 20:15
15F:→ CindyLinz: char[10000] 的效率才好啊.. XD 112.121.80.249 08/27 01:06
16F:推 abcdefghi: 不见得, 要看放在那一块记忆体, stack 114.42.172.38 08/27 10:03
17F:→ abcdefghi: 的cache hit rate会比bss/heap高很多 114.42.172.38 08/27 10:03
18F:→ yauhh: 在公司上班不都一样,效率什麽的先随他去, 118.167.140.99 08/29 08:05
19F:→ yauhh: 先随便写一个可以跑的,将来才来攻效率问题 118.167.140.99 08/29 08:06
20F:→ yauhh: 假如字斟句酌,根本没办法做事情。 118.167.140.99 08/29 08:06
21F:推 abcdefghi: 是啊, 先可以跑=>正确性=>调效率, 但如 114.42.189.159 08/29 10:45
22F:→ abcdefghi: 果ACM的练习题里, 没有针对cpu架构, 114.42.189.159 08/29 10:45
23F:→ abcdefghi: compiler的现况出optimize的题目, 那做 114.42.189.159 08/29 10:46
24F:→ abcdefghi: 这些练习题对效率的改善还是有限 114.42.189.159 08/29 10:48
25F:推 farmerlu: +1 从排版可看出是高手 140.112.30.37 11/16 16:34