文档章节

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

 宁哥实战课堂
发布于 2017/05/21 16:26
字数 1356
阅读 9
收藏 0
点赞 0
评论 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
博文 71
码字总数 75971
作品 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程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到...

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

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

小辰带你学知识
06/13
0
0
C语言/C++编程学习:不找C/C++的工作也要学C/C++的原因!

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

小辰带你看世界
06/01
0
0
Java程序员如何高效而优雅地入门C++

Java程序员如何高效而优雅地入门Cpp,由于工作需要,需要用C++写一些模块。关于C++ 的知识结构,虽说我有过快速学习很多新语言的经验,但对于C++ 我也算是老手,但也还需要心生敬畏,本文会从...

小欣妹妹
04/23
0
0
C语言/C++永远都不会过时的编程语言

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

小辰带你看世界
03/30
0
0
C++ STL编程轻松入门 2

1.3.3 STL和GP,GP和OOP   正如前面所提到的,在STL的背后蕴含着泛型化程序设计(GP)的思想,在这种思想里,大部分基本算法被抽象,被泛化,独立于与之对应的数据结构,用于以相同或相近的...

暖冰
2015/11/21
0
0
C语言/C++编程学习—绘制神奇代码之星空动态

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

小辰带你看世界
03/26
0
0
C语言/C++编程学习:获取电脑开机时间

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

小辰带你看世界
05/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

eclipse SVN 项目重新定位

SVN 重新定位 1.方法一 首先:在Eclipse中选择Windows-> Show View->others 就会出现【SVN资源库/SVN Repositories】,选中后,点击确认; 然后:选中原有的地址,选择【重新定位/Relocate】...

qimh
10分钟前
0
0
Linux 第29课 ——Linux集群架构(下)

Linux集群架构(下) 八、DR模式搭建 8.1 准备工作 试验需求三台机器: 分发器,也叫调度器(简写为dir) 192.168.112.136 ying01 rs1 192.168.112.138 ying02 rs2 192.168.112.139 ying03 vip...

feng-01
15分钟前
0
0
轻松搭建svn版本管理工具+svnmanager管理客户端

前面的文章有写过svn版本管理工具的安装是基于svn的安装包进行安装,对于svn与apache的结合还得下svn和apache的模块进行结合过程比较繁琐,今天来介绍下通过centos的yum来安装svn能够快速安装...

javazyw
25分钟前
0
0
keepalived配置高可用集群

Linux集群概述 根据功能划分为两大类:高可用和负载均衡 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务 实现高可用的开源软件有:...

TaoXu
30分钟前
0
0
mysql联表批处理操作

1 概述 mysql中的单表增删改查操作,可以说是基本中的基本. 实际工作中,常常会遇到一些基本用法难以处理的数据操作,譬如遇到主从表甚至多级关联表的情况(如一些历史问题数据的批量处理),考虑到...

社哥
33分钟前
0
0
IntelliJ IDEA 详细图解最常用的配置,适合刚刚用的新人。

刚刚使用IntelliJ IDEA 编辑器的时候,会有很多设置,会方便以后的开发,磨刀不误砍柴工。 比如:设置文件字体大小,代码自动完成提示,版本管理,本地代码历史,自动导入包,修改注释,修改...

kim_o
47分钟前
0
0
Google Java编程风格指南

目录 前言 源文件基础 源文件结构 格式 命名约定 编程实践 Javadoc 后记 前言 这份文档是Google Java编程风格规范的完整定义。当且仅当一个Java源文件符合此文档中的规则, 我们才认为它符合...

niithub
50分钟前
0
0
java.net.MalformedURLException异常说明

1.异常片段 Java代码中,在进行URL url = new URL(urllink)操作时,提示以下异常信息,该类异常主要问题出在参数urllink上面。 异常片段1 java.net.MalformedURLException at java.ne...

lqlm
50分钟前
1
0
CentOS7修改mysql5.6字符集

解决办法:CentOS7下修改MySQL数据库字符编码为UTF-8,UTF-8包含全世界所有国家所需要的字符集,是国际编码。 具体操作如下: 1.进入MySQL [root@tianqi-01 ~]# mysql -uroot -p Enter passw...

河图再现
52分钟前
0
0
DevExpress v18.1新版亮点——WPF篇(一)

用户界面套包DevExpress v18.1日前终于正式发布,本站将以连载的形式为大家介绍各版本新增内容。本文将介绍了DevExpress WPF v18.1 的新功能,快来下载试用新版本!点击下载>> Accordion Co...

Miss_Hello_World
54分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部