路人问:一本数据结构与算法的书,以数组举例,原本数组的概念挺简单的,可是书上写得像一种更广义的数学概念同样,有没有必要去理解? 算法
智者回答:该不应学,用不用学,这种问题,就是属于让别人无法回答的问题。严格意义讲,全部知识都是有意义的,确定或者否认的回答都是片面的。但具体对于你如今的阶段需不须要学,是因你而异的。个人建议是,你已经有这个困惑了,其实就是不想学了,那就跳过去,等你之后发现这个知识有用,再回头仔细看,捡起来。学习就比如旅行,任性一点儿不要紧,向你喜欢的风景出发。有时候回头看,发现本身错过了什么风景,再回头去追寻并不晚。不用惧怕错过,重要的是一直在旅程上。编程
以上这个小对话,正对应着咱们在学习中的心态问题。数组
好比在学习数据结构这门课时,不少同窗都表示本身对 C 已经遗忘了。甚至有的同窗说要回头去从新学 C 。我我的认为大可没必要。数据结构
在这里,和你们分享一个个人学习心得。最重要的一条,就是学习千万不要完美主义。编程语言
首先,要冲着本身的目标去。数据结构课程就应该把主要精力放在算法思路的学习上。课程中代码实现细节上,可能会存在一些不懂的编程语言的专有概念。其实理解一个大概,知道是干什么的就好。工具
第二点就是,学习不要奔着 100 分去。咱们不该该过分着眼于咱们还不够完美。学习不是要么 0 分,要么 100 分 的。80 分是收获;60 分是收获;20 分也是收获。有收获最重要。可是由于着眼于本身的不完美,最终放弃了,那就是完全的 0 分 了。post
若是你去听顶级学府,好比斯坦福的课程,就会发现,老师是不可能把全部细节都讲清楚的。你们必定都学过 C 语言,C 语言读取数据 scanf("%d",&a)
,这个 &a
为何要有个&
?可能有的老师会讲什么地址符一类的。可是我认为,顶级的老师会告诉你:先接受它,记下来,scanf 中,变量前面就是先加个 &
。由于若是非要介绍什么地址符,相信 99% 的同窗在初学的时候根本没法理解,反而头大,搞晕了,挫败感强,以为这东西好难。但其实这个难度是初学 C 语言不必接触的难度。等咱们真正深刻之后,再回头看,就天然而然理解了。千万不要试图一上来就搞懂一切。学习
就好像大一刚刚入门 C 语言的时候,不少同窗在学习过程当中就一直在诉苦,说很难,为何这里是这样写,为何那里是那样的。力求从一开始就搞明白一切。这样只会越学越体会不到用处。想要更快入门,就多了解怎么用,而不是为何这么用。会使用工具才能更好地理解工具。code
咱们没有那么多时间去把东西一开始就完美地弄明白,我以为这也不现实。但能在一开始优雅地用起来,不是更让人有成就感吗?get
所谓的「抓大放小」。若是一时没搞懂,问本身一句,这部份内容是否是当前必定要搞懂的知识。若是是,固然要死磕;但若是不是,记录下来,尝试继续前进,之后回头再看。
对于学习的知识,不要妄图一次性的彻底掌握,所谓温故而知新。多给本身一些回头看的机会,相信不少东西都会柳暗花明的。
本文是系列二,以后会陆陆续续补全系列其余。
附掘金技术征文连接