首页 我编程,我快乐——程序员职业规划之道

我编程,我快乐——程序员职业规划之道

举报
开通vip

我编程,我快乐——程序员职业规划之道 1 稳定成熟的技术还是未成熟的新技术? 第 1111章 选择市场 你马上就要进行一次大的投资,也许并不是要投入大笔金钱,而是时间,是你的一生。 大都数人对待工作的态度往往都是顺其自然,走一步看一步--我们刚刚深入了解了 Java或者 VB,老板有一天突然参加了一个热门技术的培训,于是我们就转而学习新技术,直到有人 又把新的东西递到我们手里。我们的职业道路就是由一连串没有方向的偶然构成的。 在《程序员修炼之道》一书中,Dave Thomas和Andy Hunt谈到了编程中的偶然性。下 面这个场景,会引...

我编程,我快乐——程序员职业规划之道
1 稳定成熟的技术还是未成熟的新技术? 第 1111章 选择市场 你马上就要进行一次大的投资,也许并不是要投入大笔金钱,而是时间,是你的一生。 大都数人对待工作的态度往往都是顺其自然,走一步看一步--我们刚刚深入了解了 Java或者 VB,老板有一天突然参加了一个热门技术的培训,于是我们就转而学习新技术,直到有人 又把新的东西递到我们手里。我们的职业道路就是由一连串没有方向的偶然构成的。 在《程序员修炼之道》一书中,Dave Thomas和Andy Hunt谈到了编程中的偶然性。下 面这个场景,会引起大部分编程员的共鸣:当你开始做一个程序的时候,或许手头上有一个 从网上复制的示例程序,看上去这个程序可以使用。为了满足你的需要,你会对这个程序稍 加改动--添加一些代码,再加一点。你根本就不知道自己在做什么,只是不断地做一些小的 修改,直到这个程序完全满足你的需要。但问题是,这样做就像是用纸牌搭建房子,每增添 一张纸牌,就增加了一分纸房子坍塌的危险。你根本就不知道这个程序是如何工作的,所以 你每做一点儿改动,都有可能导致你的程序完全失败。 作为软件开发人员,用这种投机取巧的方式来编程显然不是什么好主意。但是很多人正 是让偶然来决定职业道路上的各种选择。我们应该在哪种技术上投资?应该专注于哪个领 域?是应该扩展知识面,还是深入学习一门学问?这些问题都是值得我们细细斟酌的。 想象一下你开了一家公司,现在正要生产你们的明星产品。如果这个产品失败了,公司 就会破产。你会花多少精力来思考此产品的消费者是谁?在产品进入生产流程之前,你又会 用多少时间来弄明白这个产品到底是什么?我相信你肯定会仔仔细细地考虑其中的每个小 细节,然后亲自做出决定。 但是,在职业道路上,面临选择的时候,我们为什么就缺少了这番心思呢?如果你把自 己的职业当成是一门生意(事实上它就是一门生意),那么你的"产品"就是由你提供的服务 构成的。这些服务是什么?你又会把它们出售给谁?接下来的一年,对此种商品的需求是会 增加还是减少呢?在这些选择上你愿意投下多少赌注? 读完本章的内容后,你会找到答案。 1111 稳定成熟的技术还是未成熟的新技术???? 如果你想投资,可以有许多方法。你可以把钱存进银行,但是利息的增长往往跟不上通 货膨胀的速度。买国债也是个办法,但同样,收益也不会很高。不过,这两种投资方法都无 需承担什么风险。 你也可以选择把钱投入一个小规模的创业公司。投入几千美金换取公司的一小部分股 份。如果公司的决策正确,而且这个决策被有效地执行了,那么你就有可能挣一大笔钱,否 则就有可能会血本无归。 风险收益平衡不是什么新概念。小时候玩追人游戏的时候,如果我一直不停地跑到中间, 大家都会觉得吃惊,但这样做就没人能追到我。这一概念充斥在我们的日常生活中。你要去 参加一个会议,可已经迟到了,在考虑如何选择一条最快的路线时,就用到了风险收益平衡。 你会想,如果交通畅通,我从第 32大街走的话,就可以提前 15分钟到;如果交通拥堵,我 就彻底没希望了。 在有目的地选择投资哪种技术和领域时,风险收益平衡是一个很重要的权衡因素。15 年前,学会如何用 COBOL 编程是一项低风险的投资。那个时候,COBOL 程序员的竞争很 激烈,平均工资并不高。掌握这门技术,你很容易就可以找到工作,但这份工作的经济回报 较低。这就是低风险,低回报。 同样在那个时期,如果你选择学习了 Sun公司的新语言 Java,或许你不能轻易找到工 作,因为那时候使用 Java编程的公司很少。谁都不知道 Java到底能用来做什么。 但是如果在那一时期你仔细观察这个行业,就像 Sun公司一样,你或许会发现 Java的 特别之处。你可能会预感到 Java一定会火。投资越早,你就越有可能成为这个新技术潮流 的领导者。 这样,你的决定就是正确的。如果你做事用心,恰到好处,那你在 Java上的投资会给 你带来可观的收益,也就是我们所说的高风险,高回报。 还是 15年前,假如你看到了 Be公司新产品 BeOS 的演示,那个时候这是个令人赞叹的 产品。利用多处理器技术,这项产品强大的多媒体处理能力令人震惊。这个平台一鸣惊人, 评论员们也开始头晕目眩,预测这项技术必将成为操作系统中的有力竞争者。有了这个新的 平台,新的编程方法、新的 API 和新的用户界面概念也就应运而生了。要学的东西很多, 但是看起来这些努力似乎都是值得的。你倾注了大量的努力来成为第一个创造 FTP客户端, 或者是第一个创造 BeOS 个人信息管理系统的人。当 Be公司刚发行了与 Intel兼容的操作系 统时,就开始有传言说 Apple 要收购这家公司,使用它的技术作为新一代Macintosh操作系 统的基础。 但结果是 Apple并没有收购 Be公司。事实上,Be公司的产品就连高度专门化的小市场 也没能打进去。这个产品没有得到进一步发展。那些为 BeOS 环境编程的开发人员慢慢痛苦 地认识到,从长远看,他们的投资不会得到回报。最后,Be公司被 Palm收购,这个操作系 统也无疾而终。BeOS 是一项高风险但是极具吸引力的技术投资,但是对那些投资者来说, 这项新技术并没有给他们带来具体的长远收益。这就是高风险,零收益。 现在,我已经谈论了选择一项全新但是不稳定的技术和选择稳定成熟的技术的不同之 处。选择一项已经进入商业生产流程的稳定技术,投资风险很低,但是与投资那些无人开发 的很炫的新技术相比,收益也会比较低。那么,那些即将完成使命的技术呢?只需轻轻一推, 这些技术就跌进了坟墓。 那谁又是推动者呢?你或许会想到最后仅剩的几位 RPG程序员,他们都已头发花白, 数着日子等着退休。而新一代的程序员可能听都没听说过 RPG,他们学的都是 Java和.Net。 不难想象,一项陈旧的即将被淘汰的技术,它仅存的几名拥趸的职业生涯走向结束的过程, 和这项技术本身走向终结的道路是一样的。 但是,旧的系统不是灭亡,而是被取代。在新旧交替的过程中,旧的系统需要与新系统 对话。必须有人知道如何将新系统与旧系统融合,反之亦然。但是一般来说,新一代的程序 员和那些即将退休的老程序员都不知道或者很想知道如何才能将两代系统的特点很好地融 合起来。 所以,这就需要精明的技术人员来充当"技术收容所"的角色--帮助旧系统舒服且有尊严 地消失。这项工作的重要性是绝对不能被低估的。就像大多数人在沉船之前会跳海一样,那 些老的程序员要么就干脆退休,要么就向另一技术领域跨一步。作为一项仍然重要的技术的 最后支持者,你当然是权威。但这也是极具风险的,一旦这个技术彻底退出游戏,那你就成 了一种根本不存在的技术的专家了。但是,如果你行动得够快,还可以选择下一个正在衰退 的系统,然后再来一遍。 选择是把双刃剑,决定权还是在你手里。 练 习 基于当今市场,按照从左往右的顺序尽可能多地列举出处于早期、中期和晚期的技术。 最左边为崭新的尚未稳定的技术,最右边为即将退出市场的技术。尽可能仔细地找到它们之 间的细微关联。 当你列举出所有你能想到的技术后,标记出你认为自己擅长的技术,然后换一种颜色, 标记出那些你做过但是并不精通的技术。你的标记主要集中在哪个区域?它们是聚集,还是 分散的?处于这张图表边缘处的技术,有没有你感兴趣的? 第 1111章 选择市场 你马上就要进行一次大的投资,也许并不是要投入大笔金钱,而是时间,是你的一生。 大都数人对待工作的态度往往都是顺其自然,走一步看一步--我们刚刚深入了解了 Java或者 VB,老板有一天突然参加了一个热门技术的培训,于是我们就转而学习新技术,直到有人 又把新的东西递到我们手里。我们的职业道路就是由一连串没有方向的偶然构成的。 在《程序员修炼之道》一书中,Dave Thomas和Andy Hunt谈到了编程中的偶然性。下 面这个场景,会引起大部分编程员的共鸣:当你开始做一个程序的时候,或许手头上有一个 从网上复制的示例程序,看上去这个程序可以使用。为了满足你的需要,你会对这个程序稍 加改动--添加一些代码,再加一点。你根本就不知道自己在做什么,只是不断地做一些小的 修改,直到这个程序完全满足你的需要。但问题是,这样做就像是用纸牌搭建房子,每增添 一张纸牌,就增加了一分纸房子坍塌的危险。你根本就不知道这个程序是如何工作的,所以 你每做一点儿改动,都有可能导致你的程序完全失败。 作为软件开发人员,用这种投机取巧的方式来编程显然不是什么好主意。但是很多人正 是让偶然来决定职业道路上的各种选择。我们应该在哪种技术上投资?应该专注于哪个领 域?是应该扩展知识面,还是深入学习一门学问?这些问题都是值得我们细细斟酌的。 想象一下你开了一家公司,现在正要生产你们的明星产品。如果这个产品失败了,公司 就会破产。你会花多少精力来思考此产品的消费者是谁?在产品进入生产流程之前,你又会 用多少时间来弄明白这个产品到底是什么?我相信你肯定会仔仔细细地考虑其中的每个小 细节,然后亲自做出决定。 但是,在职业道路上,面临选择的时候,我们为什么就缺少了这番心思呢?如果你把自 己的职业当成是一门生意(事实上它就是一门生意),那么你的"产品"就是由你提供的服务 构成的。这些服务是什么?你又会把它们出售给谁?接下来的一年,对此种商品的需求是会 增加还是减少呢?在这些选择上你愿意投下多少赌注? 读完本章的内容后,你会找到答案。 1111 稳定成熟的技术还是未成熟的新技术???? 如果你想投资,可以有许多方法。你可以把钱存进银行,但是利息的增长往往跟不上通 货膨胀的速度。买国债也是个办法,但同样,收益也不会很高。不过,这两种投资方法都无 需承担什么风险。 你也可以选择把钱投入一个小规模的创业公司。投入几千美金换取公司的一小部分股 份。如果公司的决策正确,而且这个决策被有效地执行了,那么你就有可能挣一大笔钱,否 则就有可能会血本无归。 风险收益平衡不是什么新概念。小时候玩追人游戏的时候,如果我一直不停地跑到中间, 大家都会觉得吃惊,但这样做就没人能追到我。这一概念充斥在我们的日常生活中。你要去 参加一个会议,可已经迟到了,在考虑如何选择一条最快的路线时,就用到了风险收益平衡。 你会想,如果交通畅通,我从第 32大街走的话,就可以提前 15分钟到;如果交通拥堵,我 就彻底没希望了。 在有目的地选择投资哪种技术和领域时,风险收益平衡是一个很重要的权衡因素。15 年前,学会如何用 COBOL 编程是一项低风险的投资。那个时候,COBOL 程序员的竞争很 激烈,平均工资并不高。掌握这门技术,你很容易就可以找到工作,但这份工作的经济回报 较低。这就是低风险,低回报。 同样在那个时期,如果你选择学习了 Sun公司的新语言 Java,或许你不能轻易找到工 作,因为那时候使用 Java编程的公司很少。谁都不知道 Java到底能用来做什么。 但是如果在那一时期你仔细观察这个行业,就像 Sun公司一样,你或许会发现 Java的 特别之处。你可能会预感到 Java一定会火。投资越早,你就越有可能成为这个新技术潮流 的领导者。 这样,你的决定就是正确的。如果你做事用心,恰到好处,那你在 Java上的投资会给 你带来可观的收益,也就是我们所说的高风险,高回报。 还是 15年前,假如你看到了 Be公司新产品 BeOS 的演示,那个时候这是个令人赞叹的 产品。利用多处理器技术,这项产品强大的多媒体处理能力令人震惊。这个平台一鸣惊人, 评论员们也开始头晕目眩,预测这项技术必将成为操作系统中的有力竞争者。有了这个新的 平台,新的编程方法、新的 API 和新的用户界面概念也就应运而生了。要学的东西很多, 但是看起来这些努力似乎都是值得的。你倾注了大量的努力来成为第一个创造 FTP客户端, 或者是第一个创造 BeOS 个人信息管理系统的人。当 Be公司刚发行了与 Intel兼容的操作系 统时,就开始有传言说 Apple 要收购这家公司,使用它的技术作为新一代Macintosh操作系 统的基础。 但结果是 Apple并没有收购 Be公司。事实上,Be公司的产品就连高度专门化的小市场 也没能打进去。这个产品没有得到进一步发展。那些为 BeOS 环境编程的开发人员慢慢痛苦 地认识到,从长远看,他们的投资不会得到回报。最后,Be公司被 Palm收购,这个操作系 统也无疾而终。BeOS 是一项高风险但是极具吸引力的技术投资,但是对那些投资者来说, 这项新技术并没有给他们带来具体的长远收益。这就是高风险,零收益。 现在,我已经谈论了选择一项全新但是不稳定的技术和选择稳定成熟的技术的不同之 处。选择一项已经进入商业生产流程的稳定技术,投资风险很低,但是与投资那些无人开发 的很炫的新技术相比,收益也会比较低。那么,那些即将完成使命的技术呢?只需轻轻一推, 这些技术就跌进了坟墓。 那谁又是推动者呢?你或许会想到最后仅剩的几位 RPG程序员,他们都已头发花白, 数着日子等着退休。而新一代的程序员可能听都没听说过 RPG,他们学的都是 Java和.Net。 不难想象,一项陈旧的即将被淘汰的技术,它仅存的几名拥趸的职业生涯走向结束的过程, 和这项技术本身走向终结的道路是一样的。 但是,旧的系统不是灭亡,而是被取代。在新旧交替的过程中,旧的系统需要与新系统 对话。必须有人知道如何将新系统与旧系统融合,反之亦然。但是一般来说,新一代的程序 员和那些即将退休的老程序员都不知道或者很想知道如何才能将两代系统的特点很好地融 合起来。 所以,这就需要精明的技术人员来充当"技术收容所"的角色--帮助旧系统舒服且有尊严 地消失。这项工作的重要性是绝对不能被低估的。就像大多数人在沉船之前会跳海一样,那 些老的程序员要么就干脆退休,要么就向另一技术领域跨一步。作为一项仍然重要的技术的 最后支持者,你当然是权威。但这也是极具风险的,一旦这个技术彻底退出游戏,那你就成 了一种根本不存在的技术的专家了。但是,如果你行动得够快,还可以选择下一个正在衰退 的系统,然后再来一遍。 选择是把双刃剑,决定权还是在你手里。 练 习 基于当今市场,按照从左往右的顺序尽可能多地列举出处于早期、中期和晚期的技术。 最左边为崭新的尚未稳定的技术,最右边为即将退出市场的技术。尽可能仔细地找到它们之 间的细微关联。 当你列举出所有你能想到的技术后,标记出你认为自己擅长的技术,然后换一种颜色, 标记出那些你做过但是并不精通的技术。你的标记主要集中在哪个区域?它们是聚集,还是 分散的?处于这张图表边缘处的技术,有没有你感兴趣的? 2222 供应和需求 Web被广泛使用后,你只需为公司创造一个简单的 HTML 就能挣不少钱。每个公司都 想拥有自己的网站,但很少人知道怎么制作。各家公司都愿意高薪聘请有经验的网页 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 师。 那时候只需知道基本的HTML、超链接和站点结构,就可以称为有经验的 Web设计师了。 制作 HTML 非常简单。制作出好的网页不容易,但是基础的东西很好掌握。那时候, Web设计师供不应求,工资极具诱惑力,越来越多的人开始阅读相关书籍自学 HTML。结 果,越来越多的人成为HTML 方面的专家。 当 Web设计师越来越多时,就开始划分真正具有艺术性的设计师和实用主义设计师。 竞争也降低了他们的薪酬。由于雇佣 Web设计师价格低廉,越来越多的公司开始要创建自 己的网站。以前他们或许要付 5000美金才能制作他们的第一个网站,现在只需付 500美金。 当然,也有公司仍然愿意花大价钱制作出色的网站。那些优秀的设计师也有资本开出高 价钱。 最终,网页设计师的薪酬降到了中低水平。一般水平的 Web设计师逐渐被最终用户以 及做 IT但并非专业做网页的人取代。这样,HTML 设计者的供应、需求和价格达到了平衡。 Web设计师行业的历史发展证明了一个众所周知的经济规律--供求规律。提到供求,大 都数人都会想到一件商品的价值是多少,应该卖多少钱。如果市场上这种商品供大于求,价 格就会下降;如果供小于求,那么价格就会上涨。 除了可以预测商品和服务的价格,供求关系的规律还可以预测价格的变化将如何影响出 售和购买此种商品或服务的人数。通常,同一件商品的价格越低,购买者越多。 这条规律有什么价值呢?我们可以把编程工作外包给国外团队,将大量的廉价 IT工作 人员注入到我们的市场经济中。在国内,我们担心失去工作,但是廉价的劳动力事实上也增 加了市场对 IT人员的总体需求。同时,随着需求的增加,价格也在降低。高需求产品和服 务的竞争是以价格为导向的。在买方市场,价格就是薪水。你不能在价格上与他们竞争,因 为你承受不起,那怎么办呢? 国外市场为我们的市场注入了廉价的开发人员,但是涉及的技术范围很窄。印度有很多 的 Java和.NET程序员,也有很多 Oracle DBA。在国外从事非主流技术的人员还是很少的。 当选择专注于哪种技术的时候,你要仔细考虑供给增长和价格下降给你的职业前景带来的影 响。 作为.NET程序员,你会发现自己每天都在和成千上万的人竞争。但如果你是 Python程 序员,那么竞争就小得多。这会造成.NET程序员的平均工资大幅降低,也就可能会引起市 场需求的增长,也就是说,会产生更多的.NET工作机会。这样,你可以很快地找到一份工 作,但是薪水不会令人满意。相对于市场需求来说,Python程序员的供给比.NET少得多。 如果 Python工作能提供更高的薪水,那么就会有更多的人为了追求更高的薪水来做这 份工作,这样就加剧了竞争,也会降低 Python程序员的薪水。 这就是供求平衡。但到目前为止,印度专门为已经平衡的 IT市场提供服务。在印度, 主流的外包公司不会着手做新技术。他们从来都不做第一个吃螃蟹的人。他们等待技术服务 市场平衡,然后再用极其廉价的编程成本打入这个市场。 这样说来,你可能会选择市场上需求较低的工作。如果你害怕失去工作,自然而然地, 你就会选择避免与外包公司做相同的工作。既然外包公司的工作都是市场上需求较高的,那 么你就应该关注那些特殊领域的技术。这样或许不能减轻竞争压力,但是竞争的重点会由价 格转向能力--这正是你需要的。你无法在价格上与他们竞争,但是可以在能力上与之抗衡。 同样地,随着主流程序员平均成本的降低,需求就会增加。对 Java程序员整体需求的 增加,会导致国内工作机会的增加。国外廉价 Java程序员的增加可以拉动市场需求,包括 对更高级程序员的需求。 现实正是如此。许多公司看到要使国外团队更好地工作,它们就必须要留住国内那些更 高级的程序员。这些高级程序员可以制定标准、保证质量、领导技术团队。市场对 Java程 序员整体需求的增长,会导致对此类高级开发人员需求的增长。低端工作可能会流向国外, 但比起外包之前,市场上会多出更多的高端工作机会。与特殊技术市场的情况类似,从事高 端层面的 Java开发工作,竞争就会从价格转到能力上。 从供求规律中,我们可以学到重要的一点--需求的增长会加剧价格的竞争。如果只想做 稳定可靠的工作,并且跟随着工作发展,那么你就会卷入与国外开发人员的价格竞争中,因 为你的技术决定了你只能进入平衡的外包市场。如果在主流技术市场中竞争,你就必须在更 高层面上竞争,否则,你就要去发现市场上的不平衡,找到外包公司无能为力的工作。这两 种情况,你都必须找到工作的动力,提高自身的技术和灵敏度来应对一切变化。 练 习 研究当今技术市场的需求。利用招聘广告和招聘网站找出哪些工作是高需求,哪些是低 需求的。登陆外包公司的网站(如果你在这些公司工作,可以直接与员工交流),把这些公 司的技术与你发现的高需求工作进行比较。记录下那些在国内市场中高需求且没有流到外包 市场的技术。然后再将这些外包公司的技术与前沿科技相比较。密切关注外包公司还没有涉 足的上述两类技术。思考它们需要多长时间才能为相应的市场提供服务。这个时间差就是市 场不平衡的阶段。 3 只会编程是不够的 3333 只会编程是不够的 只思考在哪种技术上投资是不够的。毕竟,技术只是一种商品。你不可能只掌握一种编 程语言,或者只能够操作某种系统,然后把生意交给老板打理。如果他们只想找个懂代码的 机器人,那不如雇个外国廉价的程序员。如果你想站稳脚跟,必须要深入了解你所处的领域。 事实上,软件工程师不能只会开发软件,应该要成为这个业务领域的专家。在我之前工 作过的一家公司里,就有这么一个团队。我第一次见到这个公司数据库管理团队的时候有点 儿震惊,因为这个团队里的成员都相当厌烦数据库技术。我当时在想,既然是这样,那这些 人为什么要干 IT呢?单在技术上讲,他们算不上出色,但是这个团队有他们的特别之处。 作为企业数据的保存和维护人员,他们比那些商业 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 师更加了解这个行业。他们的知识和 对这个行业的了解使他们成为了数据管理工作的抢手人才。我们这些愚人居然还看不起人 家。他们做的工作正是他们的价值所在。 你的行业经历应该成为你的重要才能。如果你是搞音乐的,当你描述你的才能时,不能 只说我能演奏某首曲子,而要说你真正了解这首曲子的内涵。商业领域的经验也是一样。比 方说,如果你正在做一个医疗保健项目,你能区分出 HIPAA835和HIPAA837这两种电子数 据交换(EDI)协议有什么不同吗?同是软件开发人员,这个知识不就能决定谁更适合这个 职位了吗。 或许你只是一个程序员,但是如果你能用客户所处行业的专业语言与他们交流,那这就 是一项非常重要的技能。就像如果与你工作的人都真正了解软件开发是怎么回事,你会不会 觉得一切都会变得更加得心应手呢?你再也不用向他们解释为什么不能在 Web应用程序中 的一个页面上返回 30 000条记录,或者解释为什么他们不能向开发服务器发送链接。你的 客户也有同感。换位思考一下,如果你是客户,为你服务的程序员了解你的行业,不用什么 都得由你来做决定,你也不用紧张担心哪个小细节会出问题,你会不会觉得工作起来更容易 呢?你从事的行业也是这样。 现在的软件开发界,Java和.NET大行其道。如果你会这两门技术,那你就能在使用这 两项技术的公司找到工作。选择商业领域也是同样的道理。在选择从事哪个行业的时候,你 应该像选择掌握哪门技术时一样谨慎。 鉴于行业选择是十分重要的,那么选择在哪个公司、哪个领域工作对你来说也是重要的。 如果你还没有仔细考虑过这个问题,那现在开始思考吧。机遇每天都在流逝。就像利息马上 就涨了,但你却把钱存在了一个低利率的死期账户里。把自身的发展限制在一个静止不前的 行业里,可不是什么好的投资选择。 练 习 (1) 安排一次与业内人士的午餐,问问他们是如何工作的。交流中,思考如果你来做他 们的工作,你会做什么改变或者你可以从他们身上学到什么。询问他们日常工作中的细节。 问问他们技术是如何帮助(或者阻碍)他们工作的。从他们的角度出发,思考你的工作。 定期安排此类活动。刚开始你可能会觉得有些尴尬,但没关系。我是几年前开始这么做 的,这极大地帮助我理解和融入我所服务的行业。另外,在与我的客户交谈时,我也变得更 加得心应手。 (2) 选择一本与你公司行业有关的杂志。你甚至都不用买,大多数公司都有些过期的行 业杂志。试着阅读它们,虽然有些东西你可能不懂,但是要坚持。列出你可以向客户询问的 问题。不要担心你的问题很傻,客户会大为赞赏你的这种学习态度。 找一个你可以随时登录的行业网站。无论是浏览网站时,还是阅读杂志时,注意大事件 和专题文章。你所处的行业正在为什么而努力?现在的热门是什么?不管是什么,把它们介 绍给你的客户。请他们说说观点看法。思考这些潮流是如何影响你的公司、你的部门、你的 团队,以及你自己的工作的。 4 做团队中最差的 4444 做团队中最差的 爵士乐的传奇人物,爵士乐吉他手 Pat Metheny给年轻音乐演奏者提出了一条建议--"做 乐队中最差的乐手。" 进入 IT这行之前,我是一名专业爵士和蓝调布鲁斯萨克斯风演奏者。作为一名乐器演 奏者,我很幸运地早早就学到了这个道理并且一直坚持这么做。做乐队中最差的乐手意味着 你总是在与比你优秀的人一起演奏。 这样的话,你为什么不选择做这个最差的乐手呢?你会问"那这样不就会承受很大的压 力么?"没错,刚开始压力是很大。作为一名年轻的乐手,我总是十分显眼,因为我总是乐 队中最差的乐手。去演出时我连萨克斯风都不想拿出来,因为我怕被人赶下舞台。那个时候 我总是仰视身边的人,期望有一天自己也能达到他们的水平,甚至梦想能成为乐队主奏。 感谢上帝,我没有失败。神奇的事情发生了。我在这行占有了一席之地。我不是乐队中 最差的那个,但也没有成为最优秀的。这有两个原因,其中一个原因是我并不是自己想象得 那么差。这点我们稍后再讨论。 更有意思的原因是我的演奏可以自动模仿我的偶像演奏出来的音乐,这使我在他们中间 占有了一席之地。我希望这是因为我自身具有某种超能力--站在一个天才旁边,就能拥有他 的能力。但回想起来也没这么神奇,这好像就是出于一种本能。就好像如果我周围的人说话 方式与我不一样,那我就会自然而然地受他们影响,说话时使用他们的词汇或者语法习惯。 我曾在印度生活过一年半,从印度回来后,我妻子经常被我说的话逗得哈哈大笑,她问我: "你听见自己刚才说什么了么?"我居然在讲印度英语。 我做萨克斯风手时,就是做乐队中最差的演奏者。我只能像其他人一样演奏。事实上当 我在赌场或者巴掌大的酒吧里与那些差劲的乐队一起演奏时,我的演奏水平也向他们靠拢。 我发现就算不是在酒吧演奏,我也摆脱不了从那些差劲的乐队那里染来的坏习惯。就好像那 些酒鬼,清醒的时候说话也含糊不清。 所以我认识到人们会取得很大的进步或者退步,仅仅是因为与他们合作的人不同了。与 一个团队合作的时间长了,会对自身的能力产生持久的影响。 作乐手的时候,我养成了寻找最好的乐手与之一起演奏的习惯。进入 IT这行后,这种 习惯自然而然地延续了下来。我下意识地去寻找最棒的 IT人士,并与他们一起工作。显然, 真理是禁得起考验的。做编程团队里最差的程序员和做乐队里最差的乐手产生的效果是一样 的。你会发现自己变得出奇地睿智。你写的东西,和你的谈吐都会变得越来越有智慧。你编 写的程序和设计会越来越高雅优美。你会越来越有创造力,难题也迎刃而解。 好,现在我们回到能让我意想不到地融入乐队的第一个原因。我确实不像自己想象的那 么差劲。在音乐这行,要想得到别的乐手对你的真实评价,并不是件难事。你优秀,那人家 就会再次邀请你合作;你差劲,别人就会避免和你合作。比起你直接问起他们如何评价你, 这种检验方法更能得到真实的反馈,因为好的乐手不愿意和差劲的乐手同台。让我吃惊的是, 很多优秀的乐手都会再次邀请我和他们同台,甚至邀请我与他们一起组建乐队。 试图做一个团队里最差的人可以让你不再小看自己。可能你的能力应该是在甲等乐团演 出,但你自己却认为自己属于乙等乐团,这都是因为你恐惧。清楚地知道自己不是最好的, 就不会总担心被人发现你不是那么优秀。事实上,即使你在尝试做那个最差的,也并不意味 着你就是最差的。 练 习 找一个团队,让自己成为"最差"的。不需要立刻调换工作,你可以试着找一个志愿者项 目,通过与这个项目中其他程序员的合作,提高自身能力。查查有哪些编程团队会议,然后 去参加这些会议。程序员一般都会用业余时间做兼职,以此来练习新的技术,提高自身技能。 如果在身边找不到这样的程序员组织,就利用网络。找一个你钦佩的开源项目,且他的 设计者是你下一阶段发展的目标。浏览这个项目的待处理列表和官方讨论区,或者编写一个 功能或者修正一个大的错误。你的代码要模仿这个项目的代码风格,但是又要让你的代码和 设计与其他项目完全不同,甚至让原作的程序员都认不出来。在你觉得一切都妥当之后,把 它作为一个补丁提交。如果你做得好,这个项目就会接受它。这样重复来做。如果这个项目 的设计团队不同意你的观点,那就将他们的反馈加入到你的设计中再次提交,或者记录下他 们做出的改变。最终,你会发现自己成为了这个项目团队中值得信赖的一员。你会惊喜地发 现虽然这些高级程序员并不在你的身边,你甚至连他们的声音都没听过,但你已经从他们身 上学到了很多东西。 5 在思维上投资 5555 在思维上投资 当你选择专注于哪个领域发展的时候,那些容易找到工作的技术很吸引眼球。Java 和.NET都是很强大的。学习 Java,你就可以去申请一份编写 Java代码的工作,而且成功得 到这份工作的几率很高。 这样想,那如果在一种新的还未稳定的技术上花费时间和精力,就会显得很愚蠢,特别 是如果你之前并没打算开发这种技术。 TIOBE Software利用网络搜索引擎,根据全球范围内有经验的工程师、课程和第三方供 应商对程序设计语言的实际使用率,将编程语言做出排序 。这种统计方式虽然不是很科学, 但可以起到很好的指示作用。 当我还在撰写此书的时候,最受欢迎的编程语言是 Java,C语言紧随其后,C#位列第 6 位,但是已出现微小的上升趋势。SAP 的 ABAP 位列第 7位,但名次成缓慢下降趋势。我 最喜欢的 Ruby排名第 11位。在重要的工作中我一般都用 Ruby,并用它来做每年国际性会 议的议题。但当本书第一版发行时,Ruby居然跌出了前 20名,位于ABAP 之后! 这么说来,我使用 Ruby只能说明我疯了或者傻了?Paul Graham在 Great Hackers 一文 中曾宣称使用 Java的程序员没有使用 Python的程序员聪明,这一观点在这个行业中引起了 一阵骚动。他惹怒了很多愚蠢(不敢相信我自己居然这么说)的 Java程序员,他们在自己 的网站上驳斥这一观点。这种反击行为恰恰证明Paul Graham触动了这个行业的一个敏感点。 当他第一次以演讲的方式发表这篇文章时,我在现场,他让我回想起了往事。 一次我去印度招聘,要从上百名面试者里挑选十几名适合的人选。整个招聘团队筋疲力 尽,因为大家费尽周折,却根本没有挑选到适合的人。我们头疼欲裂,眼睛也熬得通红,晚 上开会商讨应该如何改变面试的策略。为了面试更多、更优秀的候选者,我们需要优化面试 流程。我连续 12个小时努力让那些紧张沉闷的应聘者开口说话,嗓子都哑了。所以我提议 在猎头简历搜索库的关键词中增添"Smalltalk",但是人力资源总监的答案是"在印度,没人 知道什么是 Smalltalk。"这就是关键所在了。没人知道 Smalltalk,用 Smalltalk编程与用 Java 是完全不同的。这种不同的经验使我们对候选人的期待值不一样,Smalltalk环境的动态特 征赋予 Java程序员在处理问题时一种新的思维的方式。我希望这些因素能够让我发现技术 成熟的程序员,但在这之前我还没找到符合条件的应聘者。 在搜索关键词里增加了"Smalltalk"后,大大缩小了候选范围。符合条件的应聘者真正理 解什么是面向对象的程序设计。他们认识到 Java不是能解决任何问题的万应灵药。他们中 的大多数人真正热爱编程!招聘团队就像发现了未经打磨的钻石,心里想,前两个星期你们 都干嘛去了! 由于他们很优秀,所以有资格提出条件。可惜,我们给出的薪酬有限,不足以吸引他们。 大都数人都选择留在原来的公司或者继续寻找工作。尽管没能留住他们,但我们学到了宝贵 的招聘经验:比起那些经验单一的候选人,我们更倾向于那些具有丰富经验的候选人。我认 为优秀的程序员之所以寻找变化和多样性的工作,是因为他们喜欢学习新东西,或者是因为 他们很清楚要想成为更加成熟、更加全面的程序员,就必须去学习新的技术、在新的环境下 工作,获取新的经验。我认为这两方面因素都奏效。现在我仍然使用这个技巧来招聘程序员。 所以你与其千方百计地想要进入我的候选人范围,不如把精力放在学习以前没有使用过 的技术上。 作为招聘经理,我认为判断你适合不适合一个职位的首要因素就是你是否对这行感兴 趣。如果我知道你为了自身发展,或者更理想的是,你单纯因为兴趣而学习新的东西,我就 会知道你热爱你的职业,把你的职业视为动力。当我问候选人有没有用过某种非主流的技术 时,最不愿意听到的答案就是"没有人给我机会使用"。没有机会?从来也没有人主动给我提 供过这种机会啊!机会是要自己争取的。 除了可以激励你,使你更加热爱工作,更重要的是,接触这些边缘技术和方法能让你更 有深度、更加优秀、更具智慧,以及更具创造力。 如果你认为这样还不足以成为你学习新技术的原因,那或许你选错了职业。 练 习 学习一种新的编程语言。但不是从 Java到 C#或者是从 C到 C++。这门新的语言应该可 以让你的思维方式产生变化。如果你是 Java或者是C#的程序员,那就尝试学习类似 Smalltalk 或者 Ruby这种不需要采用强类型的静态编程方式的语言。或者,如果你一直在做面向对象 开发的话,可以尝试 Haskell或者 Scheme这样的函数式语言。你不需要成为专家,可以感 到这种新的编程环境与你之前所处的环境的不同之处即可。如果你觉得并没有什么不同,那 就说明你选错了语言或者你仍然将固有的思维方式运用到新的语言中。要彻底改变你的思维 方式来学习新的语言。向熟悉这些语言的程序员请教,让他们检查你的代码并提出建议,使 之更符合此种语言的特性。 6 不要听从父母 6666 不要听从父母 我们的文化要求我们听从父母的建议。这就是一个孩子的职责--做应该做的事情--就像 是一种虔诚的信仰。图书、电影和电视情节都在讲述或上演着父辈的智慧。但在我们这个行 业,这条真理是行不通的。 父母总不希望儿女去冒险,所以他们并不期望儿女有一个多么卓越的职业,只要差不多 就行了。比起其他人的建议,父母给的建议总是包含着种种担心。这种出于担心的建议目的 就是不要让你经历失败。但想着如何避免失败绝对不是取得成功的方法!成功是要冒险的。 胜利者想的是他们想要做什么,而不是其他人会怎么做。出于担心的职业规划不会让你走向 成功,而是会局限你的发展。没错,这条路很安全,但毫无乐趣而言。 在上一代人选择职业的时候,乐趣绝对不是一个决定因素。工作不是用来产生乐趣的, 而是为了填饱肚子。工作之余才会谈到乐趣,那是晚上下班后和周末的事情。但是后来我们 认识到,如果工作没有乐趣,那我们就没有动力去做好它。现在,这种观念虽然没有什么大 的改变,但是我们的文化在如何看待工作的意义这个问题上向好的方向转变了。越来越多的 人懂得了只有对工作充满激情,才会做出卓越的工作。在软件这行,如果没有乐趣,那工作 起来就不可能充满激情。 另外一个决定职业规划的因素是跳槽,父母也不会赞成这个观点。一个成熟的职业软件 开发人员需要从各个角度了解这个行业:产品开发、IT支持、内部业务系统开发以及管理 工作。作为软件开发人员,你看到的角度越多,攻克的技术难题越多,就意味着你越有足够 的能力来面对艰难项目。对一个程序员来说,只在一个公司工作,加强单一业务技能,会局 限职业发展。"铁饭碗"的时代已经不复存在了。以前,这种进入某个公司并为其服务终身的 行为被看作是一种奉献。但现在这是一种障碍。如果你只在一个公司工作过,只看到了一种 系统,那么当那些明智的经理决定是否要雇用你的时候,它就成为了一个不利因素。就我个 人而言,比起那些只知道一种做事方法的人来说,我更愿意聘请在不同的环境中经历过成功 与失败的人。 几年前,我开始认识到我父母那一代人的职业价值观很大地影响了我的职业规划。那时 候我受雇于全球规模最大且稳定的公司之一,并且慢慢稳步地升迁。但我发现我好像没有什 么前途。我安慰自己说这个公司这么大,我的发展不会受到局限。我可以在不同的工作地点 做不同的工作,但是最终,我还是在同一个地方做着相同的工作。 我曾经和一个朋友提起过想换个公司,他却说:"没准你下半辈子注定要在大公司工作。 "上帝,不要啊!于是我马上找到了一份新的工作,离开了原来的公司。 这也是我在软件界走向成功的标志性起点。我看到了以前从来没有见过的领域,我开始 应对更难的问题,我得到的回报比以往任何时候都多。刚开始我确实有点害怕,但是当我改 变了出于担心的保守职业规划后,我的事业和我的生活都变得更加美好了。 在职业道路上,需要一些有目的性的冒险。别让恐惧征服了你。如果在工作中没有感到 乐趣,那你就不可能出色地工作。 练 习 在职业道路上,你最担心什么?回想你最近做过的几次职业选择,不用是很大的决定(如 果你是出于某种担心而做出职业的选择,那也不会是什么大决定)。你从事了什么特殊的工 作,或者你申请了一份新的工作或升职。把这些选择罗列出来,逐一做出诚实的评价:这些 决定受到"担心"这一因素的影响有多少?如果你没有担心,那你会做到什么程度?如果这些 决定确实是受到"担心"的影响了,那你现在如何逆转它,寻找新的机会做出新的选择,当然 这次不要再因为担心什么而受到约束。 在微软 30万美金的诱惑前,我却选择了GitHub --Tom Preston-Werner,GitHub的创始人之一 2008年是闰年,也就是说在 366天前,几乎不差一分钟,我一个人坐在旧金山第三大 街的 Zeke's运动酒吧的包间里。我不经常去运动酒吧,但那个周四是"我可以谈论 Ruby"之 夜。我当时想"我可以……"总是个好事。ICHR是个半私人的会议,来的人都是志同道合的 Ruby爱好者,这个聚会一般都会延续到晚上,大家通宵达旦地饮酒。通常这种晚会会如同 我第二天早上的宿醉一样烟消云散,但是这个夜晚不同,因为它是GitHub诞生之夜。 一开始我说自己一个人坐在包间里是因为那天我们的长桌在酒吧靠后的地方,灯光昏 暗,我刚点了杯 Fat Tire,需要跳出那个社交氛围休息一下,所以感觉就像是一个人坐在包 间里。我小饮了几口,Chris Wanstrath走了进来。我现在想不起来那时候我和 Chris 是不是 已经成为了朋友。我和他在关于 Ruby的聚会和会议上见过面,但只是泛泛之交。我也不记 得当时为什么就朝他做了个手势让他过来,可能是因为我觉得他编的程序很不错。我对他说: "老兄,看看这个。"大约一星期前,我刚开始做一个叫做Grit的项目。这个项目使我可以通 过 Ruby代码以一种面向对象的方式访问 Git的代码库。Chris 是当时很少的几个开始认真关 注 Git的 Ruby专家。他坐下来,我开始把我所做的工作展示给他。我做的东西不多,但显 然,它已经足以激起 Chris的兴趣了。看出这点后,我开始向他讲述一个不成熟的设想:我 想做一个类似网站的东西,这个网站作为中心,程序员可以在上面分享他们的 Git代码库。 我还给它起了个名字--GitHub。当时可能我还在解释什么 Chris 就打断我说:"算我一份,就 这么干!"而且说得异常坚定。 第二天--2007年 10月 19日星期五,晚上 10点 24分--Chris带来了他的第一笔投资,用 数字石雕为我们的合伙事业盖上了印章。到那时为止,我们两个人还只是想在一起编程,没 讨论过这个 计划 项目进度计划表范例计划下载计划下载计划下载课程教学计划下载 要如何进行。 还记得电影《小子难缠》(The Karate kid)中,丹尼被训练成武术大师的情节么?那几 分钟非常精彩。记得那段音乐么?或者你应该去听听 Joe Esposito的 You're the best,因为接 下来的故事非常蒙太奇。 接下来的三个月里,我和 Chris 花了大把的时间在 GitHub的设计和编程上。我继续研 究Grit,设计出了用户界面。Chris 构建了 Rails 应用。我们每周六见面讨论设计 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 ,试图 给这个项目做出预算。一个大雨天,我们俩吃着美味的越南蛋卷,就定价策略这个问题谈论 了两个多小时。那时候,我们俩还都有各自的正式工作。我在 Powerset公司为 Ranking和 Relevance团队开发工具。 3个月没日没夜的工作之后,到 2008年 1月中旬,我们推出了一个私人试用模式,并 向我们的朋友发出了邀请信。2月中旬,P.J. Hyett加入了我们,壮大了我们的团队。4月 10 日我们正式启动了这个网站,但没有通知 TechCrunch网站。这时候,这个项目还只是由三 个 20多岁的小伙子创立的事业,没有半毛钱的外界投资。 2008年 7月 1日,我还在 Powerset做着全职工作,那天微软公司花费大约 1亿美金收 购了 Powerset。这就有趣了。我之前就知道早晚得做出去留的抉择,但没想到会这么快。我 要么与微软签合同成为他们的一名员工,要么就辞职,全职做 GitHub。那年我 29岁,是 3 个人中最大的,也是 3人中欠债份额最多、月消费最多的一个。我已经习惯了年薪 6位数的 生活方式了。另外,我妻子在哥斯达黎加的考察工作马上就要结束了。我很快就要从一个貌 似单身汉的身份回到已婚男人的生活。更让我难以做出决定的是,微软开出的薪酬十分诱人 --薪水再加上工作超过 3年奖励 30万美金。这么具有诱惑力的条件我相信任何人都会三思 而后行。所以当时我面临的选择是:一份在微软稳定且高薪的工作,或者不知道要投入多少 资金并且极具风险的事业。另外两位伙伴在有了些积蓄后,他们就不再做全职工作了,全身 心地投入于 GitHub。所以我知道我待在 Powerset的时间越长,对另外两个伙伴来说压力就 越大。这是决定"做或者放弃"的关键时刻。选择 GitHub并为之奋斗,或者做个安全的选择 --在微软工作,让荷包满满,放弃 GitHub. 如果你想要个睡不好觉的秘方,我这有:把"我妻子会怎么看待这个问题"加上 3000张 百元美钞中,再加上你最爱的啤酒,最后放入一个清偿债务的诱惑。 如今,对于如何向老板提出辞职,我已经得心应手了。那天当我接到继续受雇的通知时, 我告诉老板我要辞职,全力去搞 GitHub。我的老板很好,他虽然有些吃惊但还是对我表示 理解。他没有用更高的奖金来诱惑我。我觉得他心里知道我是非走不可了。因为我想要离开, 所以比起留在这里,新机会给我的诱惑更大。微软的经理们是非常狡诈的。他们对如何给出 保留奖金相当在行--因为我想要离开,所以比起其他人,新老板给我的诱惑可能更大。告诉 你,微软的经理非常精明。他们对如何提供保留奖金非常在行。当身边有这么一个人的时候, 事情就会变得有些古怪。 最后,就像印第安纳琼斯永远不会放弃寻找圣杯的机会一样,就算另一个选择再稳妥, 对于我真正热爱的事业,我也绝不会放弃。等我老了,驾鹤西游之前,回想过去我希望我会 说"上帝,这辈子真是险象环生啊!"而不是 "嗯,这辈子过得还算稳稳当当。" 7 做一名通才 7777 做一名通才 至少 20年前,绝望的经理和老板一直欺骗自己说软件开发是一种机械化的生产流程。 制定出规格标准,架构师把这些规格标准转化为高层次的技术层面。设计师再把详细的设计 文档填入这个框架,然后交给像机器人一样工作的程序员,他们一只手拿着低俗小说,另一 只手慵懒地敲入设计执行方案。最后,Inspector 12收到完整的编码,经测试符合最初的规 格标准后,准许通过。 经理们都希望软件开发机械化,这并不是什么奇怪的事。他们了解怎么做好机械化工作。 几十年的经验教会了我们如何有效精确地制造有形的东西。所以,把我们从机械生产中学到 的经验运用到软件开发上,我们就可以将其优化成一系列的生产流程。 在这个所谓的软件工厂中,雇员都是专才。他们坐在流水线旁自己的座位上,把 Java 的部件组合在一起,或者在软件车床上打磨一个 VB 的应用程序。Inspector 12是测试员。 软件组件随着流水线向下流动,Inspector 12每天以同样的方式测试这些组件并盖章以示合 格。J2EE设计师设计 J2EE的应用,C++的编码师在 C++环境下编码。这个工厂中,一切都 划分得很分明,安排得有条有序。 但是,这个类比并不成立。软件至少应该适应软件需求。这个行业已经变了,商业人士 知道软件很"温柔",可以根据需求做出改变。但这也就意味着构建、设计、编码和测试环节 也要相应地变得更加灵活,这些都是机械化生产过程无法满足的。 在变化如此迅速的环境下,灵活才能制胜。聪明的生意人在碰到难题时,会向身边的专 业软件师寻求帮助。那么,你怎么才能成为这些生意人遇到困难时首先想到的"英雄"呢?答 案就是--能够解决一切可能出现的难题。 但是这些难题是什么呢?没错,你我都一样,我们无法预测会产生什么难题。我只知道 这些问题非常多样化,诸如严重的设计缺陷需要立刻修补,异构系统的集成,以及 ad hoc 报告的生成。面对这么多种问题,可怜的 Inspector12可能会命不久矣了。 有句话是"什么都懂点,但什么都不专",一般来说,这句话是贬义的,是说这个人没有 专注于某一项领域,并深入学习,成为这方面的专家。但是,当你的购物网站"提交订单" 出了故障,每个小时你都会损失上百个订单时,那这个"什么都懂点,但什么都不专"的人可 能既知道这个程序代码是怎么运行的,还会做些简单的 UNIX调试,分析 RDBMS 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 中潜 在的性能瓶颈,并能检查网络路由器配置看是否存在某些隐蔽的问题,更重要的是,找出这 些问题后,这个人可以很快做出架构和设计决定,纠正代码,部署一个新的系统。这样看来, 机械化生产模式看起来就非常奇怪,而且具有很多的缺陷。 另外一个机械化生产模式无法立足的原因是:这种生产线使工作按照稳定的步伐直线进 行,而软件项目通常是具有循环性的。不仅项目的流动是循环的,一个项目内部的工作也是 循环的。在制定完软件的规格、架构和设计之前,程序员要么坐在椅子上等,要么在这段时 间着手做其他项目。但这种同时参加多个项目的问题是,不管这个软件的开发目的是什么, 当程序员要大展身手的时候,必须要依赖前后流程和经验。规格、架构和设计文档可能非常 出色,但是如果程序员不懂这个系统是用来做什么的,他就不能很好地实现这个系统。 当然,我所说的不仅适用于程序员。软件开发上的任何一个职位都是如此。由于前后流 程的问题,同时参加多个项目并不可行。结果是,我们的生产系统是低效率的。在机械化生 产模式中,有各种各样的方法尝试解决效率低下的问题。但是,我们还没有想出办法来优化 我们的软件工厂,使它变得更有效率。 如果你只是一名程序员、测试员、设计师或者架构师,那你很可能会坐在那里无所事事, 或者当你的项目快要结束时,你却在忙忙碌碌。如果你只是一个 J2EE 程序员或者是一 个.NET程序员,或者是 UNIX系统管理员,那当一个项目或者一个公司的关注点开始转移 出你擅长的技术领域时,你就会发现你不再发挥作用了。这不是说在一个项目的流程中,你 的价值有多大(架构师的价值往往最大),而是说你可以在多广的范围内发挥作用。 如果你想在这个行业站稳脚跟,那我建议你要成为通才。如果你害怕你的部门裁员,那 你就该知道精简团队的时候,一个只会测试或者只会编码的人肯定会被裁掉的。如果你就是 单纯地想要卓越,那更好,你要动动脑筋掌握大局。 成为通才就是说让你不要只专注于一种技术。在工作中,有很
本文档为【我编程,我快乐——程序员职业规划之道】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_044314
暂无简介~
格式:pdf
大小:469KB
软件:PDF阅读器
页数:43
分类:互联网
上传时间:2013-11-13
浏览量:28