首页>参考读物>计算机科学与技术>综合

程序员修炼之道:专业程序员必知的33个技巧
作者 : (美)Josh Carter 著
译者 : 胡键 译
丛书名 : 华章程序员书库
出版日期 : 2013-01-30
ISBN : 978-7-111-41164-2
定价 : 49.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 210
开本 : 16
原书名 : New Programmer's Survival Manual: Navigate Your Workplace, Cube Farm, or Startup
原出版社: Pragmatic Programmers, LLC
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

本书是编程大师Josh Carter 20余年编程生涯的心得体会。从“程序员”成长的视角,深入浅出地讲述了真正专业的程序员需要的专业技能、态度、原则,以及需要采取的行动。作者以自己以及身边的同事走过的弯路、犯过的错误为例,意在为后来人引路,助其职业生涯迈上更高台阶。
本书通过33项技巧概述了开发新手缺失的软件开发的方方面面。主要内容包括:第一部分包括技巧1~14,从你擅长的编程出发,就如何让代码随时可用于生产环境提供指导,同时还介绍了如何改善工作流程,提高工作效率;第二部分包括技巧15~24,介绍了如何应对诸如压力管理和工作绩效等这类问题,同时关注如何与团队中的其他人合作;第三部分包括技巧25~30,介绍了典型高科技公司的所有组成部分,以及你在整个公司中的位置,并且阐述了薪酬的分配问题,以及涉及软件项目的生命周期的相关主题;第四部分包括技巧30~33,介绍了如何在日常工作中持续改善自己的工作和学习状态。

图书特色

我喜欢这本书中务实的论调和内容。
—— Bob Martin Object Mentor公司总裁,著有《The Clean Coder》

这本书极好地总结和叙述了软件开发新手缺失的软件开发“宏观视图”,以及许多其他的方面。这是一本开启全新软件职业生涯的优秀入门书。
—— Andy Keffalas 软件工程师和团队领导

这本书阐述了不断发展和变化的IT行业潜规则,观点新颖有趣、内容深入浅出。假如你刚拿到计算机学位,一定要读一读这本书。
—— Sam Rose 格拉摩根大学计算机科学系学生

这本书包含了所有在我刚入行时就应该学习的知识,是软件开发新手的必读书籍,对行业里的所有人来说,同样开卷有益。
—— Chad Dumler-Montplaisir 软件开发者

无论从事哪个行业,从门外汉到专家,都不是一件容易的事,需要付出很多努力,并要走很长一段路,软件开发这个行业也不例外。假设每一位程序员的能力和付出的努力都是一样的,但最终取得的成就和所花费的时间也可能完全不一样。如果你能遇到一位经验丰富、循循善诱的良师,也许你就能走捷径;如果你独自去摸索,则很有可能走弯路。每一位致力于从事软件开发工作的程序员都希望能在自己专注的领域成为专家,而且希望时间成本和试错成本尽可能低!本书作者Josh Carter就是这样一位具有20年丰富编程经验的导师,他非常清楚软件编程新手需要掌握哪些技能和素质,并对他们在成长过程中可能会碰到的各种问题了然于胸。Carter将他的这些见识和经验系统性地总结成了这本书并奉献给所有致力于成为专家的程序员新手。
本书从编程技能和方法、编程工具、自我管理、团队协作、组织架构、工作态度和原则、自我学习和持续改善等多个方面系统总结和阐述了专业程序员应该掌握的33个技巧。如果能认真研习本书,你便踏上了一条通往专业程序员道路的捷径!

作者简介









Josh Carter
资深软件开发工程师,有超过20年的编程经验。热衷于编程和追逐前沿技术,在程序设计、软件工程、项目管理等多个领域都颇有建树。他还是一位经验丰富的技术作家,在主流计算机杂志的技术专栏发表了大量文章。

图书前言

今天是上班的第一天。你拿到了编程执照,找到了工作,坐在你的工作站旁……下面该干什么?在你面前,一座新的丛林正等着你:
  按行业规模编程,其中的代码库规模以上千(或几十万)行代码来衡量。你怎样才能快速入门,开始作出贡献?
  遨游在除了程序员之外还有许许多多其他角色的组织内。当要了解产品特性时,你向谁请教?
  每年都有所成就。当绩效考评潜伏在地平线上时,你知道老板的目标吗?你知道自己将如何被判定吗?
  还有很多很多。你的编程技能只是工作第一年里要用到的技能的一部分。
  我们中的幸运儿会有识途老马充当向导。本书则是一位虚拟向导,它将为你指明方向,指出前方的高山和峡谷,同样也将让你避免跌入令人讨厌的陷阱。
