图片以及书籍 c语言从入门到放弃PPT

这几天都不在自己的老窝,本来想预先把推文写好再出发的,但是拖延症犯(=_=),没有提前写好,随身带了个电脑到处玩。

不过

还是玩得很开心,哈哈哈哈哈哈哈!!!

(差不多是时间回老窝吃土了)

上一篇C语言已经推荐了一些我觉得比较好的C语言书籍,这一篇说说两个问题:如何学习C语言以及学习C语言的意义(我不是老师,所以全是我自己认为的意义(微笑))。

感觉身边的好友学习主要途径有:书,视频,app。

在我看来,最好的途径:书。白纸黑字的书。

如果把书和另外两个比较,app马上会被排除,因为app内容少,不体系。

在互联网上的视频大部分都是介绍基础语法(可能是我搜索的姿势不对?)。要学好C语言,视频中的内容实在不够,毕竟知道一个指针概念是无法掌握内存管理的;用for循环打印一个数组和写一个漂亮的算法例程是差很远的;知道了递归和理解递归相差甚远,更别说写一个。

C语言并不是用来速成的(见后)。这和视频的目的相差太大,视频的作用往往是帮你迅速去学会使用一个语言。

仅仅使用而已。

C语言是需要去了解的,需要用心体会的。这就像想找一个女朋友一样,是需要去了解她是怎么想的,怎么思考的。若不理解C语言,用好是极其难的,也就是说,基础语法完全是不能保障用好C语言的。

看书吧,真的。白纸黑字的书。

在我认为好的C语言书当中,往往基础语法只占到1/4左右,有的甚至根本没有基础语法讲解。

剩余都介绍了些什么东西呢?《C语言的科学与艺术》花了很多篇幅讲解库,接口概念,编程方法,一些常用的编程范式(programming idiom),甚至讲解用泰勒公式去实现math.h里面的正弦函数。

每本书的介绍的侧重点都不一样,而每本书对基础语法讲解的篇幅都有限(并不是说那部分讲解的不好,其实基础部分也讲的详细明白),那这些额外的部分真的是看视频能获得到的吗?不见得。

所以第一个理由推荐书是因为,书里面有另外两个媒介接触不到的东西。

讲真话,一个没有接触过编程的人,通过视频学C语言,在学习的过程中往往只是记住了这个怎么用,代码是怎么运行的根本就没有进入脑袋。(根据在上课的感觉模拟出来的)

比如,可能记住了条件运算符 <statement1>? <statement2>:<statement3>能用来代替一个if-else语句,但是三个statement的计算顺序并没有记住。

看似问题很小,但是C语言往往被作为入门语言,这样问题就大了。对语言背后的东西一点都不知道在学习以后的语言是会很累的。因为不知道这个语言会被如何运行,在一个语言下会不理解,在另一个中也会不理解,一知半解就是一窍不通。

所谓入门语言,入门语言对未来的语言学习起到至关重要的作用。第一个不懂,后面的就很难再顺利了。

推荐书的第二个理由在于,只有在书中,你才能知道语言是编程程序后是如何运作的。这影响到后续语言理解程度和融汇程度。

事实上,在我看来C语言并不适合做入门语言,国外其实也有很多学校把入门语言设为java。

但是,C语言对我来说算是真正意义上的第一语言,我只能从用C语言入门来讨论意义,否则就是乱说。

我查了一下,C语言的应用主要方面有:理论研究(算法方面),操作系统,硬件编程(几乎所有嵌入式)。别的我基本都没搜索到。

这其实对很多人失去了意义,因为学习C语言对于后来从事的完全没有关系。

在我看来吧,C语言练得是内功。一是编程内功,一是语言的内功。如果用有没有用来衡量就没意思了。

编程内功衡量的是用编程来解决问题的能力。C语言拥有的库真的不多,也就是说,需要不断的自己去编写一些奇怪的代码。在这些编写的过程中,不断得提炼自己的想法,思维,久而久之,这种能力会随之提高。这并不是说别的语言不行,只是我觉得这种接近底层的语言的训练强度会大很多,毕竟你写个数据结构出来往往都要接近100行了。

语言的内功,这一点我也是前一阵子感觉到的,因为什么呢,直接拿例子出来吧,自己体会。(我能用我的直觉很严肃的告诉你,这种能力及其重要)

程序目的是处理n个元素的数组,不处理第k个元素。

我的代码:

for(int i=0;I <k-1;i++)

statement;

for(inti=k;i<n;i++)

statement

better code:

for(inti=0;i<n;i++)

if(i==k-1)

continue;

else

statement;

后面那段好当然不是因为效率,效率不如第一个。

好在对语言的使用上,之前写过很多类似第一种的代码,但是从来没有考虑到continue过,而continue其实是比较少用(或说我比较少)的改变循环过程的语句,使用的这种写法在我看来真的算是语言内功非常深厚的。这种语言的内功在使用往往能够把一个复杂问题通过很简单优雅的方式来解决。

前面说过C语言不是用来速成的原因就是这里。C语言弄得就是内功。用速成的方式去学一门内功心法是容易出事的,比如走火入魔什么的。

曾经老师对我们说C语言将是你们毕业都不敢说掌握了的语言。的确是。

C语言要的就是练就这两种内功(在贫道看来),前者帮助你能脱离语言桎梏用脑子去编程,后者则是帮你驾驭计算机,使得语言真正成为你的工具。别的语言一样都能练,但是吧,C语言的强度会大太多,收益当然也会大太多。

好吧,内容有点多,夜深啦。周三有番外篇~~~啦啦啦啦啦

小编过几年就去路上接私活~~

(0)

相关推荐

分享本页
返回顶部