白驹过隙,这篇文章距今已有一年以上的历史。技术发展日新月异,文中的观点或代码很可能过时或失效,请自行甄别:)

数据结构其实去年3月份左右就开始自学,一直学到了二叉树,至于为什么要重头再来,有以下2个原因:

1.去年学的时间准确来说是3月份到6月份,说实话,学的并不好,基本上都没有动手敲过代码,对,没有任何代码,只是基于<<大话>>上的代码自己分析了下 懂了其原理,然一个程序员只有动手实践了后才能有更深的体会,其二因为某些原因暑假去了某工厂当暑假工,那种完全的资本主义剥削的工厂,所以每天真的没有什么时间来继续学习,所以暑假做的也只是趁每天午休半小时的时候啃完了英文版的<<C traps and pitfalls>>,其它的根本找不到时间,时间一久,很多东西就忘记了.而付出的代价就是开学后把<<C primier Plus>>,<<Pointers on C>>重新啃了一遍.数据结构?说实话,基本忘记了.
2. 一个伟大的程序猿的基础肯定是好的,而我却连数据结构都没自学完(指的是基本的链表,图,树,查找等基本知识,非精通,请勿钻牛角尖用诸如"我学了10年C语言都不敢说学完"之类的话来吐槽我,谢谢:)),同时在学习数据结构的时候深深被那些东西给吸引了,它的魅力,恩,允许我这么说(事实上也确实是)而再写了一些小东西的时候更觉如此.

基于以前的教训,这次重新学习.采用的书依旧为程杰的<<大话数据结构>>,原因很简单,很多高深的东西讲的浅显易懂,当然还有Mark Allen Weiss的<<数据结构与算法--C语言描述>>,因为我发现里面讲的更细,更深.

采用的方法则是:

1.先学习<<大话>>,然后在理解的基础上自己动手把代码写一遍,同时在博客上写相应的学习笔记,以此加深印象.某些知识则写一两个实用的小程序来巩固.
2.学习完<<大话>>后,学习<<数据结构与算法--C语言描述>>,加深对数据结构的某些知识细节的理解.

学习时间:2个月(3月-5月中旬)

最后,用这句在知乎搜索数据结构学习方法的时候看到的话勉励自己:无它,唯手熟尔. 加油!努力成为一个伟大的程序员