系统程序员成长计划

出版时间:2010-04  出版社:人民邮电出版社  作者:李先静  页数:272  字数:413000  
Tag标签:无  

前言

在经历过几个大型的、失败的项目之后,我终于认识到了:没有什么比高素质的程序员更能决定项目的成功。无论采用什么开发过程,什么编程语言和开发工具,离开了高素质的程序员,都是白费力气。毫无疑问,人是软件开发中最重要的因素。但并非每个人都重要,也不是什么样的人都重要,在软件开发中,只有那些高素质的程序员和那些对项目有突出贡献的人才是重要的。不过高素质的程序员并不多见,所以从我开始带人起,就一直在思考团队成员培养的问题。我做过很多尝试,从小组内学习到整个部门一起上大课,最后又回到对个人做单独的辅导;从通过Code Review(代码评审)做现场教育到制定一个宏伟的培训计划,最后又回到一个朴素的培训过程。其中遇到了很多问题,开始是培训不够系统,效果不甚理想,后来又因为计划过于“宏伟”而无法实施,等到最后形成一个朴素的、切实可行的培训方案,已经经过了好几年时间,直到去年,整个计划才趋于完善。我把这个培训计划称为系统程序员成长计划,而这正是我在本书中所要介绍的。培训内容不是来源于某本书,毕业八年来,我坚持不懈地阅读有关书籍,所读过的300多本不同类型的著作装满了家中的7个大储物箱,而这些著作囊括了大部分经典的IT图书。当然培训的内容也不是全部源于书本,这几年我在开发开源软件的过程中所收获的感悟和积累的经验也融入其中。我的培训计划并不是要阐述什么高深的道理,相反,我这本书主要是针对应届毕业生和业余爱好者写的,目的就是为了让初学者进阶为一个专业的程序员。为什么把这个培训计划叫做“系统程序员成长计划”,而不是“程序员成长计划”呢?程序员的范围太广了,虽然软件开发有很多相似之处,但是隔行如隔山,比如对于目前炙手可热的Web开发,我完全是外行。为了不造成“想什么都讲一点,结果是什么都没有讲清楚”的尴尬,我得把培训计划限定在我熟悉的范围之内。而所谓系统程序员,是指从事操作系统内核、DBMS、GuI系统、基础函数库、应用程序框架、编译器和虚拟机等基础软件开发的程序员。

内容概要

本书以生动的语言和丰富的代码示例,运用一些相对简单的例子分析开发系统程序中可能遇到的各种问题。作者把数年的开发经验和阅读大量书籍的体会,结合他在培训新员工过程中所积累的培养方法,融会贯通在这12章的内容中。书中介绍了链表、数组、栈、队列和散列表等基础数据结构,也介绍了并发、同步和内存管理等系统程序中常需注意的问题,还讲解了文本处理器等具体应用程序的设计方法。   本书是初涉系统程序开发领域的人不可多得的一本参考书。书中体现的思想对于其他各种软件开发人员、相关专业的在校学生以及软件开发爱好者都有启发意义。

作者简介

李先静,CSDN开源专家,有着十年Linux开发经验、五年手机开发经验。擅长嵌入式程序员培训,软件架构设计和技术写作。近几年负责Broncho Linux智能手机项目,致力于基于Linux的嵌入式系统的学习和研究。其CSDN博客连续三年被CSDN提名为最有价值的技术博客(MVB),他先后发表了近500篇技术类博文,博客文章被各大技术网站转载。在《程序员》杂志上发表过多篇文章。

书籍目录

