爽爽贷怎么样:我认为应该这样学编程1

来源:百度文库 编辑:中财网 时间:2024/04/28 07:49:22
说说我个人认为该如何学好编程。希望各位别笑话偶啦(偶容易害羞啦^_^!!)

  第一阶段:我觉得我们应该了解一下几种常用语言(选一种你自己喜欢的了解就行)的基本语法和规则(比如:c,c++,c#,java,perl,Delphi,vb等等)。然后可以开始学学算法,在此之前当然得必须具备应有的数据基础了(数学分析,线性代数,离散数学,概率统计,组合数学)。学算法,当然得了解它的主要思想,而不要过分得拘束于特定语言的技巧上。对一些基本的算法和数据结构应该做到了如指掌(最好能背诵),起码得熟悉以下这几种数据结构和算法:队列、栈、压栈弹栈*作、建立逆续/顺序链表、快速排序、插入排序、归并排序、二分查找、二叉树、B树、深度优先、宽度优先、最小支撑树(一些基本图算法)。算法(包括数据结构哦),我认为应该是你以后学学习的重要基础,这一步没走好的话,后面的路会比较难走哦!成为高手的梦想将会很难实现哦。没有坚实的算法和数据结构基础,写出的一些代码常常被人认为是垃圾代码。(呵呵,可能有点言过其实!)。觉得这个阶段学的不错的话,可以去OJ做一些题目,呵呵练练,据说很用。比较好的有acm.pku.edu.cn acm.tsinghua.edu.cn等等。总之,这个阶段学习很重要,关乎你以后学习中的方方面面。

  提供一些书目和我对这些书的一些看法:

  CLRS的《算法导论》(Introduction to Algorithms,Second Edition):这本书我想大家都听说过吧。很适合算法初学者体会算法的魅力,这本书讲解的很全面,算法都用伪码实现,对编程语言要求不高。书的前几章是一些数学和概率基础和算法分析的一些说明,后面几章是一些算法的描述。对NP问题感兴趣的话,可以看看这本书的VII部分中的NP-Completeness。我觉得这本书比较好的一部分是它的附录部分,对前面的一些背景知识公式进行了详细的阐述和证明以及一些专有名词进行了索引方便检索。这本书在国内目前只有英文版的,但南大有个中文版的(不过他们太无耻了居然说是他们自己编著)我看了那个版本的,其实是第一版的中文翻译叫《现代计算机常用数据结构和算法》。其他的我想我不需要多说了,有兴趣的可以去体会一下;

  Robert Sedgewick(Don Knuth的高徒,不会不知道Don Knuth吧!!!)的《算法I-IV(c++实现)基础、数据结构、排序和搜索》(Algorithms in C++ Parts 1-4 Fundamentals,Data Structures,Sorting,Searching)以及《Algorithms in C Part 5 Graph Algorithms》:他的书写的浅鲜易懂,所有的算法都用代码实现了,普林斯顿也在用。我只看了1-4的一部分,图那部分前几天刚买还没看。很不错,里面的算法都是比较常用的一些算法。不过建议别看中文版的那本,我买了中文版的很是后悔,翻译的太太。。。次了(语言太晦涩了,翻译的那人好像没学过计算机),英文版的可以买高教出的,很便宜好像30.00吧!电力的有一本C实现的英文版,不过要78.00大洋。

  [沙特]M.H.Alsuwaiyel的《算法设计技巧与分析》(Algorithms Design Techniques and Analysis):这本书主要关注的是算法设计部分。分析了比较多的算法。对数据结构这不是很侧重,这本书比CLRS更具有专业气息,感觉更像教材。由于我也没看完,所以不敢多做评价,只能说说我目前看的感觉。

  Sartaj Sahni《数据结构、算法与应用》(Data Structures,Algorithms,and Application in C++):清华的那本C++数据结构就是抄这本书的,书对C++语言有一定的要求,呵呵所以对语言不是很熟悉的话,看起来有点痛苦哦!所以并不是很推荐(如果C++不是学的很好)。书中除了对递归没有详细的阐述,可以说是个缺陷吧!其他的描述还是很不错的!翻译也相当不错。

  Jon Bentley的《编程珠玑》(Programming Pearls,Second Edition):好书的说,没看完的说!最喜欢的是这本书每章的后面都提供了一些进阶阅读,很是欣赏这一部分。不是说书中其他部分就不好,这本书,确实很不错,对一些算法的使用时机给了比较好的引导,什么时候用合并排序,什么时候用插入排序,二分查找的重要性。对算法在实际中的应用给予了很好的启发和评价。有英文版的,推荐看英文版!中文版的翻译和一般。呵呵!!不好意思,偶还在看中,只能说到这啦!!!