经过前两篇入门的介绍,是不是已经摸进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语言的原因。
最后大家推荐一个一起学习的地方:七一零,五二零,三八一,邀请码:柳猫,,一起来学C语言

程序媛02.jpg