中级农民
- 积分
- 112
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2011-3-22
- 最后登录
- 1970-1-1
|
本帖最后由 Sun 于 2013-11-10 18:10 编辑 . 1point 3 acres
题目里的“编程时间”我觉得改为“投入时间”更为妥当一些。同样是非CS小白,最开始天天学编程语言语法特性这些东西,后来才知道,科班计算机的根本不会在这个上面投入时间,语言直接看个大概就编程写代码实践,在写代码的过程中不断吸收不断更新才是最有效的。而且去年这个时候我还抱着严蔚敏那本《数据结构》,不怕大家嘲笑,我看了两三个月这本书才痛苦地过了一遍,原因是我觉得它实在太难让人看懂了(是的,在我看书的时候我遇到看不懂的总是去怀疑是自己理解能力太差了,但现在我想说的是,是没找对适合自己的书)。看完这本书之后,我觉得自己除了知道有最短生成路径、prim算法、各种排序、二叉树各种树等概念之外,更多收获到的是痛苦,对自己信心丧失以及时间花得太多的深感落后的恐惧。最可悲的时候,之后我还是特意跑图书馆借各种其它的数据结构与算法的书来弥补严蔚敏那本书不太成功的经历,其结果是时间是花了,对数据结构这部分知识是有了更多的了解了,但是很有限,而且没有实际的算法题来对数据结构做任何实战演练,这些东西很容易忘记。
所以我的建议,直接上题目吧。在做的过程中遇到需要用数据结构的时候再去找对应程序语言的库类,翻翻这些标准库里各种数据结构的详细文档,多查阅这个。
这里是普林斯顿大学那本《Algorithms》上的代码库类,各种Java版本的数据结构。leetcode上基本的数据结构及其应用差不多都cover到了。另外,如果你最开始觉得leetcode有些难(事实上里面水题也不少啊,看rating高低就知道了,但这些所谓的简单题目也很有用处的),可以试试Project Euler版上好像有人做过,但是推荐的人貌似不多,这个是纯数论的东西,Google中国校园招聘的博客比较推荐这个,都是数学题,不需要什么数据结构知识,但可以提高你在算法里数论这一方向上的功力。我做了90多题,感觉后面越来越难做不下去了。推荐这个不代表这个是最好的,只是这个是你现在马上就能上手做的,纯粹为了找成就感。刷题的话,还是leetcode,cc150等更接近于面试。
update:回复完了才知道自己像个吐槽+打小广告的
|
|