程序员本身就是系统开发团队中最底层的成员,只是会计算机语言的人,想当好程序员都难。
我在“企鹅邦”的架构平台部做后台,这里需要成员会html、css、javascript(包括ajax、
jquery等)、shell、C/C++、java;cgi、fastcgi、数据结构与算法、数据库、操作系统、并行程序设计
、高性能server框架、计算机系统结构等等。
最基本的,要把C语言的编程方法学会,然后学习一些重要的基础理论,就是数据结构、操作系统这些。
接下来就要分方向了。对于服务器程序,就是所谓的后台,可以学一学Apache或者mysql的源码,还可以研
究一下GFS或者hadoop等。对于想做系统底层的,无疑要研究Linux源码。方向还有很多,大家可以从网上找
相关资料。
另外,要设计一个好的架构,往往不是仅有知识就足够的,还需要多年的经验积累。比如数据是做三
备份还是做双备份呢?这时候要折中考虑容灾性和成本,不是读几本书就能确定的。很多时候还要分析用户
的行为和数据的特性。比如读写比例,比如文件重复率之类的。
还是回到C语言上来吧,一个C语言程序要采用好的算法、好的编程风格而且要非常严谨。比如,用gets就
存在缓冲区溢出的危险,用fgets则可以避免。用int类型,就不如用stdint.h中定义的int32_t来的严谨,比
如在32位机上,int是4B,但在64位机上就不是了,这时程序就有可能存在bug;而用int32_t则没有这样的风
险。这样的细节还有很多,需要慢慢积累。
最重要的,找到自己喜欢而且擅长的事并把它做好~