系统程序员成长计划

http://blog.csdn.net/u013354805/article/details/47680211


一. 最近网上看到一本书,感觉还是不错的,因此在这里推荐一下。

此文源于李先静老师的博客,经整理后成文。其中有涉及编程语言,也有项目管理,虽多是经验之谈,但值得我们学习。

下载地址:http://download.csdn.net/detail/u013354805/9008083


二. 写作背景:

在经历过几个大型的,失败的项目之后,我终于明白没有什么比高素质的程序员更能决定项目的成功了,无论什么过程,什么编程语言和开发工具,离开了高 素质的程序员,什么都是白费力气。毫无疑问,人是软件开发中最重要的因素,但不是每个人都重要,不是什么样的人都重要,只有那些高素质的程序员和那些对项 目有突出贡献的人才是重要的。


不过高素质的程序员并不多见,所以从我开始带人之际,就在思考团队成员培养的问题。我做过很多尝试,从小组内学习到整个部门一起上大课,最后又回到 对个人单独的辅导;从通过codreview做现场教育到制定过一个宏伟的培训计划,最后又回到一个朴素的培训过程。其中遇到了很多问题,开始是培训不够 系统,效果不甚理想,后来又因为计划过于”宏伟”而无法实施,直到最后行成一个朴素的,切实可行的培训方案,中间经过了好几年时间,直到去年,整个计划才 趋于完善。我把这个培训计划称为系统程序员成长计划,这就是我在这个系列中要写的。


培训内容不是来源于某本书,毕业八年来,我坚持不断的看书,家中放了7大储物箱,有300多本不同类型的书籍,其中囊括了大部分经典的IT图书。当 然也不是全部内容都来源
书本,这几年我在开源软件吸取了大量的营养,一些思想和经验在broncho项目中也有充分的发挥,可以说是理论,经验和实践的结 合。但我不尝试阐述什么高深的道理,相反我是针对应届毕业生和业余爱好者写的,目的是要让初学者进阶为一个专业的程序员。为什么叫 系统程序员成长计划?程序员的范围太广了, 虽然软件开发有很多相似之处,但是
隔行如隔山,比如对于目前炙手可热的WEB开发,我完全是外行。想什么都讲一点,结果是什么都没有讲清楚,所以我得把培 训计划限定在我熟悉的范围之内。先定义一下系统程序员:从事操作系统内核、DBMS、GUI系统,基础函数库,应用程序框架,编译器和虚拟机等基础软件开 发的程序员。这些培训同样适用于桌面软件和智能手机软件开发,我想对其它软件开发也会有一些启发作用。


草莓酱定律与果酱定律。第一次在咨询的奥秘中看到草莓酱定律时,我觉得非常有意思。当然这个系列也无法脱离草莓酱定律的魔法,利用这个系列中的内 容,我手把手的教了十多个同事,收到了良好的效果。当有数百个读者读这些文章时,我不敢期望有同样的效果。不过在果酱定律的鼓励下,我相信这个系列中至少 有部分内容的价值不会因为读者群的增大而消失,所以最终决定写出来。


三. 文章摘要:

这是其中的一段摘要,我随机摘出来的,具体可以详细下载下来看。

1. 结构的成员顺序变化引发的错误。
在初始化一个结构时,老手可能很少像新手那样老老实实的,一个成员一个成员的为结构初始化,而是采用快捷方式,如:

[cpp]  view plain  copy
  1. Struct s  
  2. {  
  3.     int l;  
  4.     char* p;  
  5. };  
  6. int main(int argc, char* argv[])  
  7. {  
  8.     struct s s1 = {4, "abcd"};  
  9.     return 0;  
  10. }  

以上这种方式是非常危险的,原因在于你对结构的内存布局作了假设。如果这个结构是第三方提供的,他很可能调整结构中成员的相对位置。而这样的调整往 往不会在文档中说明,你自然很少去关注。如果调整的两个成员具有相同数据类型,编译时不会有任何警告,而程序的逻辑可能相距十万八千里了。正确的初始化方法应该是(当然,一个成员一个成员的初始化也行):
[cpp]  view plain  copy
  1. struct s  
  2. {  
  3.     int l;  
  4.     char* p;  
  5. };  
  6. int main(int argc, char* argv[])  
  7. {  
  8.     struct s s1 = {.l=4, .p = "abcd"};  
  9.     return 0;  
  10. }  


(有的编译器可能不支持新标准)
1



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值