第0章 背景知识 0.1 基础知识 0.2 开发环境第1章 从双向链表学习设计 1.1 走近专业程序员 1.2 谁动了你的隐私 1.3 Write once, run anywhere(WORA) 1.4 拥抱变化 1.5 Don't Repeat Yourself(DRY) 1.6 你的数据放在哪里第2章 写得又快又好的秘诀 2.1 好与快的关系 2.2 代码阅读法 2.3 避免常见错误 2.4 自动测试 2.5 Save your work第3章 从动态数组学习设计 3.1 动态数组与双向链表 3.2 排序 3.3 有序数组的两个应用第4章 并发与同步 4.1 并发 4.2 同步 4.3 嵌套锁与装饰模式 4.4 读写锁 4.5 无锁数据结构第5章 组合的威力 5.1 队列 5.2 栈 5.3 散列表第6章 算法与容器 6.1 容器 6.2 迭代器 6.3 动态绑定第7章 工程管理 7.1 Hello World 7.2 函数库 7.3 应用程序第8章 内存管理 8.1 共享内存 8.2 线程局部存储(TLS) 8.3 内存管理器 8.4 惯用手法 8.5 调试手段及原理第9章 从计算机的角度思考问题 9.1 变参函数的实现原理 9.2 谁在call我——backtrace的实现原理 9.3 Hello World不能不说的十大秘密第10章 文本处理 10.1 状态机 10.2 Builder模式 10.3 管道过滤器模式第11章 分离用户界面与内部实现 11.1 分层设计 11.2 MVC架构 11.3 外壳模式第12章 撰写设计文档附录 C语言中接口定义的不同形式

章节摘录

插图:假想讲给朋友听据说在代码评审时发现错误的,往往不是评审的人而是程序员自己。我也有很多这样的经历,在把自己遇到的情况讲给别人听的时候,往往是别人还没有听明白,自己已经发现里面存在的错误了。上大学时,我常常把自己写的或者学到的东西讲给隔壁寝室的一个同学听,他说他从我这里学到了很多知识,其实我从讲的过程中,也经常会发现一些问题,对提高自己的能力大有帮助。可惜并不是随时都能找到好的听众,幸好我们有另外一个替代办法。记得刚开始写程序时看过一本书(忘记名字了),作者说他在写程序时,常常把思路讲给他的布娃娃听。我没有布娃娃当听众,总不至于让我对着鼠标、键盘和显示器讲自己的思路吧,所以我会假想自己身边有个朋友,把自己的思路讲给“他”听,同时也假想“他”来质疑我。话说回来,这种方法确实很有效,能够让自己的思路更清晰,据说一些大师也经常使用这种方法。这种代码阅读法会花掉你~些时间,但是可以省下更多调试时问,而且能够提高代码质量,可以说是名符其实的“写得又快又好的秘诀”之一。至于读几遍合适,要根据情况而定,我个人觉得读两到三遍是最好的,花费的时间也不算多。在C语言中,内存错误是最为人诟病的。这些错误让项目延期或者被取消,引发无数的安全问题,甚至出现人命关天的灾难。抛开这些大道理不谈,它们确实浪费了我们大量时间,这些错误引发的是随机现象,即使有一些先进工具的帮助,为了找到重现的路径,花上几天时间也不足为怪。如果能够在编写代码的时候避免这些错误,开发效率至少提高一倍以上,而且质量也可以提高几倍。这里列举一些常见的内存错误,供新手参考。内存泄露大家都知道,在堆上分配的内存,如果不再使用了,就应该把它释放掉,以便后面其他地方可以重用。在C/C++中,内存管理器不会帮你自动回收不再使用的内存。如果你忘了释放不再使用的内存,这些内存就不能被重用了,这就造成了内存泄露。把内存泄露列为首位,倒不是因为它会带来多么严重的后果,而是因为它是最为常见的一类错误。一两处内存泄露通常并不至于让程序崩溃,也不会带来逻辑上的错误,而且在进程退出时,系统会自动释放所有与该进程相关的内存(共享内存除外),所以内存泄露的后果相对来说还是比较温和的。但是,量变会导致质变,一旦内存泄露过多以至于耗尽内存,后续内存分配将会失败,程序就可能因此而崩溃。

编辑推荐

