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