Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

如何做一个好的acmer

2,105 views

Published on

being a good acm player

Published in: Software
  • Be the first to comment

  • Be the first to like this

如何做一个好的acmer

  1. 1. To Be An AC Man code6 2014.4.8 应邀来跟⼩小伙伴们来讲讲我作为⼀一个 acmer 给⼤大家在 acm 的道路上的⼀一点建议.! 作为⼀一个⽼老牌并且还坚持刷题的acmer,我的⼝口号是 “To be an ac man”, 我想,不⽌止在竞赛,在后续的⼯工作,未来的⽣生活的当中,⽆无论遇到多⼤大的挑战,我们都希望能够顺利地攻克,ac它, 成为⼀一个 ac man. 谋事在⼈人,成事在天。我们把⾃自⼰己的那部分做⾜足做好,剩下的就不⽤用管了。当然,我们怎么做能够更有效率,能够使上劲,这是需要斟酌的事情,这就是我要给⼤大家的 tips。
  2. 2. 关于我 • 07年软件⼯工程本科 • coder profile • topcoder (1862/125) • coderforce(1713/23) • pku/fzu(283/224) • ⽐比赛历史 • sonic(08, 1B), acorz(09, 1S/1G/1H), Goldbach(10, 1B/1G) • ⼯工作历史 • meituan (2011 ~ ) • blog 简单介绍⼀一下我⾃自⼰己。
  3. 3. 议题 • 如何做⼀一个好的acmer 两个冗⻓长的标题,说着我要做的两件事,⾄至于为啥⽤用英语呢?练习= = ! ⾸首先我想从我的⼈人认知范围内聊聊如何成为⼀一个好的acmer,⼤大概有⼏几点,我说着说着可能串了,重了,也许是⽼老⽣生常谈,会⽐比较虚,⼤大家听听即可,还得⾃自⼰己辨别。! 其次还是从我的⾓角度,想跟⼤大家聊聊我总结的给acmer的关于⼯工作的建议,都是⼀一些个⼈人想法,靠不靠谱,⼤大家各⾃自甄别。
  4. 4. 如何做⼀一个好的acmer
  5. 5. 态度 “为什么切题,打⽐比赛?” “因为有趣。” 我认为态度是⾸首要的,我们搞竞赛为的是什么,这个最开始得想清楚。不可否认我们都希望能搞出⼀一⽚片名堂,能赛出好成绩。结果固然重要,但我们不能忽视过程。那如何保持我们在过程的 积极性呢,我们得享受过程。我们得培养对这些题⺫⽬目,⽐比赛的兴趣,得打⼼心底喜欢解题,打⽐比赛。不论你做什么事情,都得找到⼀一个值得开⼼心的理由。之于我,我很享受把⼀一道题⺫⽬目ac的愉 悦,以及经过⼤大量思考与尝试解出⼀一道题⺫⽬目的兴奋,如果是在规定时间内那就再愉悦不过了。
  6. 6. 效率 • “那么多题⺫⽬目,切哪些呢?” • “那么多⽐比赛,做哪些呢?” • ”那么多知识点,掌握哪些呢?” 当你的态度端正之后,你会不可避免地发现你的⼤大部分时间都在切题,做⽐比赛了。这是常态,你的兴趣使你乐此不疲。但你不能盲⺫⽬目地追求题量,追求ac。你永远都得站在⾃自⼰己的⾓角度思考 (不是为了旁⼈人思考)。这时候,你需要的是,正确地,有选择性的切题,做⽐比赛,把时间和精⼒力都⽤用在⼑刀刃上。这⾥里我们称之为效率。! 这⾥里效率⼀一⽅方⾯面在选择,有取舍,另⼀一⽅方⾯面在⾼高效的习惯/⼯工具⽀支持。! 选择来看,⼀一开始我们可能会看到有很多OJ,很多题库,很多⽐比赛,我的想法是: 在个⼈人时间上你的训练得循序渐进,扎实地完成各项基础到进阶的专题训练,找经典的题⺫⽬目反复刷。另⼀一⽅方 ⾯面不能错过⽐比赛,即便⽐比赛排得满满的。⼀一个⾯面向⼤大众的⽐比赛,基本能满⾜足各个层次的⼈人的需要。poj monthly / zoj monthly / sgu / ural / uva 等,但凡有⽐比赛就花时间做⼀一下,每次都把符合 ⾃自⼰己level的题⺫⽬目切掉,对刚好差⼀一点实⼒力/运⽓气的题⺫⽬目加强⼀一下训练,争取在下⼀一次切掉。好的适合⾃自⼰己的有提⾼高的⽐比赛可遇不可求,⼀一有机会就别错过。另⼀一⽅方⾯面,有⼀一些⼀一年⼀一度的⽐比赛 我⾄至今还在做,确实有趣,也能收获⼀一些⽐比奖⾦金来得更cool 的东⻄西,⽐比如 各⼤大编程⽐比赛的T, ⾯面试机会等,⺫⽬目前我还在做 gcj , hackercup , ipsc , cha24等⽐比赛,有些需要组队参加,这样的机 会⼀一年⼀一次,题⺫⽬目质量很⾼高,趣味性强,做完还可以看完善的题解,帮助很⼤大,所以请尽量提前安排时间参加。另外,平常基本功和实战练习还有两个很好的平台,topcoder 和 codeforces(近来⼜又有⼀一个 hackerrank 也不错)。 topcoder 对刷 1A 率很有帮助,也能让你尽量把代码写简洁,我⾮非常喜欢这个平台,喜欢做上⾯面的 SRM 和 marathon。SRM ⺫⽬目前每⽉月⼤大概四 场(之前仅有两场), ⼀一般是凌晨= = balabala,总之很棒。 cf 的话我以前都随便做做,cf 上的题⺫⽬目感觉看作者,有时很棒,有时⼜又过难,同理,抓住其中有趣的题⺫⽬目死磕,学习,掌握,为⼰己 ⽤用。知识点⽅方⾯面,有些基础的东⻄西是学不完的,⽐比如 dp , ⽐比如贪⼼心。dp是越学越喜欢,越学越神奇,建议每个⼈人都应该做做那些经典的有趣的dp题,然后对⽇日后在⽐比赛中遇到的奇形怪状的 dp题也多做总结,dp虽然有⼀一定⽅方法,但很看灵感,也是很有趣的东⻄西。有些特定领域的算法掌握以下,并对基本变形有了解。有些过偏的算法理解⼀一下即可,或者分⼯工,各⾃自攻克。! 习惯/⼯工具⽅方⾯面呢?碎⽚片化时间管理(善⽤用各种碎⽚片时间), 时间效率⼯工具(todo 管理 trello , wunderlist)
  7. 7. 总结,分享 • 吾⽇日三省吾⾝身。 • 赠⼈人玫瑰,⼿手有余⾹香。 接下来我打算谈谈总结和分享吧。我觉得⼀一直做,却不总结,不分享的话,那收效必然不好。总结和分享在什么场合,做什么事情下都适⽤用。先说说总结,为什么要做总结呢? 看看⾃自⼰己有没 有进步,⿎鼓励⾃自⼰己?找到⾃自⼰己进步/失利的原因,顺势⽽而为/求变? 关注结果,但我们应该更关注过程,好的可控的过程往往能带来好的结果。⽐比如做了⼀一段的专题训练,把⾃自⼰己的切题感想记 录⼀一下,总结⼀一下常⻅见的题型,变种,编码过程中的常⻅见错误。⽐比如参加了⼀一个在线/现场赛,⾃自⼰己的策略很成功/失败,分析⼀一下原因,花时间写⼀一下⽐比赛总结。⽐比如列⼀一下半/学期⺫⽬目标,定 期总结⼀一下阶段性成果,看看是否有偏差,分析⼀一下偏差的原因以及怎么补救。! 总结是⼀一块,分享也很重要,⼀一般来说,我们总结的⾃自⼰己的东⻄西,往往会按照我们的思考记忆⽅方式存储,有时候也是不⼯工整的,⽋欠考虑的。当我们考虑将我们的想法分享出来,这时伴随的⼯工 作量就不是⼀一个数量级了。我们得思考清楚怎么说明⽩白我们分享的东⻄西,以⼀一种他⼈人能理解的,有条理性的⽅方法阐述。分享的⽅方式有很多种,写⾼高质量的博⽂文,写⼀一个⾼高质量的主题slide。在 我们准备和实际分享的过程当中,我们往往能对⼀一个知识有更深刻的理解。! 当然,同样的,⼯工具还是很重要。 evernote / blog(vim + markdown + github pages)
  8. 8. 交友,讨论 • 独学⽽而⽆无友,则孤陋⽽而寡闻。 最后⼀一点,我觉得就是得多⾛走出去,多跟⾥里⾯面/外⾯面的同学切磋经验。⼀一份快乐两个⼈人分享,就会成为两份快乐。切题打⽐比赛是持久战,寻找⼏几个志同道合的战友很关键。不⼀一定要本校的同 学,多和外校的同学交流,多和那些你仰慕的⼈人交流。⼤大⽜牛往往不吝啬回答问题的,你只需要提出邀请。多交友的话这样在打有趣的⽐比赛时就可以⼀一起切磋,对于有趣的题⺫⽬目可以⼀一起讨论, 共享⼀一些相关信息,互相促进互相提⾼高。和⼤大⽜牛交朋友的话能够加速促进⾃自⼰己提⾼高,为了能跟上⼤大家的节奏,你必须努⼒力去掌握新的知识,必须让其他⼈人也可以从你⾝身上获取到⼀一些有⽤用的信 息。那么这些朋友仅仅是在搞竞赛的时候对你有⽤用吗,不仅如此的,你在这时候建⽴立起来的朋友关系,其实就为你⽇日后⼯工作的⼈人脉关系建⽴立打基础了。搞acm的同学或者说it⽅方⾯面的同学⼀一般 都⽐比较nice,助⼈人为乐,不会去算计,今后⼯工作上有需要,⽐比如需要探讨⼯工作上的难题,⽐比如希望帮忙内推其他⼯工作机会,找acm的朋友内推都很靠谱。
  9. 9. 谋事在⼈人,成事在天
  10. 10. We are hiring.

×