《系统程序员:成长计划》:结合代码详细讲解程序开发方法汇集丰富的软件开发思想CSDN专家全新力作在学习程序开发的过程中,你是否总是为自己遇到的一些问题头疼不已,你是否还在为写不出代码而心急如焚?作为软件开发人员,你是否时时为自己如何成为一名合格的程序员而困惑不已?没关系,《系统程序员:成长计划》将为你排忧解难。这是一本介绍系统程序开发方法的书。书中结合内容详尽的代码细致讲述了不少底层程序开发基础知识,并在逐步深入的过程中介绍了一些简单实用的应用程序,最后还讲述了一些软件工程方面的内容,内容全面,语言生动,尤其适合初涉系统程序开发的人来读,有利于他们成长为更加专业的程序员。虽然《系统程序员:成长计划》以“系统程序员”为名,但书中所蕴含的软件开发思想和方法也同样适用于其他的软件开发领域。各种软件开发人员、相关专业的在校学生以及软件开发爱好者也都不妨读读《系统程序员:成长计划》,来分享作者多年来在学习和实践中所总结的开发方法与所领悟的开发思想。

图书封面

图书标签Tags

评论、评分、阅读与下载


    系统程序员成长计划 PDF格式下载


用户评论 (总计41条)

 
 

  •   系统程序员,尤其 用C语言的,值得一看
  •   让你成为一个真正的程序员的书。
  •   好书, 程序员提高必读。
  •   这是一本一看就喜欢的数。尤其是喜欢c,喜欢linux的人。
  •   也是看博文过来的。。比博文上要稍微详尽一些。。不过内容是一样的。。还不错了
  •   这本书是听人介绍的,说是一本很好的书,虽然我没能坚持看完,因为个人的原因,不过这本书确实能提高编程能力,这里面说的内容确实有一定的难度,能坚持按里面说的做的话,也许真的能成为这方面的高手的。。。。。。。。。。。
  •   书里面的联系很多,而且都要自己上网找资料,不过如果能按照要求读下来,绝对会和作者“吹”的一样!
  •   知道这书的应该是科班较多,我是半路出家,在周工推荐看到,现在看到第三章,感觉还不错,比较喜欢这种不断穿插实践的书,但因为半路出家,好多知识还得慢慢补,总之对与我这种初学编程的人,认为它很适合边看边练。
  •   内容充实,书很实用
  •   用手机拍的,还不错。
  •   读者群定位明确,论述简明精要,没有废话,是一本人写的书,写给人看的书。
  •   在经过老师的推荐和自己的观察,发现很适合我,内容浅显易读、引导思维,有助一个学者的学习。
  •   短短的篇幅介绍了很多诸如容器类等等的 思路和写法,虽然篇幅不长但是还是对人蛮有启发的。
  •   作者很用心的在写这本书,这比较可贵。
  •   这本书对于我来说是很有帮助的,对于一般编程者来说会有很大提高。这书也是别人向我推荐的,我在此也向大家推荐!
  •   看完了才写的评论,书本不错,只是要求有比较好的基础,还有些说得不是很详细,进阶必备
  •   按照作者的计划进行,定能成才
  •   不过这些资料我在也正是华为的资料(作者是华为出来的),总之很强大,实践的经验之谈,要想提高还是得要多实践多提高
  •   书还来不及看,不过从封面上看,还是蛮好的
  •   编程不仅仅的功能正确,架构也要完美,才能提高容错和扩展能力
  •   内容详实,很值得买
  •   收藏的一本书,终于拥有。
  •   如果刚毕业是有这本书就好了
  •   有点小深度,适合慢慢钻研
  •   里面讲了些细节,要仔细看
  •   还不错 很喜欢 当当一直很给力!
  •   好书,值得看3遍!
  •   图书馆看过的,必须买啊!
  •   对新人来说这是一本好书
  •   书不错,适合初入程序员界的时候看。
  •   不错,内容很全面,很有指导性
  •   这本书是一本计划书,用来作为参考是不错的
  •   还好吧,同学介绍的
  •   好书 自己还得在消化消化
  •   还没有看,希望看后收获颇多!
  •   有很多东西你试了就知道了
  •   不是抄的,有自己的东西
  •   读书的关键在于思考。
  •   帮朋友买的,可以。
  •   正在看,不好评论......
  •   没什么用的书,搁置了。
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7