八年程序员之书籍篇--Algorithm(一):综述

此系列名为Algorithm,实际应该叫做Data Structure & Algorithm,原因是两者不分家,通常是绑在一起的,记得我们的数据结构结构老师第一节课就告诉我们一句话:程序=数据结构+算法,后来学到的另一句话是数据结构定了,其上的算法就定了(抱歉,此两句的出处忘了),可见两者在程序员生活中的重要性和联系紧密性。事实上,大学的计算机课程软件方面对工作有比较大的帮助的我觉得就3门:程序设计语言、数据结构及算法、操作系统。如果说前者过于基本,后者过于理论的话,数据结构和算法实在是实用价值尤大。算法题在程序员面试中特别常见,估计很多人都会在此时想起来当时为啥没好好学学算法呢?^_^

 

此系列书籍分以下几类:

1.基础数据结构和算法的汇总、罗列、讲解,即大学的数据结构和算法课程教材类,Mark Allen Weiss的《Data Structures and algorithm Analysis》为其代表;

2.算法设计技术,即大学的算法设计教材类,Jon Kleinberg&Eva Tardos的《Algorithm Design》为其代表;

3.数据结构和算法编程实践,Jon Bentley 的《programming pearls》为其代表;

4.算法的数学基础类,此类书籍理论性很强,如果说以上在工作中的作用还是看得见的话,这类可以算是阳春白雪、高山流水了,代表有Ronald  L. Graham &Ronald  E. Knuth&/ Oren Patashnik的《Concrete Mathematics》等,本人还没上升到数学理论的阶段,此类书不述;

 

就个人阅读经验来看,建议的阅读顺序为读一本算法汇总类->编程实践类->上升到算法设计理论;这些书通常不会太厚,阅读起来时间差不多,最主要的功夫要花在做题上,否则看过后很容易就忘了!

 

几点感想:

1.算法似乎很飘忽,因为工作中实际上用得并不多,除了面试时^_^,深入研究的话,那么好像又都是数学了,但其对思维的锻炼作用不可忽视,对吧?我们程序员是不是需要严密的逻辑思维呢?

2.算法的学习容易陷入一个圈子,一看就懂,一学就会,可是放书就忘,用的时候想不起来具体是咋回事!比如说吧,我在部门曾当过一段时间的面试官,其中笔试有一道题是快速排序,我评卷的记忆是得分率不到1/3!面试提问对常见排序算法的理解,稍加变化就很难答上来,比如只需要选出N个数中前M个数等,事实上这都不难对吗?

3.怎么避免2中这个问题呢?书中告诉了我们算法是这样的,但少见告诉我们为啥是这样?我的感觉是:1.探究算法的来源,就是怎么才能想出这样解决?该算法有什么逻辑必然性?2.实践:包括解题、编程等。

4.学习算法需要专注,不要浮躁,否则最好只留下一些模糊的记忆,需要的时候又想不起来。

 

让我们进入算法的世界吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值