我的经历
  你或许能从我在1995年上大学时的情景中找到一些与自己经历相似之处:我一开始走的是传统老路,一名杜克大学计算机科学与电子工程系的学生。我曾找过我的导师,询问哪些课程最有利于我未来求职。他是个聪明的家伙—一名罗德学者和这间工程学校冉冉升起的新星—他的回答是:“我不知道。我从未在行业里工作过一天。”
  我大失所望。我想构建真实、有人买的产品,而不是写研究论文。因此,那个夏天我设法加入了硅谷一家方兴未艾的创业公司:General Magic。它是由当初创造了Macintosh计算机的同一拨人(Andy Hertzfeld和Bill Atkinson)创建的。我的同事包括来自苹果公司System 7(操作系统)团队的一些顶级开发者和后来创建了eBay的那个哥们儿。
  我在两个月的实习期内学到的编程知识比我在学校里两年学到的还要多。我给杜克大学打了个电话,说我不打算回学校了。就这样,我在行业里的狂野冒险开始了。
现在说说你
  本书的读者可大致划为如下几类:
  选修计算机科学和有这样疑问的大学生和将要毕业的学生:“现实世界里的编程是这个样子吗?”(简单说:不是。)
  具有其他背景,因为爱好或副业而涉足编程,现在想将其作为全职工作的职业人士。
  正在考虑编程行当,但想找些书中和课堂上没有教过的东西的其他人。
  不论你属于哪种类型,你现在的情况是:到了靠编码为生的时候。就代码部分而已,市面上以之为主题的书可谓汗牛充栋。但讨论跟这个工作相关的其他方方面面的书籍,就不见得有那么多了—这正是本书的初衷。
  对于转行的从业者,有些章节可能对你没多大用处—假如你具有市场营销的背景,那就用不着我来告诉你市场营销究竟为何物。但你还是可以从工程部门的运作方式以及代码从概念到发布的演变过程的相关内容中获益。
本书组织结构
  本书以技巧的形式写就,每个技巧用寥寥数页说明某个主题,有些技巧可能稍长。相关的技巧组织在一起形成章,但阅读它们的顺序可以由你来定。若想了解全景图,那就一页页从头读到尾。但可随意来回翻阅——当技巧需要彼此引用时,会在文中明确指出。
  一开始的讨论跟代码密切关联:第1章“编程生产”从你擅长的编程出发,就如何让代码随时可以用于生产环境提供了指导。没有人想让充满Bug的代码面市,但在行业规模的项目上确保代码正确并经过良好测试却是不小的挑战。
  紧随而至的第2章“整理工具”将帮你改善工作流程。你需要跟他人协调,自动化构建,并在工作过程中学习新技术。此外,你还要输入“成吨”的代码。值得提前对工具有所投入。
  随后,我们会进入事情更麻烦的一面。陪伴你度过此生的那位经理就是你自己,第3章“自我管理”让你开始注意诸如压力管理和工作绩效等这类问题。
  没有程序员是孤立的,第4章“团队协作”关注与他人的合作。不要低估人员技能—没错,擅长使用计算机是雇佣你的原因,但编程行业是一项团体活动。
  接着,我们将了解宏观景象。第5章“走进公司”考虑了典型高科技公司的所有组成部分,以及你在整个公司中的位置。它最终试图回答,“这些家伙成天都在忙什么?”
  软件企业充满风险。第6章“留意你的企业”谈论谁以及为何要支付你薪水,软件项目的生命周期,以及你的日常编程工作如何随那个生命周期发生改变。
  最后,第7章“改善”将放眼未来。日语“改善”(kaizen)是一种持续改进的哲学,在我们分手之前,我希望看到你走在那条道路上。
本书约定
  我经常在包含示例代码的技巧里使用Ruby编程语言,我选择Ruby仅仅是因为它简洁易读。若不懂Ruby也别担心,代码的意图应该一目了然。这些例子意在阐述适用于任何编程语言里的高层原则。
  贯穿全书,你会看到题为“行业观点”的栏目。这些都是来自行业专家的声音,这些人是早于你走上这条道路的程序员和经理。每位贡献者都有超过10年的经验,因此请慎重考虑他们的建议。
