【学习心得分享】请大家抓大放小,不要纠结于C++语言的语法细节

来源:2-2 使用模板(泛型)编写算法

liuyubobobo

2016-12-20

很多同学看到这一小节,都表示自己对C++不熟悉。甚至有的同学说回头去重新学C++了。我个人认为大可不必。在这里,和大家分享一个我的学习心得。最重要的一条,就是学习千万不要完美主义。


首先,要冲着自己的目标去。相信选择这个课的同学都是冲着学习算法去的。那么就把主要精力放在算法的学习上。课程中代码实现细节上,可能会存在一些不懂的C++专有的概念。比如友元函数。其实理解一个大概,知道是干什么的就好。说实话,我在准备这里的时候也很纠结,一度思考要不要使用一个自定义函数,比如叫showResult一类的直接取代这个友元函数。但是最终为了严谨起见,还是选用了C++的正规写法。但是大家在这一部分完全可以自己灵活处理。我们的目的只是打印出结果。达到这个目的就好了。


我了解到很多同学的首选语言不是C++语言,那么,就不需要把C++语言理解透。我个人是很建议大家能够把算法的思维掌握,用自己熟悉的工作语言再做算法的实现的。在这个课程的后续,会有不少指针对内存的处理,大家了解,是在开空间;回收空间就好。包括函数指针,就是把函数当参数而已,C++的具体写法貌似很复杂,但是接受他,用自己熟悉的语言改造。其实这个过程,也是在锻炼自己能更灵活的使用自己熟悉的语言。


第二点就是,学习不要奔着100分儿去。60分万岁。(注意,是学习,不是考试。)举个简单的例子——背单词。我发现很多同学拿着红宝书,第一个list都没翻过去就放弃了。这是因为每天背完第一个list以后,第二天发现第一个list还是有很多单词没掌握,然后就继续背第一个list。然后一周后,发现自己第一个list都搞不定,觉得英语好难,彻底放弃了。这样是不对的。背了一个list,能多记一个词,都是进步。就算一个词都没记住,模糊有了印象,也是一种进步。我们不应该过度着眼于我们还不够完美。学习不是要么0分,要么100分的。80分是收获;60分是收获;20分也是收获。有收获最重要。但是因为着眼于自己的不完美,最终放弃了,那就是彻底的0分了。


其实学习计算机同理。如果你去听顶级学府,比如斯坦福的课程,就会发现,老师是不可能把所有细节都讲清楚的。大家一定都学过C语言。C语言读取数据,scanf("%d",&a); 这个&a为什么要有个&?可能有的老师会讲什么地址符一类的。但是我认为,顶级的老师会告诉你:先接受他,记下来,scanf中,变量前面就是先加个&。因为如果非要介绍什么地址符,相信99%的同学在初学的时候根本无法理解,反而头大,搞晕了。挫败感强,觉得这东西好难。但其实这个难度是初学C语言没必要接触的难度。等我们真正深入以后,再回头看,就自然而然理解了。千万不要试图一上来就搞懂一切。所谓的“抓大放小”。如果一时没搞懂,问自己一句,这部分内容是不是当前一定要搞懂的知识。如果是,当然要死磕;但如果不是,记录下来,尝试继续前进,以后回头再看。


对于学习的知识,不要妄图一次性的完全掌握。所谓温故而知新。多给自己一些回头看的机会,相信很多东西都会柳暗花明的:)


:关于这篇学习内容,我后续又写了一份加强版。有兴趣的同学可以在我的公众号收看:

https://mp.weixin.qq.com/s?__biz=MzU4NTIxODYwMQ==&mid=2247483836&idx=1&sn=90854aa76507281403e4dd9cd434a12b&chksm=fd8caefacafb27ec78f999fde4f1217c04c6e2ff28cf51fe511d8fa29d484d9281ff91de8c9c#rd


也欢迎大家关注我的微信公众号:是不是很酷

http://img.mukewang.com/szimg/5af513a9000181fc04300430.jpg


大家加油!:)

写回答

20回答

LOVE小狼

2017-02-09

老师真是一语中的,以前自己学习的时候都是学东西没完全掌握就感觉很挫败,感觉什么都很难= =

26
0

任小青

2017-01-16

#include <iostream>

using namespace std;

int main(void)

{

    cout << "I agree with you!" << endl;

    system("pause");

    return 0;

}

9
0

ywang04

2017-01-19

学习方法确实很重要  特别是自学的过程中 搞不好就剑走偏锋了 浪费时间 还达不到效果 谢谢老师的分享

7
0

aiwebops

2017-02-24

#!/usr/bin
print("I agree with you!")


3
1
纸女神

I agree with you!

2018-01-19
共1条回复

AsherLu

2017-01-15


#include<stdio.h>

int main()

{

printf("I agree with you\n");

return 0;

}



3
0

田书书

2017-04-11

温故知新,柳暗花明。

2
0

摘星fy

2017-02-17

我躺枪了,波总老是说中我的情况

2
0

星辰M

2018-05-11

看了这篇文章突然变成老师的粉丝,说的很对啊,之前学东西一直是立志要都扣细,变成很牛的人。看书也是,一个小的地方也要查很多资料理解,花了太多时间学书里自己还不能理解却并不重要的东西,最后也没有留下印象,反倒有很深的挫败感。

看了这篇文章收获四个字“抓大放小”,更深领悟了“温故知新”的情况。感谢。

二十分也是进步,唯有进步值得信仰。

1
0

慕侠9454861

2017-10-18

个人认为老师“抓大放小”的思想很是精辟,一直以来是本着个思想还活到现在的,不然入门的时候就已经死了,活下来,才有机会了解底层,了解细节。

1
0

老猪他爸

2022-10-12

不能更同意
0
0

code_bean

2022-07-16

喜欢这段:~~~

如果一时没搞懂,问自己一句,这部分内容是不是当前一定要搞懂的知识。如果是,当然要死磕;但如果不是,记录下来,尝试继续前进,以后回头再看。


对于学习的知识,不要妄图一次性的完全掌握。所谓温故而知新。多给自己一些回头看的机会,相信很多东西都会柳暗花明的:)

0
0

慕的地4329981

2019-12-05

19年的来报道了

0
0

我有明珠一颗

2019-06-03

老师说得很对,我们应该把重点放在算法上,谢谢老师的分享!

0
0

尽情折叠我吧

2018-11-20

大家加油

0
0

lefterwu

2018-09-29

感谢老师的一番话,很有感触。对那句 Done is better than perfect 有了新的理解

0
0

bing_it_on

2018-03-11

恩恩恩

0
0

binary_life

2017-11-10

其实重载小于方法和重载<<方法都可以java相同的重写父类方法以及toString办法理解,理解编程语言的类似性,就可以做到举一反三,不难理解其他语言。

0
0

慕用2942571

2017-09-20

老师的话很棒,让我又领悟到一些东西,感谢老师

0
0

慕粉2218049858

2017-09-19

Hello World !!!!


0
0

鎈卟誃尐姐嫃杺嬡沵

2017-07-21

老师 一语道破天机呀 。。。。

0
0

算法与数据结构(C++版) 面试/评级的算法复习技能包

课程专为:短时间内应对面试、升职测评等艰巨任务打造

11187 学习 · 1614 问题

查看课程