【vb精品源码栏目提醒】:网学会员--在 vb精品源码编辑为广大网友搜集整理了:程序员职业规划之道 - 网络与通信绩等信息,祝愿广大网友取得需要的信息,参考学习。
1 稳定成熟的技术还是未成熟的新技术 第 1 章 选择市场 你马上就要进行一次大的投资,也许并不是要投入大笔金钱,而是时间,是你的一生。
大都数人对待工作的态度往往都是顺其自然,走一步看一步--我们刚刚深入了解了 Java 或者
VB,老板有一天突然参加了一个热门技术的培训,于是我们就转而学习新技术,直到有人又把新的东西递到我们手里。
我们的职业道路就是由一连串没有方向的偶然构成的。
在《程序员修炼之道》一书中,Dave Thomas 和 Andy Hunt 谈到了编程中的偶然性。
下面这个场景,会引起大部分编程员的共鸣:当你开始做一个程序的时候,或许手头上有一个从网上复制的示例程序,看上去这个程序可以使用。
为了满足你的需要,你会对这个程序稍加改动--添加一些代码,再加一点。
你根本就不知道自己在做什么,只是不断地做一些小的修改,直到这个程序完全满足你的需要。
但问题是,这样做就像是用纸牌搭建房子,每增添一张纸牌,就增加了一分纸房子坍塌的危险。
你根本就不知道这个程序是如何工作的,所以你每做一点儿改动,都有可能导致你的程序完全失败。
作为软件开发人员,用这种投机取巧的方式来编程显然不是什么好主意。
但是很多人正是让偶然来决定职业道路上的各种选择。
我们应该在哪种技术上投资?应该专注于哪个领域?是应该扩展知识面,还是深入学习一门学问?这些问题都是值得我们细细斟酌的。
想象一下你开了一家公司,现在正要生产你们的明星产品。
如果这个产品失败了,公司就会破产。
你会花多少精力来思考此产品的消费者是谁?在产品进入生产流程之前,你又会用多少时间来弄明白这个产品到底是什么?我相信你肯定会仔仔细细地考虑其中的每个小细节,然后亲自做出决定。
但是,在职业道路上,面临选择的时候,我们为什么就缺少了这番心思呢?如果你把自己的职业当成是一门生意(事实上它就是一门生意),那么你的quot产品quot就是由你提供的服务构成的。
这些服务是什么?你又会把它们出售给谁?接下来的一年,对此种商品的需求是会增加还是减少呢?在这些选择上你愿意投下多少赌注? 读完本章的内容后,你会找到答案。
1 稳定成熟的技术还是未成熟的新技术 如果你想投资,可以有许多方法。
你可以把钱存进银行,但是利息的增长往往跟不上通货膨胀的速度。
买国债也是个办法,但同样,收益也不会很高。
不过,这两种投资方法都无需承担什么风险。
你也可以选择把钱投入一个小规模的创业公司。
投入几千美金换取公司的一小部分股份。
如果公司的决策正确,而且这个决策被有效地执行了,那么你就有可能挣一大笔钱,否则就有可能会血本无归。
风险收益平衡不是什么新概念。
小时候玩追人游戏的时候,如果我一直不停地跑到中间,大家都会觉得吃惊,但这样做就没人能追到我。
这一概念充斥在我们的日常生活中。
你要去参加一个会议,可已经迟到了,在考虑如何选择一条最快的路线时,就用到了风险收益平衡。
你会想,如果交通畅通,我从第 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。
不难想象,一项陈旧的即将被淘汰的技术,它仅存的几名拥趸的职业生涯走向结束的过程,和这项技术本身走向终结的道路是一样的。
但是,旧的系统不是灭亡,而是被取代。
在新旧交替的过程中,旧的系统需要与新系统对话。
必须有人知道如何将新系统与旧系统融合,反之亦然。
但是一般来说,新一代的程序员和那些即将退休的老程序员都不知道或者很想知道如何才能将两代系统的特点很好地融合起来。
所以,这就需要精明的技术人员来充当quot技术收容所quot的角色--帮助旧系统舒服且有尊严地消失。
这项工作的重要性是绝对不能被低估的。
就像大多数人在沉船之前会跳海一样,那些老的程序员要么就干脆退休,要么就向另一技术领域跨一步。
作为一项仍然重要的技术的最后支持者,你当然是权威。
但这也是极具风险的,一旦这个技术彻底退出游戏,那你就成了一种根本不存在的技术的专家了。
但是,如果你行动得够快,还可以选择下一个正在衰退的系统,然后再来一遍。
选择是把双刃剑,决定权还是在你手里。
练 习 基于当今市场,按照从左往右的顺序尽可能多地列举出处于早期、中期和晚期的技术。
最左边为崭新的尚未稳定的技术,最右边为即将退出市场的技术。
尽可能仔细地找到它们之间的细微关联。
当你列举出所有你能想到的技术后,标记出你认为自己擅长的技术,然后换一种颜色,标记出那些你做过但是并不精通的技术。
你的标记主要集中在哪个区域?它们是聚集,还是分散的?处于这张图表边缘处的技术,有没有你感兴趣的? 第 1 章 选择市场 你马上就要进行一次大的投资,也许并不是要投入大笔金钱,而是时间,是你的一生。
大都数人对待工作的态度往往都是顺其自然,走一步看一步--我们刚刚深入了解了 Java 或者
VB,老板有一天突然参加了一个热门技术的培训,于是我们就转而学习新技术,直到有人又把新的东西递到我们手里。
我们的职业道路就是由一连串没有方向的偶然构成的。
在《程序员修炼之道》一书中,Dave Thomas 和 Andy Hunt 谈到了编程中的偶然性。
下面这个场景,会引起大部分编程员的共鸣:当你开始做一个程序的时候,或许手头上有一个从网上复制的示例程序,看上去这个程序可以使用。
为了满足你的需要,你会对这个程序稍加改动--添加一些代码,再加一点。
你根本就不知道自己在做什么,只是不断地做一些小的修改,直到这个程序完全满足你的需要。
但问题是,这样做就像是用纸牌搭建房子,每增添一张纸牌,就增加了一分纸房子坍塌的危险。
你根本就不知道这个程序是如何工作的,所以你每做一点儿改动,都有可能导致你的程序完全失败。
作为软件开发人员,用这种投机取巧的方式来编程显然不是什么好主意。
但是很多人正是让偶然来决定职业道路上的各种选择。
我们应该在哪种技术上投资?应该专注于哪个领域?是应该扩展知识面,还是深入学习一门学问?这些问题都是值得我们细细斟酌的。
想象一下你开了一家公司,现在正要生产你们的明星产品。
如果这个产品失败了,公司就会破产。
你会花多少精力来思考此产品的消费者是谁?在产品进入生产流程之前,你又会用多少时间来弄明白这个产品到底是什么?我相信你肯定会仔仔细细地考虑其中的每个小细节,然后亲自做出决定。
但是,在职业道路上,面临选择的时候,我们为什么就缺少了这番心思呢?如果你把自己的职业当成是一门生意(事实上它就是一门生意),那么你的quot产品quot就是由你提供的服务构成的。
这些服务是什么?你又会把它们出售给谁?接下来的一年,对此种商品的需求是会增加还是减少呢?在这些选择上你愿意投下多少赌注? 读完本章的内容后,你会找到答案。
1 稳定成熟的技术还是未成熟的新技术 如果你想投资,可以有许多方法。
你可以把钱存进银行,但是利息的增长往往跟不上通货膨胀的速度。
买国债也是个办法,但同样,收益也不会很高。
不过,这两种投资方法都无需承担什么风险。
你也可以选择把钱投入一个小规模的创业公司。
投入几千美金换取公司的一小部分股份。
如果公司的决策正确,而且这个决策被有效地执行了,那么你就有可能挣一大笔钱,否则就有可能会血本无归。
风险收益平衡不是什么新概念。
小时候玩追人游戏的时候,如果我一直不停地跑到中间,大家都会觉得吃惊,但这样做就没人能追到我。
这一概念充斥在我们的日常生活中。
你要去参加一个会议,可已经迟到了,在考虑如何选择一条最快的路线时,就用到了风险收益平衡。
你会想,如果交通畅通,我从第 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。
不难想象,一项陈旧的即将被淘汰的技术,它仅存的几名拥趸的职业生涯走向结束的过程,和这项技术本身走向终结的道路是一样的。
但是,旧的系统不是灭亡,而是被取代。
在新旧交替的过程中,旧的系统需要与新系统对话。
必须有人知道如何将新系统与旧系统融合,反之亦然。
但是一般来说,新一代的程序员和那些即将退休的老程序员都不知道或者很想知道如何才能将两代系统的特点很好地融合起来。
所以,这就需要精明的技术人员来充当quot技术收容所quot的角色--帮助旧系统舒服且有尊严地消失。
这项工作的重要性是绝对不能被低估的。
就像大多数人在沉船之前会跳海一样,那些老的程序员要么就干脆退休,要么就向另一技术领域跨一步。
作为一项仍然重要的技术的最后支持者,你当然是权威。
但这也是极具风险的,一旦这个技术彻底退出游戏,那你就成了一种根本不存在的技术的专家了。
但是,如果你行动得够快,还可以选择下一个正在衰退的系统,然后再来一遍。
选择是把双刃剑,决定权还是在你手里。
练 习 基于当今市场,按照从左往右的顺序尽可能多地列举出处于早期、中期和晚期的技术。
最左边为崭新的尚未稳定的技术,最右边为即将退出市场的技术。
尽可能仔细地找到它们之间的细微关联。
当你列举出所有你能想到的技术后,标记出你认为自己擅长的技术,然后换一种颜色,标记出那些你做过但是并不精通的技术。
你的标记主要集中在哪个区域?它们是聚集,还是分散的?处于这张图表边缘处的技术,有没有你感兴趣的? 2 供应和需求 Web 被广泛使用后,你只需为公司创造一个简单的 HTML 就能挣不少钱。
每个公司都想拥有自己的网站,但很少人知道怎么制作。
各家公司都愿意高薪聘请有经验的网页设计师。
那时候只需知道基本的 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 只会编程是不够的 3 只会编程是不够的 只思考在哪种技术上投资是不够的。
毕竟,技术只是一种商品。
你不可能只掌握一种编程语言,或者只能够操作某种系统,然后把生意交给老板打理。
如果他们只想找个懂代码的机器人,那不如雇个外国廉价的程序员。
如果你想站稳脚跟,必须要深入了解你所处的领域。
事实上,软件工程师不能只会开发软件,应该要成为这个业务领域的专家。
在我之前工作过的一家公司里,就有这么一个团队。
我第一次见到这个公司数据库管理团队的时候有点儿震惊,因为这个团队里的成员都相当厌烦数据库技术。
我当时在想,既然是这样,那这些人为什么要干 IT 呢?单在技术上讲,他们算不上出色,但是这个团队有他们的特别之处。
作为企业数据的保存和维护人员,他们比那些商业分析师更加了解这个行业。
他们的知识和对这个行业的了解使他们成为了数据管理工作的抢手人才。
我们这些愚人居然还看不起人家。
他们做的工作正是他们的价值所在。
你的行业经历应该成为你的重要才能。
如果你是搞音乐的,当你描述你的才能时,不能只说我能演奏某首曲子,而要说你真正了解这首曲子.