介绍
做web开发已经有5年多了,现在觉得如果想让自己在技术上有所提高,必须在C语言、数据结构和算法上下点苦功。以前我也是零零散散的学习C语言,总是没有耐心坚持下来。——这次我得下决心学好了。
为什么我学习C呢?
1、php内核是用C开发的。
如果你想知道某个函数是怎么实现的,手册有的时候是说不明白的。——你敢保证你能把你写的代码中所有函数,所有类说明白吗?我估计你一般心里明白。 ——所以看代码是最直接和最有效的。
如果你想做一些特殊优化,或者需要一些特殊的加密,通过扩展实现这些功能,那么使用C是首选。
很多数据结构和算法的书是以C为基础语言。就像英语是国际语言一样,C语言应该是程序员的国际语言吧?
C比较接近于底层,能更直接的控制计算机。PHP只是在应用层面上,想直接控制底层硬件设备,比如寄存器,缓存,还是比较困难的,所以C对底层硬件的控制和优化是不二的选择。
很多开源软件使用C开发的。如nginx,apache,linux,memcached,MySQL等等,你想真正用好这些软件,不是一个简单的配置或架构,就能做好的,你必须能够把他们关联起来,那么C又是一个不二的选择。——这个主要是我发现我们公司UC部门就是用C把这些软件串起来的,具体怎么弄的搞不清楚。
还有大家都知道的linux,unix是用C写的,所以我学习C语言是"必须的"。
C语言虽然有很多优点,但是随着应用的不断深入和广泛,其本身所拥有的弱点也显现出来。
容易造成内存泄漏。类型检查机制较弱。代码冗余处理不够。
攻占堡垒
Linux下的C语言编程环境;文件编程;标准I/O库;进程操作;线程操作;网络编程;数据库编程
计划
1、从书籍入手
要想学好C语言,我得从书籍入手,没有办法,又不能在学校那样,有老师带。到社会上,程序员培养的就是自学能力。通常我都是从书入手。
有人会问了,为什么不通过博客入手学习啊?这个我以前也这样做了,但是后来发现,学得东西零零散散的,没有一个统一性。而书呢?能系统的进行学习。
2、看代码
看国内程序员的代码:比如张宴的httpSqs。——这个代码我早期研究过,也手动打过里面的代码。看开源的代码:比如试着看看PHP 内核,memcached,nginx这些代码,看能不能看懂。
3、沟通
多参加一些社区(如http://sourceforge.net/),我也试试,能不能参与到里面。——初期,我先自己试着写一些小工具。多跟这方面有经验的人沟通(我很赞同一点,要多跟一些牛人沟通,那么你也会变的牛起来,要把这个当成习惯)。
4、写代码
资源
我已经买了一本书《精通Linux C编程》,本来想找电子版的,但是没有找到。——我个人比较喜欢电子版的书,带着方便,家里,公司都能看。
进度图
监督你
总结
我个人觉得我们做事情必须要坚持,否则同一件事情你失败两次,一般你就会放弃它。所以坚持之后,会有我们意想不到的收获。
原文链接:http://www.cnblogs.com/baochuan/archive/2012/06/20/2554983.html