分享

怎么学好数据结构?

 辛雷谈学习 2021-03-18

想请教,刚学完C,怎么学好数据结构?我发现,数据结构中的某些算法好难理解,一些语句不是很容易明白。有没有必要深究每句语句?谢谢

记得我读大学的时候,做一个项目,碰到一个特别复杂的数据结构问题,找了我身边号称计算机最猛的同学,就是当年邓爷爷拍着两个小朋友的脑袋说,计算机要从娃娃抓起的那个娃娃之一,他没理我。他也觉得这个算法太难了。

我就高薪(300元,当时300元还是一笔巨款)从清华BBS上聘了一个水利系的高手,他说半个小时就能给我搞定,于是,我就看了一个长得特别清秀的小伙拿了一堆软盘过来了,从软盘里找了几十个源程序,用了半个小时,啥也没搞出来。于是他就回宿舍把自己的电脑拿到我的宿舍,让我去吃饭了。我当然不干了,因为我得学习。他就飞快的在键盘上敲打,我一生中从来没见过一个人敲键盘如此之快,又用了三个小时,就把这个特别复杂的算法帮我弄出来了。

他说他这三个小时,市场价至少值一千大元。但是因为他先前和我承诺半个小时,所以又多收了五十块。几天之后我又找到他,挪用了用来配置新电脑,买新内存的一千元给了他,让他教会我这段代码,几天之后,他又把这一千块钱,退了我五百。因为他实在是受不了了,就没见过像我这么笨的人,怎么教也教不会,这就是人和人之间的差距。宁可五百块的巨款不要了,也不想再遭受教会我这个笨蛋的折磨。

所以说,数据结构这门课程,我个人感觉,要说难的话,要多难有多难。几周编不出来,几个月几年编不出来一个看似很简单的算法也都很正常。所以说,数据结构这门学科,是一个典型的请高手的问题,就像玄幻小说里突然请一个大长老、绝顶高手,危急时刻,就帮你把问题化解了。靠自己,那是万万不可的,当然也不能排除,你未来也是一个绝顶高手的可能。

所以,你碰到弄不出来的,要从淘宝,京东买书,从CSDN上下载源代码,到知乎上请教高手,实在不行,就花钱买高手亲自帮你编写,因为有些代码没有适合的源代码,就像我说的 那个水利系的高手一样。现在目前,像苹果、微软、谷歌、淘宝、腾讯等的年薪百万以上的程序员刨除掉股东、资深之类的,相当一部分就是算法高手,也就是在数据结构方面有相当的天赋和能力。

以我看来,你要成为数据结构高手,首先你的数学天赋从小就得极高,所以,计算机从娃娃抓起,这句话是非常有深远意义的。一般来说,小学四年级之后,再学编程,成为编程高手的概率就很低了,就不用说反应速度、数学天赋的开发,对又长又难的数据结构的分析,还有思维长度等,都得从小培养。就仅仅说手指的灵活性,都可能是一个小因素,过了13岁之后,再开始练毛笔字,能够写德特别好的就很少了,编程也是,年龄大了,手指的骨骼和肌肉都定型了,打字速度就很难提高上去了,这点,非程序员可能觉得不重要,但我个人感觉这是相当重要的一个因素。如果你手跟不上,你的思维就总是被打乱,编程效率大打折扣。

记得我当年去参加计算机应聘考试,第一关的面试,一些公司直接就把某些同学淘汰了,因为按照简历上,他们说自己精通C语言之类,结果连盲打都不行。一边敲代码,一边看键盘,打字都不行,怎么可能是编程高手呢?

所以,对于数据结构这门课程,我的看法是大学考试,大部分同学想办法应付过去就可以了,把最基本的算法像排序,栈、堆、内存管理、树、环等一些基本的东西能够编写出来就可以了,要求太高没必要,你也做不到。

但如果你立志于成为一个编程高手,找一个高薪的程序员工作,那就得下大力气学习数据结构,方法有深入思考长长练、深入思考无间隙等,就是说你光照着例子编代码是绝对没用的,你得不停的想,站着想,坐着想,躺在床上想。一个复杂的算法想数个小时、数天、甚至数月之内,有时间就琢磨,然后经过数年的坚持,如果你的大脑清晰度没用被伤害,你或许也能做到从大三大四才开始学编程,也能成为一个编程高手。否则你就准备好培养自己的小孩,从娃娃抓起,让他在小学四年级之前,就开始编写相当难度的计算机算法题目了。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多