从白带到黑带(再回到白带)
  在整本书里,我会在你需要应用某条技巧的时候使用武术带来表示。带子颜色背后的故事要比武术本身更有意义。学生入门从白带开始,代表纯洁。同理,白带技巧适用于非常初级的阶段。
  经过几年修行,带子变或褐色了。褐带代表中间阶段,坦白地讲,这时的带子是有点脏。就本书而言,我期望褐带主题对于工作第2~5年之间的人有帮助。

  随着武术家修行日深,带子颜色越来越深,直到成为黑色。这时的武术家被冠以大师的称号。就本书而言,我设置的时间点相对较早,黑带主题在入行至少5年时派上用场。在实际生活里,真正的大师级水准更多地开始于第10个年头。

  要是新大师继续使用黑带会怎样?它会磨损,被日光漂白……重新变回白色。对于专业知识,过去的大师们早就发现了一些心理学家只在最近才研究的经验之谈:只有达到某一水准,你才会知道你不知道的东西。接下来,你又一次开始新的修行之旅。
联机资源
  下面是与本书相关的网页地址:
  http://pragprog.com/titles/jcdeg
  你可以在这里跟我和其他读者一起参与论坛讨论,查看勘误表,以及汇报你发现的任何错误。
前进
  关于本书,已经唠叨得够多了。你坐在工作台旁心怀疑问“下面该干什么?”,而你的老板正奇怪你为何还未开工。那么,让我们上路吧!
致谢
  首先,我必须感谢我那永远充满耐心的编辑:Susannah Davidson Pfalzer。若非她的英明指导、勉励,以及偶尔跑到我背后捣乱让我继续前进,本书可能就要泡汤了,衷心地感谢她帮助我这个第一次写书的人把这本书带到这个世界上。
接下来,还要感谢无数位提供了巨大帮助的审阅者,他们中既有刚入行的程序员新人,也不乏行业老兵。他们读过(或者应该说忍受)本书的早期草稿并给出了自己的观点、经验和修正。我要感谢Daniel Bretoi、Bob Cochran、Russell Champoux、Javier Collado、Geoff Drake、Chad Dumler-Montplaisir、Kevin Gisi、Brian Hogan、Andy Keffalas、Steve Klabnik、Robert C. Martin、Rajesh Pillai、Antonio Gomes Rodrigues、Sam Rose、Brian Schau、Julian Schrittwieser、Tibor Simic、Jen Spinney、Stefan Turalski、Juho Vepslinen、Nick Watts和Chris Wright。他们用勤奋和彻底的评审大大提升了本书的质量。
  从一开始,几位朋友和合著者就纵容我紧追不舍、一遍又一遍地征询他们的意见,他们包括Jeb Bolding、Mark “The Red” Harlan、Scott Knaster、David Olson、Rich Rector和Zz Zimmerman。我真的很感激他们的容忍。
  最后,额外的感谢要献给我的两个最大粉丝。我的女儿Genevieve,恩赐了我无法陪她而用来写书的许许多多夜晚。还有我的妻子Daria,不仅让我有时间写作,而且第一时间购买并阅读了本书的beta版本——从晚上10点开始一气读完,有点出人意料。本书是我坐在晚餐桌旁一直考虑的点子,因此她也贡献了自己的想法和观点。同时,在整个过程中,她也提供了支持和鼓励。
  Daria和Genevieve,没有她们,我根本没法完成本书,衷心地感谢她们。

上架指导

计算机\程序设计

封底文字

我喜欢这种务实的论调和内容。
——Bob Martin
Object Mentor公司总裁,著有《The Clean Coder》

这本书极好地概述了许多软件开发新手缺失的“宏观视图”和许多其他方面。这是一本针对在软件开发领域开始激动人心的职业冒险的绝好入门书。
——Andy Keffalas
软件工程师和团队领导

这本书阐述了不断发展和变化的软件行业中有趣、诚实和深入浅出的观点。假如你刚拿到计算机专业学位,一定要读一读这本书。
——Sam Rose
格拉摩根大学计算机科学系学生

这本书包含了所有在我刚入行时就应该学习的知识。它是软件开发新手的必读书籍,对行业里的所有人来讲,同样开卷有益。
——Chad Dumler-Montplaisir
软件开发者

作者简介

(美)Josh Carter 著:加作者照片 Josh Carter 资深软件设计师,具有超过20年编程行业从业经验。热衷于编程和追逐前沿技术,但同时谨记史蒂夫?乔布斯的箴言“真正的艺术家能让产品面市”。他还涉足工程管理领域,曾经主管大型企业软件开发团队。目前已出版多本关于计算机软件的技术书籍,同时他还在主流计算机杂志的技术专栏发表文章。

