开源毕竟还是要以程序开发为主,国内缺的就是这种开发程序的动手能力。目前我们的大学教育里学到的计算机技术基本上无法解决企业的实际需求。
大学里学C语言,但学的都是些什么?只知道教学生应该这么做,应该这么背下来。而没有让学生意识到这个事情的意义以及重要性。而且几乎不知道一个真正上的了台面的程序是怎么样的。
那就根本不知道如何处理一个程序的正确性、健壮性、可靠性、易用性、可读性、可扩展性、可复用性、兼容性、可移植性等等一系列问题。
因此建议从一个程序实例学习。比较典型的就是vsftpd这个FTP服务器的源代码。
我们提供在线阅读地址
http://lxr.lupaworld.cn/source/
-- (添加)
或者进入
http://www.google.com/codesearch?q=show
e-LLM_O6_E:sWdixOEgoh8&sa=N&ct=rdl&cs_p=http://gentoo.osuosl.org/distfiles/vsftpd-2.0.5.tar.gz&cs_f=/vsftpd-2.0.5
--
有什么看不懂的地方 大家可以交流
我当初最早接触C语言编程时,学习的就是vsftpd的源代码,真是受益匪浅。
此过程重点可以学习到以下知识:
1、编程规范,学习写代码的基本格式,养成良好习惯。
2、学习socket编程,掌握C语言网络编程的基础知识。
3、学习多进程程序编写,作为一个网络应用的服务端,需要对各个客户进行fork处理。
4、掌握内存使用技术,当传输大文件时,如何划分内存,如何提高效率。
5、学习RPM打包技术。
6、对引用文件(.h)和定义文件(.c)有深入的理解
7、学习Makefile相关知识(Linux平台C程序必备)。
预计两周时间可以彻底看万这两万行左右的代码。
学完之后可以做的事情:
1、编写简单的网络程序。
2、深入分析套接口编程,学习原始套接口的相关技术。
3、初步尝试GTK等相关图形界面程序的开发
.....
写程序重在动手能力,如果你决定要向程序员方向发展,那就赶快行动吧。