文档章节

用哲学的思想来学习C++

 宁哥实战课堂
发布于 2017/05/21 16:26
字数 1356
阅读 9
收藏 0

之前说了C++的重要性,现在就可以来关注另外一个关键话题:如何轻松的学懂它?

两个重点:1是轻松;2是学懂;

用哲学的思想来学习C++

C++的语法细节非常多,很多书上也拘泥于这些纷繁复杂的细节,然后加上本来就有一些不太合理的东西(初学者是不敢怀疑它的问题,如:很容易出现错误的多继承,这在比如PHP中就去掉了,使用接口来优化),使得C++变得扑朔迷离,初学者更是学的云里雾里。

它和C语言的难点不同,C语言的难度在于语法原始,开发起来很不友好,C++的难度在于抽象+不太友好的使用。

这是C++与生俱来固有的特点;

对于重点之一“轻松”,建议灵活的学习,用哲学的思想来学习C++:

用哲学的思想来学习C++

1:辩证唯物主义来看待。

它有好也有不好,不要一遇到看不懂的就怀疑自己的能力,要坚信它之所以要发展,就是因为它之前不够优秀,那就是一个相对论了。你能理解多少就理解多少,能更多理解就更多理解,不要有挫折感。

2:要敢于怀疑它

编程其实没有标准答案,只有更好(这体现在功能实现上和代码质量上的相对论)。如果有矛盾了或者想不通了,那就应该怀疑它,要敢于怀疑它,自己去寻找能解释它的理由,起码能自圆其说的可行性答案,这种答案不限于C++本身,可以是其他编程语言的启发,可以是其他科目的启发,甚至可以是客观世界的认识和道理。

这样学C++就变成了一种自我修炼了,更深刻的认识世界,一举两得,你也就不会过度的纠结于那些苦涩无味的语法细节,比如:引用,比如:多态。通过去懂得客观世界的道理,不但有利于提升你的精神财富,还能轻松理解而学懂。更重要的是:它会变得亲切可爱了,因为它就融在你的日常生活之中。

3:物极必反,不要走极端,需要的是坚韧和坚持

对C++的学习其实就好比打太极拳,你来我往,酷似螺旋上升。它不能一下子打趴你,因为你至少也知道if,else,for这些单词,也算走进了它的世界。但你也不能一下子把它吃完。不要因为某个小问题把自己折磨的死去活来,需要的是经常、反复、坚持。

不要走极端,要俯瞰它,最好做到“一些漫不经心的说话,将我抑或揭开”的境界。巧妙的多角度的去接触它,坚持到底,水滴石穿,持之以恒。久而久之,慢慢的合二为一,你就会看的到它的可爱了。

4:抓西瓜丢芝麻

不要面面俱到,不要把自己训练成百科全书。要有的放矢,要抓重点。C++中的西瓜就是对面向对象编程思想的渊源和发展以及表现形式的理解,至于它的库什么的都只是编程思想的应用而已。对于一个编程认识不够的新人,要善于抛开次要,抓住重点。当你懂了编程思想之后,其他的也就能很快的理解了。

5:去伪存真,通过现象看本质,要敢于说“不会”:

我本科学的是电子,从大一开始就接触编程,硕士的时候也是科班专业,继续接触编程,一直到现在也有十多年了。软硬件都学过。但我现在越来越喜欢说“不会”这个词。因为面对客观的知识,学的越多,你会发现你会越来越渺小,需要学的还有很多很多。

用哲学的思想来学习C++

所以,“不会”二字是很客观的尊重知识的表现。初学的时候不会,是因为真的不会,想要探索进而去入门;深入的时候不会,是因为尊重客观、想要百尺竿头更进一步。中间那种境界的时候是很不喜欢这个词。而这一层是很容易就到了,又很难走出来。所以你有很多的时候在这一层,不敢说是因为没底,但这样会阻碍你巨大的学习潜力,所以要敢于说“不会”。这是让你最真实的展现在客观科技的世界中,因为它客观,所以要你客观,才能融会贯通。

对于重点之二“学懂”,建议开始关注自己的学习心情了,这样才能在编程世界中游刃有余,走的长远。

我本身也不喜欢拿它的纷繁复杂的语法细节来吓晕初学者,因为那样没有任何意义,因为你已经就怕它了。懂,才是硬道理。在我的所有上课中都以它为宗旨。只有这样,一切教学行为才变得有意义。真正的高手不是把简单的东西变复杂,而是把复杂的东西变简单...

© 著作权归作者所有

共有 人打赏支持
粉丝 5
博文 72
码字总数 77184
作品 0
长沙
其他
用哲学的思想来学习C/C++编程

C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到...

小辰带你看世界
06/02
0
0
C语言/C++对编程学习的重要性!

C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到...

小辰带你看世界
06/02
0
0
C++基础教程之C/C++区别

C/C++基础教程之C/C++区别 这是C++教程得第一步,后续会持续更新哦!欢迎新手(具有C基础),老鸟可绕道,可指导。 C++标准输入和输出 C++标准输入和输出分别是cin和cout,用法非常简单 cin>>n...

这个人很懒什么都没留下
09/01
0
0
C语言/C++程序员编程基础学习代码训练

C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到...

小辰带你看世界
03/27
0
0
C语言/C++编程学习:不做C/C++工作也要学C/C++的原因!

C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到...

小辰带你学知识
06/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

70.shell的函数 数组 告警系统需求分析

20.16/20.17 shell中的函数 20.18 shell中的数组 20.19 告警系统需求分析 20.16/20.17 shell中的函数: ~1. 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段...

王鑫linux
今天
2
0
分布式框架spring-session实现session一致性使用问题

前言:项目中使用到spring-session来缓存用户信息,保证服务之间session一致性,但是获取session信息为什么不能再服务层获取? 一、spring-session实现session一致性方式 用户每一次请求都会...

WALK_MAN
今天
5
0
C++ yield()与sleep_for()

C++11 标准库提供了yield()和sleep_for()两个方法。 (1)std::this_thread::yield(): 线程调用该方法时,主动让出CPU,并且不参与CPU的本次调度,从而让其他线程有机会运行。在后续的调度周...

yepanl
今天
4
0
Java并发编程实战(chapter_3)(线程池ThreadPoolExecutor源码分析)

这个系列一直没再写,很多原因,中间经历了换工作,熟悉项目,熟悉新团队等等一系列的事情。并发课题对于Java来说是一个又重要又难的一大块,除非气定神闲、精力满满,否则我本身是不敢随便写...

心中的理想乡
今天
34
0
shell学习之获取用户的输入命令read

在运行脚本的时候,命令行参数是可以传入参数,还有就是在脚本运行过程中需要用户输入参数,比如你想要在脚本运行时问个问题,并等待运行脚本的人来回答。bash shell为此提 供了read命令。 ...

woshixin
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部