译者简介

胡键 译:暂无简介

译者序

说实话,在翻译完《The Cloud at Your Service》之后,我本打算暂时不再接手翻译工作了。一方面是因为工作越来越忙,另一方面则是因为翻译实在是一件费神费力的事情。可当机械工业出版社的编辑把这本书摆在我面前时,我还是背弃了自己想要休息的想法。
  我注意这本书其实有一段时间了,因为这是一本独特的书。虽然面向程序员,却并非一本单纯的技术书籍。尽管英文书名包含New Programmer,但对于入行多年的“老兵”同样能做到开卷有益。事实上,在翻译本书的过程中,我本人也从中获益匪浅。
  对于刚踏入社会工作的毕业生,要完成从学生到社会人的转变并非易事。尤其是那些从事编程工作的社会新鲜人,有许多的观念和事情需要去转变和学习。比如:你以前可能孤身一人开发完成整个应用,现在则可能要跟他人合作;你之前的代码可能是自己分目录保存不同副本,如今可能要用到类似Git这样的版本控制软件;你之前的代码可能是自己手动测试,而新公司可能要求你写自动化的单元测试……除了这些纯技术上的变化外,你还会面临一些诸如绩效考核、配合市场人员宣传、职业生涯这样的新事物。
  所有以上内容,你都会在本书中找到相应的内容和建议。虽然读一本书不会让你马上转变身份,但起码会给你提供帮助,让你感觉不再孤单。说句心里话,要是当年我有一本这样的书该有多好!
  虽然时光无法倒流,但现在也为时未晚。对于在踏入编程大门初期错过了本书的朋友们,同样能在本书中找到适合自己的内容。你是否每到绩效考核时就头痛?你是否觉得长时间坐在办公室内编程损害了你的健康?你是否讨厌开会,认为它们纯粹是浪费时间?你是否关心所在公司的营业情况?你有没有想过换个工作?……打开这本书,读一读别人的想法和做法。
  除了本书的内容外,我接下这本书的翻译其实还有一个私心:希望我的同行妻子也能从中汲取些营养。于是,在“初译—审校—润色—审校”的过程中,她最终承认这是一本好书,决定要将从书中学到的经验用到实际中—这是“润物细无声”的典型案例。
  最后,我要感谢参与本书的所有的机械工业出版社的编辑,让我有机会负责本书的翻译工作,而且有一个非常愉快的合作体验;同时,我还要感谢参与本书审校工作的朋友:朱晓弟、仵建锋和焦斌。当然也不能遗漏老婆,不仅是因为你的审校次数最多、最深入,而且还因为你对于我生活的支持和帮助!

胡 键
于西安

图书目录

译者序
前言
第一部分 专业编程
第1章 编程生产 2
技巧1:敲打代码 4
技巧2:坚持正确 9
技巧3:测试驱动设计 19
技巧4:驯服复杂度 25
技巧5:优雅地失败 33
技巧6:确定风格 39
技巧7:改善遗留代码 45
技巧8:代码审核要早且多 50
第2章 整理工具 55
技巧9:优化环境 57
技巧10:流畅表达 64
技巧11:熟悉平台 71
技巧12:自动让痛苦消失 76
技巧13:控制时间及时间线 79
技巧14:使用源码,卢克 83
第二部分 人员技能
第3章 自我管理 92
技巧15:拜师 93
技巧16:树立自我形象 97
技巧17:增加曝光率 100
技巧18:表现卓越 103
技巧19:管理压力 109
技巧20:善待自己 115
第4章 团队协作 120
技巧21:洞悉性格类型 121
技巧22:建立人脉 126
技巧23:合作 129
技巧24:高效会议 133
第三部分 公司的世界
第5章 走进公司 138
技巧25:了解同事 139
技巧26:了解公司结构 144
第6章 留意你的企业 159
技巧27:了解项目 160
技巧28:体会产品的生命周期 166
技巧29:站在公司角度思考 176
技巧30:识别公司反模式 179
第四部分 放眼未来
第7章 改善 184
技巧31:端正态度 186
技巧32:学无止境 189
技巧33:自我定位 193
参考文献 197

教学资源推荐
参考读物推荐
作者: W.Alan Davis, Krishna K.Agarwal
作者: 杜春洋 王宇超 等编著
作者: [美]菲尔·尚帕涅(Phil Champagne) 编著