别把编程当脑筋急转弯
2011-04-13
这本书很好,总结了不少好的面试时的数据结构和算法的题目,如果没有一定的理论基础和实践是无法看明白这些题目的。
Google的研究员吴军写过《数学之美》,把深奥的算法通过通俗易懂的语言描述出来,而《编程之美》,也是把各种实际中的问题抽象出来,形成一个个的专题,这些貌似看起来很美。但是,我想说的是,这美的背后是什么,不知道看过之后,是否有人思考过。
第一层,美的背后,其实是经历过无数次的尝试得出的结论,比如贝叶斯、TFIDF、PageRank、BloomFilter、余弦定律等的应用,如果没有大量的实验评估数据,是不可能发现或者证明这些方法对解决这些问题是有效的。
第二层,看明白了、能拿过来用之后,不要有原来这么简单,我以后就往简单上去考虑的想法,实际上,能写出书的、能总结的,都是已经成熟的方法,问题的核心的部分已经被简单、优美的方法解决了,现在还剩下难搞的部分,而难搞的部分,估计不会有什么太简单方法。
说上面两层,实际上想说别人写的都是“美”和“简单”的部分,如果认为编程和算法像脑筋急转弯一样,那就错了,实际上“丑”和“复杂”部分人家没说,要不然微软、Google也不会养那么多工程师了。
另:这本书在当下面试还是很管用的,特别是去面试哪些号称很牛逼的上市的、没上市但有风投的互联网啊、游戏啊、电子商务啊、移动互联网啊等公司,因为面试官很喜欢问一些貌似很有水平的题目,以显得这些公司很牛,另外他们进去的时候也被这样虐待过。