如何优雅的开始学习C++

论坛 期权论坛 期权     
初见时的微笑   2019-7-21 15:07   2411   0
所谓万事开头难,编程这个开头太难了,tm太难了。从这个栏目创建之初,我就在想如何优雅的让没有学过编程的人自然而然的完成hello world程序的学习。我想了很久都不能做到优雅。一般知识的学习讲究循序渐进,但是学习编程,至少在学习hello world这个程序,真做不到循序渐进。因为代码界优秀的前辈们做了太多优秀的工作,导致初学者不可能从最初开始学起,也学不会。说实话,到现在为止我并不能很清楚的讲出计算机在运行了hello world这个程序以后做了哪些事情。本篇幅主要讲解个人总结的计算机知识体系的学习方法。
个人认为如果把一个知识体系学习的过程比作从0开始到无穷大依次累积的过程的话,计算机知识体系的学习并不是从0开始学习,也不可能从0开始学习。而是直接从中间某个位置开始学习,不同的领域起始位置不同。比如会有1024、4096、8192等位置,然后随着知识体系的增加会逐渐填补中间空余的位置。注意是填补中间空余的位置,而不是填完。正如数字不能穷举完成,同样计算机知识体系也不可能学完。中间空余位置填补的过程是非常缓慢而且是永远填不完的。填完了整数,还有小数;填完了小数,还有有理数;填完了有理数,还有无理数……越填坑越多,也越难填。这就是计算机知识体系建立的过程。计算机知识体系的学习并不是一个线性的过程,即使是同一领域,也需要从各个不同层面进行学习,也就是整数,小数,有理数,无理数等在同时学习的过程,你必须知道它们位于哪个位置,这点很重要。有天你的知识点粗略的串起来了,你就顿悟了。
以上理论也适用于C++语言的学习,C++语言的学习同样也是需要顿悟的。假设C++语言处于计算机体系知识的2^10-2^20范围,把学习的过程比作填空的过程。你就要先承认2^10也就是1024之前的理论都是对的,要建立在1024的基础上开始学习。知识要学扎实,一步步来,在这里是不适用的。你得承认一些空中楼阁,这也是没办法的。即使你对其中某点进行深追也要找一个落脚点,因为找到知识点的源头很困难。刚开始学的时候填的都不是整数,甚至是以1024为单位在填知识空白。
鉴于本栏目的课程只是C++基础教程,所以只对其进行语言层级原理的学习,不做深入探讨。课程结束了可能你会将2^10-2^18知识串起来,仅仅是串起来,而且是不全面的串起来,你就可以从事C++大部分的开发工作了。这个开发仅仅值得是语言层面的开发,要开发具体的功能还需要功能相关的专业知识。就好像你认识了字,会造句了,但是能不能写出某个专业的文章就是另一回事了,因为你需要专业相关的知识。能不能写出一篇好文章,那就是更高层次的要求了。每个人的知识都是按照自己理解的片面总结,看我分享的同时也可以看看别人的理解,然后融合为自己的东西。语言的学习不要闭门造车,要多看别人的代码,站在巨人的肩膀上做事情。
如果把计算机知识体系比作如来佛的话,学完了C++入门专栏以后,就能和太上老君炼丹炉里的煤灰一个级别。嗯,对,就是这样的。但也不宜妄自菲薄。
提前声明下,本专栏教程里所有的专业名词的解释都是基于个人理解进行解释的。有基础的同学可能会发现很多都是片面的,甚至有些表面上看是错误的,并不是官方解释。之所以会这样,只是为了让大家好理解。因为当初学编程的时候很多专业名词的定义都已经背下来了,但还是不理解。
虽然专业名词的解释有缺陷,但是并不影响该词在上下文中的应用。随着教程的深入,我也会慢慢的对专业名词解释进行补充,直至与官方解释相同。就好比“越长大越孤单”这句话,大家在不同年龄段,对其的理解也会不同,而且当时自己还觉得蛮对的。后来发现之前的自己很傻很天真。
最后,引用乔帮主的一句名言"stay hungry, stay foolish",勉强翻译为“求知若饥,虚心若愚”。与大家共勉。任何主动的学习,都是源于兴趣。教程我会尽量通俗,但不会有很多有意思的配图,看起来会很枯燥。当你坚持不下去的时候,你应该庆幸,有的人这个时候肯定也坚持不下去了,只要坚持下去了,你就能更上一层了。

PS.
本来这篇就是hello world篇,但是为了尽可能的优雅,不知不觉就写了这么多。为了避免疲劳,hello world篇就拆分到下篇了。
有人说我上篇不会就是最后一篇吧,这篇很好的证明了,并不是。而且这篇也不是最后一篇,至少还有hello world篇。
万事开头难,适应了这种学习方法,hello world学会了,后面的学习就容易了。


感谢阅读,喜欢的话,长按识别图中二维码关注我呀!



分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:
帖子:
精华:
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP