梦想的脚步---C语言的学习与成长

                                                             梦想的脚步

                                                                                        -----C语言的学习与成长

写在前面:记得工作第一年的时候,茫然若失,不知道该学习什么。那时候疯狂的制定学习计划,什么都学,但什么都没认真的去学。有时候每天晚上学习到凌晨1点,但感觉自己什么都没有学习到。制定的学习计划也一步步的实现,当然有些部分则是半途而废。

去厦门出差,给了我真正的勇气,去直面那份脆弱的心。我开始认真的思考,安安静静的花2年的时间(我的职业生涯前三年已经过去了一年了)去认真,慢慢的学习到底值不值得。而这关键的一点是:慢慢的学习。我开始深刻的认识到,之前可以用一周的时间学习完一门语言的基础(比如python和Java),但这些技术都是浮于表面的,实际上我的编程能力并未真正的提高,只是经验因此增长罢了(经验并不等同于能力!这点非常的重要)。我开始上网搜资料,开始制定长远的学习计划(我去年的计划是做出一个编译器,但是需要各方各面的知识,所以失败),但是这个学习计划可以分解成无数小的计划。最终决定从C语言开始学习,其他事情不要去想太多,认认真真的花这两年的时间去研究C语言,去提高自己的编程能力。

 

                                            -------做自己喜欢的事,真的不累--------

         我并没有像某些人那样狂热的喜欢编程,喜欢编程到不可自拔的地步。但是每天傍晚下班后我都可以安安静静的坐在电脑前学习着C语言,实际上我知道自己其实对编程缺乏一种感觉,而我就在培养这种感觉,并且我相信一点是:什么是兴趣,一件你比较喜欢的事做多了,自然而然就爱上了,兴趣接踵而来。

         坦白说我在刻意的培养自己对C语言的感觉。一般学习的时候我不戴耳机的,但是有时候累的时候(一般从7点学习到11点那里,我真佩服可以持续学习到凌晨2点的人),比如眼睛都看花了(昨晚做字符串习题倒数第二题的时候,总是忘记添加指针符号*,导致一直给地址赋值,当时感觉整个人已经迷糊了),会休息片刻,然后带上耳机,享受《云图六重奏》的时候继续写着程序。这种感觉就像是:在你喜欢的音乐面前写程序,你自然而然也会喜欢上写程序。

         曾经我一直不明白,为什么对恋爱中的人来说,感觉那么的重要。自从我开始认真思考自己的职业(人类一思考,上帝就发笑),真正(这词用的有点夸张,虽然目前有信心持续学习C语言,但意外总会发生)用心去学习这门流行了40+年的语言的时候,我居然明白了感觉还真的很重要,我甚至会花业余的时间去专研它。有时候,感觉对了,学习起来特别的有劲,就像你和你喜欢的女孩子聊天一样,感觉特别的美好。

         乔布斯曾经说过:做自己喜欢的事,不累。所以发现自己之前制定了什么计划,或者说坚持啊坚持什么的,实际上做自己喜欢的事,就像和自己最爱的人呆在一起,根本就不需要什么坚持不坚持的,因为你们在一起,就很开心,就很快乐。

 

                                   -----------C语言整体的学习----------

         C语言的学习路线也许是所有语言里面第二长的(最长的学习路线公认是C++),我们大概要花5年的时间认认真真去研究这门语言,才算是达到C语言的高级应用者(这里我撇开工作上运用C语言的学习,只想单纯的从学习一门语言的角度来表述),并且在接下来的5年学会去运用它(刚开始的5年,绝大部分的我们都没有什么能力去做真正的编程工作,而且最害怕的一种情况是:当你根本就不是一名合格的程序员的时候,你居然就在工作中肆无忌惮的运用C/C++,并因此培养了恶劣的编程风格),这其中的周期算10年吧(10年成才定律),然后你就成为了编程人群中的那10%。

         如果单纯的学习C语言,最重要的就是阅读书籍(我并不是说工作不重要,我只是说业余时间的学习)。C语言要学习的书籍远没有C++那么多(如果你想学好C++,这10年的时间大概要看40+本书那里)。上网看到一篇文章,很好,于是依葫芦画瓢的把它的基本观点摘录下来:(备注:不要吝啬去学习书籍,也不要认为自己已经学习的足够多。)

