zoukankan      html  css  js  c++  java
  • [转载]我为什么学ACM

    [转载]我为什么学ACM

     
     
    写在转载前:刚刚看完一篇文章,我几乎眼泪都要下来了,有多少人懂得,做技术的人他们的精神,有多少人懂得,值得和热爱,这四个字对于一个纯技术的人来讲,是多么的高贵,你们懂么?懂么?希望我们能够更加的去懂得,希望我们身边的人能够懂得。
     
     时间过得真快,大三的上学期就要过去了,可以说这半年来,我只做了一件事,那就是准备并参加ACM-ICPC国际大学生程序设计竞赛。
      做任何事情无论是对是错,都必须好好思考总结一番,如果我做错了,我应该吸取教训,改正错误;如果我是对的,那我应该再接再厉,取得更大的进步。
      为了这件事,我耽误了这学期的课程学习,经过几个月的准备,我参加了亚洲区北京赛区的比赛,获得优胜奖;还参加了西安赛区的比赛,获得三等奖。成绩并不出众。这里就要问了,我浪费了宝贵的大三时间换来的这个成绩值得么,或者更进一步,我们搞ACM这项比赛值得么?
      我无法把握未来,我无法判断这样做究竟是对是错,周围的同学大都进入了实验室进行项目开发,而我却很多东西还都不知道。ACM似乎有种魔力,即使比赛完了,每天我仍忍不住放下功课跑到POJ上去看看,有种拿到题目敲代码的冲动。我真是走火入魔了,我现在还想着如何学习提高自己的ACM实力,想着明年的比赛弥补今年的遗憾,我甚至列出了个长长的书单来:人工智能、组合数学、数论、计算几何、动态规划……做好了学习计划,把一切抛之脑后。难道它比考研还重要么?我虽然不知道ICPC是不是真的有那么好,那么有一点我知道,那就是我已经深深地喜欢上了这项比赛,或者说,不是比赛,而是一个活动,一个过程,因为我得到的乐趣并不是与别人竞争赢得比赛的喜悦,而是挑战自己得到的成就感!
      POJ上有一篇著名的帖子,题目就叫“搞ACM值得么?”回帖者达数百人之多。很多帖子内容我已经记不大清楚了,但有一个人的留言给我留下了深刻的印象,他说虽然不知道自己做的值得不值得,反正他在编程时他的同学们都在打电子游戏。我想,搞ACM总比玩游戏要好的多吧。而我也真真正正地乐在其中,最近半年来我玩游戏的时间还不到5个小时,我已经把做ACM当作是打电子游戏,每做出一题的喜悦之情真是难以形容,这种感觉我想只有那些我的同道中人才能体会吧。
      每年比赛完,就会看到来自各个学校的ACM选手一篇又一篇的“退役宣言”。其中不乏辛酸苦辣,每个人都是为着自己深爱的ACM而付出了太多。ACM值得么?“当我们主力队员中的一个,一个月拼命集训,瘦了很多的时候,突然,我有一种哭的冲动。我问他,为什么?他告诉我:我喜欢ACM。也许是个傻傻的理由,但是就是这句话让我一直留在了这里,并且为了这个梦奋斗着。”——摘自《弱校ACM奋斗史》
      我觉得,我并没有错,和大家一样,做着正确的事情。
      参加ICPC比赛究竟有什么提高呢?我想有以下几个方面的进步是可以肯定的:第一是可以提高对编程语言的熟悉程度,在对时间空间要求非常严格的编程比赛上,对编程语言越熟悉越能编写出高效的代码;第二可以提高编写代码的能力,你可以一次写多少行的代码并且保证其正确性?你可以在一个小时中写出多少行的代码?如果你有意识的训练自己的话,还可以养成好的编程习惯和代码风格;第三点是对数据结构与算法的掌握,这个是最重要的一条,稍后将重点介绍;最后一点是,比赛是3人一组5小时做8~10题,无论是团队协作还是临场决策都对比赛结果产生重大影响,如果这方面做得好的话可以发挥出队150%的水平,当今的社会不再是个人英雄的社会,是一个讲究团队合作的社会!
      算法重要么?算法已经死了么?现在的软件开发环境如此发达,很多代码都可以自动生成,使用算法的时候只需要套用就可以了,算法似乎不再重要,学习更多的语言,掌握最新潮的开发技术似乎才是我们应该走的路。
      真的是这样么?难道计算机专业的学生就应该只学习一下语言和开发技术么?我总觉得不对,我也动手做过几个小项目,给我的感觉是,这样的工作本质上和学习WORD,EXCEL什么的没有什么区别,只是一种熟练工,做的多了自然就熟,这种东西做出来最多只有一个美丽的外壳,内部其实空虚无比,其实这点也很有意思,完全符合了很多人的审美观点,但这个不是我的追求。虽然程序员是个蓝领,但我想做个不断提高的蓝领,我不愿意总做这样的机械工作。用武侠小说里的东西来打个比方吧,学习了这些,就好比学习了精妙的“招式”,但无论如何巧妙,这是个好看而已,无法发挥其真正的用处来。
      当然,对于很多专业比较强的同学开始进行新技术的学习乃至项目的开发,我认为是一种很正确的选择,对于他们来说,这种东西已经不简单是华丽的外壳,或者说是精妙的“招式”,他们已经有了深厚的“内功”,使起“招式”威力巨大。但对我来说是学不来的,他们在中学时期已经有了很深的计算机基础,甚至就是搞信息学竞赛报送上的大学。他们已经具有了很扎实的“内功”,这时他们的选择就不是所谓的“机械的熟练工”了,有了“内功”,再学“招式”,才是成为“大侠”的正道。这话说的很像“以气御剑”的伪君子岳不群的话,但我认为在这里,这句话并没有错,起码我还不能领悟风清扬“无招胜有招”的精神,因为我本就是个悟性平平的笨人。
      而这个“内功”,我想就是深厚基础。比如:好的代码风格,好的编程思想,深厚的数学功底,还有就是能灵活运用各种算法等等。对于我来说,需要的是不急不躁苦练“内功”,再去修炼“招式”。我曾在实验室待过短暂的一周,除了还要做ACM时间不够的原因外,“内功”不足也是一个退出的原因。对于初学计算机的我来说,首先要有个非常好的代码能力,再去说其他的。
      算法真的死了么?不能吧。ACM这个竞赛一年比一年火不就说明了算法强大的生命力么?而且,这项比赛多家国际著名IT企业能曾赞助或是正在赞助,而且ACM的获奖选手可以得到一份更好的工作也是一个不争的事实。是啊,什么软件不需要算法啊,难道你就满足于做个网站或是个什么小型管理系统么?在我眼中,这些东西应该由非专业人士来做才对。其实即使在我眼中,那些有了“内功”开始搞“招式”的人还不够完美。有些中学搞竞赛的朋友对我说他大学不想再搞竞赛,那么,难道他们的“内功”已经练够了?到顶了?肯定不是,只要清华的楼天城还在搞ACM,我想就没有人有资格说“算法学够了”这种话。(楼天城是2004IOI金牌得主,中国ACM界的统治性人物,他所在队伍获得了今年的上海赛区和西安赛区的冠军——注)内外兼修,才是正道。
      以前我一直很迷茫,以为我在死胡同中。现在我发现似乎已经走出了胡同,只不过天还是黑的我看不到出口而已,等待一下就好了。只有英雄才会耐住寂寞,我相信收获果实的那一天终将会到来!
     
  • 相关阅读:
    There is an overlap in the region chain修复
    There is an overlap in the region chain
    region xx not deployed on any region server
    python 中的re模块,正则表达式
    TCP粘包问题解析与解决
    yield from
    Git push提交时报错Permission denied(publickey)...Please make sure you have the correct access rights and the repository exists.
    mysql 中Varchar 与char的区别
    Mysql 字符集及排序规则
    请实现一个装饰器,限制该函数被调用的频率,如10秒一次
  • 原文地址:https://www.cnblogs.com/zdcaolei/p/2479337.html
Copyright © 2011-2022 走看看