我发现自己有了很重的拖延症,一个表现就是在 2011 年 3 月定下的目标POJ 500最近才完成。
这一页 500 道题耗费了我很多时间和精力,同样也带给了我很多知识和乐趣。
当然工作后毕竟还是没有学校的时间充足了,现在还花时间来做题似乎显得很悠闲,这 500 题最后十个是在元旦的几天假期里完成的。我是从 2010 年的 4 月份开始在 Poj 上做题,那天偶然发现自己原来 2006 年还注册过账号,于是做了两题试试,没想到后面就竟然沉迷其中,一直到自己从学校毕业出来。这两年强度还不算大,平时还是要在实验室做做项目的。我没参加过专业队的训练,不过参加过一次学校的比赛,和王骆驼两个人一个下午做出来五道,比较悲剧的是差一道没进决赛。不过当时还是挺欣慰的,毕竟自己还是不算专业选手啊。这一年多静下心来写程序收获很多,因为体会到了写程序的乐趣,有时候在睡觉的时候脑袋也在不知不觉地想问题。有时候我选择按不同的数据结构或者算法思想来选题做,有时候就在线上泡着看排我前面的人在做什么,然后自己也跟着做,这真写的是寂寞啊。不过现在回想起来这一两年算是最自由、最充实的写程序的日子了。
像 ACM 题这些东西最好还是大学开始接触,在开始学习基本算法和数据结构的时候就开始进行训练是最好的。当然如果大学能进专业队训练就更不错了,如果只是业余拿来练练手也是大有裨益的。也许我们做不到专业队哪些人写代码就像秀肌肉一样,体会到其中的乐趣就够了。在我开始做 POJ 之前我还是对算法充满了恐惧,感觉太高深。经过这些渐进的学习和训练,现在至少说有点入门的感受,面对一个问题多多少少会有一些思路和想法。也许平时项目和工作并没用到多少纯粹的算法部分,只是这有了这基本功还是能让你迅速上手其他东西。
《黑客和画家》里写到学习写程序和学习绘画的诸多相同点,这都是一门技能,除了多写、多看、多思考之外没有其他捷径可走。折腾多了自然就会有一点感觉。学习绘画的另外一个途径就是观摩经典的杰作,同样对应地看开源项目是另外一个很好的学习编程的途径。
幸好 GitHub 又被解封了。