学习C语言有四个部分,也可以理解为四大阶段:

第一阶段:语言------最基本的永远是最重要的

         主要学习书籍:

1) C程序设计语言

         公认的学习C语言的圣经。

2) C和指针

         C语言世界中80%~90%的问题出在指针上,你就明白这本书的作用了。

3)Linux C编程一站式学习

         C语言的系统学习,你可以从这本书探知C语言世界的方方面面。

4) 你必须知道的495个C语言问题

         知道C语言的一些问题,总比认为C语言没问题好的多。

5) C陷阱与缺陷 + C专家编程

         学会去思考C语言吧

6) C语言参考手册 + C标准库

         闲暇时候翻翻也不错

 

第二阶段:算法和数据结构--------编程的乐趣所在

         主要学习书籍:

1) 算法:C语言实现(第1~4部分)基础知识,数据结构,排序及搜索

         入门型书籍,可以简单并系统的学习基本的算法

2) 算法导论

         算法学习的圣经,需要花大量的时间去专研

(备注:能学习完这两本书已经非常不错了,学习完后偶尔也可以练练其他书籍的算法题,比如《编程珠玑》等。)

 

第三阶段: 系统编程

         主要学习书籍:

1) UNIX高级环境编程

2) Unix网络编程卷1,套接字 + Unix网络编程卷2,进程间通信

 

第四阶段: 系统设计

         主要学习书籍:

1) Unix编程艺术

 

         以下这段话摘自《如何学好C语言》:

·        编程编到一定时候,你就需要了解底层系统的机制,否则,知其然不知所以然。

·        我没有否定非C的程序员的逻辑,真正的逻辑是——如果你想要了解底层机制,请学习C语言和操作系统。

·        40多年的Unix/C影响深远。包括影响了Windows。如果你想一通百通,一定要了解Unix。那是计算机文化真正的根。

·        不要肤浅地去思考问题。比如,不要以为一个DBA就不会考虑数据库引擎的内存页面的问题。也不要以为Web程序员就不需要了解后台的服务器和脚本的运行性能以及TCP/IP的问题。

 

                                            --------目前自己的学习进度---------

         自己也明白自己的实力,所以可能无法达到《程序员技术连接攻略》上面的要求。只是希望自己能学习好C语言,就足够了。然后目前的计划如下:

目前所处的阶段:

         C语言学习的第一阶段---------语言

准备学习的书籍和学习时间表:

         1) 《C和指针》-------九月份学习完毕

         2) Linux C编程一站式学习-------准备十月份学习

         3) 你必须知道的495个C语言问题--------准备十一月份学习

         4) C程序设计语言-------准备十二月份学习

         当学习完上面4本书的时候,今年下半年的任务算是基本完成了。这时候,可以随手翻翻《C陷阱与缺陷》,《C专家编程》,《C语言参考手册》和《C标准库》。

 

         其余的阶段就不计划了。因为明白,计划实际上并没有什么大的用处,只要制定目前要做的就行了。而且行动永远比梦想重要。

         目前在学习《C和指针》(9月11号那天开始学习),学习了一周了也学习完了前九章。希望在接下来的10天时间里,学习完剩余的部分,当然最重要的是:习题要做。(目前课后习题中有4道没做,其中3道算是很难(四星级的+五星级的,代表最难),有一道题目没看懂(一星级的,最简单))。

         应该可以在国庆节前学习完《C和指针》,然后给自己一个鼓励,再写一篇文章纪念一下《C和指针》的学习吧。

 

后记:

芝兰生于幽谷,不因无人而不芳。

君子修身立德,不因贫困而改节。

                                                                                        ------雷朝建 2013年9月18号

转载于:https://my.oschina.net/voler/blog/162433

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值