September 26, 2011

怨妇贴。

这工作找的让人觉得大学7年就跟白读了一样,不如搞1年ACM,更不如上半年技校。

至今经历过的唯一我认为做的正确的笔试,只有WAP公司的三日编程题。虽然我最后因为时间关系没有实现完设计方案,当然更没有上交和之后的面试,但是很欣赏这样的笔试方式。

不过,大多的公司都不会有这家日企这么认真的态度,往往都是发张“代码不缩进”的卷子,好些的做个机考,考的也就是那些个题库里随机出来的ACM题。我从来不认为那些搞ACM的人有多牛掰,只是平日努力的方向不同而已。ACM得世界冠军固然难,可普通ACMer也就是“懂出题思路,懂ACM的通用Framework,做过90%题库”这样的水准。只是别人花在做项目、调系统、研究模型、发Paper的时间,他们花在了做ACM题上了而已。但就好比,料理竞赛再牛掰的大厨烧茶叶蛋也未必烧得好吃过一摆路边摊的一样,因为人家本来就是做这个的,而且天天做,日日做。

可是,公司们,说着“我们要找有坚实基础的、有解决问题能力的、有良好沟通能力和良好学习能力的人”,实际做的却是“来做ACM题吧”。也许公司并不是这么想的,但却这么做了。

我想我也是猜得到原因的。毕竟海面不可能,笔试是必须的。出优秀的题目太难,而且时效性很短,所以找题库或者根据题库改编是最方便的。而且ACM题有固定的标准,效率、内存,AC就是AC,不像开放题目,需要改卷管自己思考是否正确,而且标准模糊,从这个方面看也是最方便的。我并不否认考ACM题在某种意义上的公平性,但也是连高考也比不上的公平性。也许公司还认为“虽然不会做ACM不一定不是我们需要的人,但会做的人中笨的总不太多,反正应聘的人多,运气不好的我们也不要”。

所以,毕业求职季的种种笔试,成了又一次变相的高考,所有人看“程序员面试宝典”、看“编程珠玑”、看“编程之美”等等等,平日里碰都不会去碰的书。还有那些经典面试题,简直就是逼着你去看。大多数人也是从开始找工作的时候才开始看这些题,才开始了解到“原来还可以有这种题的”,比如我一直很不理解一道关于“单项链表查环”的题,为何不在插入链表时就保证无环呢?既然数据可能有环,为何不选择其他数据结构比如数组作为容器呢?这种笔试的结果通常是公司招到了看过这些题的人,而非会做这道题的人。

我并不希望做一个单纯的码农,并不喜欢捣鼓指针引用,代码只是工具,为了实现系统的一种交互不友善的软件而已,只是工具而已。也许是我在专业方向走的太远,再回过头来看这些充满Trick的ACM招式总觉得有些幼稚无聊。

不过现实就是这么无奈,逼着你同流合污,我也还是会去看这些书。写这篇日志的目的,是告诉10年20年后的我,如果做了笔试出题者或者面试管,记得己所不欲勿施于人,记得ACM考不出你想要的人。