首页 > > > 程序员之路探究.pdf

程序员之路探究.pdf

程序员之路探究.pdf

上传者: 李亚兰 2014-02-15 评分1 评论0 下载1 收藏10 阅读量522 暂无简介 简介 举报

简介:本文档为《程序员之路探究pdf》,可适用于软件工程领域,主题内容包含程序员之路探究这是个人对程序员生涯的一孔之见只代表作者的个人想法其中疏漏甚至错误之处在所难免希望大家多提宝贵意见。前言丰厚的薪水高端的职位和有成就感符等。

程序员之路探究 这是个人对程序员生涯的一孔之见,只代表作者的个人想法,其中疏漏甚至错误之处在所难免,希望大家多提宝贵意见。 前言 丰厚的薪水,高端的职位和有成就感的事业是人人都想要的,而这些都取决于你每天的认真工作,努力学习和灵活做人上。 日子就像一块块砖,你就像是一个泥瓦匠每天在堆砌着你的人生,最终砌出一个宏伟的大厦或是一幢低矮的小屋甚至是堆成一堆 瓦砾全取决于你自己。 程序员是一碗青春饭吗? 程序界和软硬件一样都要遵守摩尔定律,也就是说当前的技术知识很快会被替代,你需要不断学习新的东西,否则就会面临 着被淘汰的危险。然而,一个人的学习动力和欲望都是有限的,记忆力还会随着年龄的增长而衰退,从这个道理上来说,年龄大 的迟早会被年龄小的超过,成为鸡肋并最终将被无良的公司抛弃。难道程序员这个职业做不过三十五岁,永远是一碗青春饭吗? 根基是决定一个人会不会被淘汰的关键 我刚进入 IT业就听说过这种说法,不过当时的年龄限度是 30岁,当工作一段时间后,这个限度上调了五岁,而且还有陆续 上调的趋势,而在各个公司中,超过 35的程序员并不罕见,在外国做了一辈子软件的人也屡见不鲜。难道“程序员是吃青春饭的” 是一个谬论吗?那么为什么很多人持有并宣扬此论调呢? 其实这个结论既正确也不正确,它的结果取决于要评判的人。一个人如果根基扎实,他就更容易学习新的事物新的知识,年 轻和精力相对于扎实牢靠的根基是微不足道的,对于别人是一座山的障碍,对于他也许就是一张纸的隔阂,这样的人是不会面临 着被超越被淘汰的危机的,青春饭的论调对他完全不适用;而一个人如果根基不牢,只是靠精力和年龄勉强立足,每次新事物新 知识出现都在和年轻人拼体力拼精力,那么他迟早将被淘汰,优胜劣汰的社会就是这样残酷无情,但很公平 。 什么是程序员的根基 面向对象的思想。MVC,分层架构,按接口编程,依赖注入,OR Mapping,面向方面,SOA 等都是 OO 的发展,不从根本 上领会它,程序员就难以把握程序发展进化的趋势,永远停留在老窠臼中无法自拔,自我提高升华进化当然更是一句空话。 数据结构。程序的核心目的是收集,整理和展示数据,而数据的核心就是数据结构,它的重要性不言而喻。线性表、栈/队列、 串、多维数组、广义表、树、图这些数据结构你都需要认真掌握,掌握的程度越深,日后学习的阻力就越小,相对于他人将更有 优势。 算法。如果缺乏好的算法,程序架构得再完美数据再贴切都无济于事,犹如一台法拉利却用牛来拉一样。迭代法、穷举搜索 法、递推法、贪婪法、回溯法、分治法、动态规划法都是你需要掌握的,不要以为这很难,读透一本算法导论就足够了。 基础 API。只有思想,数据结构和算法只是一条腿,要健步如飞还得两条腿走路。程序员的另一条腿就是基础 API,你需要 认真掌握 TCP/IP协议详解,Socket通信,线程,文件读写等每种语言和技术都需要的基础知识,一个新事务即使再绚烂夺目也 是利用这些基石搭建而成的,如果你彻底了解了它们将永处不败的境地,甚至觉得新技术也不过如此。 如何打好根基 多学。从项目中学,从书本中学,从别人哪里学,从失败中学习,掌握基础 API就是需要多学习,如果有已有的知识总结可 以起到事半功倍的效果。 多想。学习 OO和算法都需要理解,光是死记硬背毫无用处,子曰“学而不思则罔”,OO和算法的学习都需要一个理解消化 的过程,只有彻底理解了,你才真正掌握了它们。 多练。经过代码的历练,程序员才能百炼成钢,成功的项目能告诉你什么是正确的,失败的项目会暗示它为什么会失败,下 次你就能更进退有据。更重要的一点是,不做项目,不做多个项目,不做大项目,程序员对“度”的把握总是缺乏经验,不是过 就是不及。真正亲手手写过 10-20万行代码的是成为一个成熟程序员的必要条件(但不是充分条件)。 多见。眼光狭窄,目光短浅,固步自封只能造就一只井底之蛙,你的眼光必须超越自己所在的环境才能取得真正的进步,现 在有许多开源社区和软件都是你应该涉足的地方,和什么样的人在一起你自然也会成为什么样的人。“蓬生麻中,不扶而直,白沙 在涅,与之俱黑“说的就是这个道理。 程序员的身价是由什么决定的? 如果一个程序员有良好的根基,充满智慧的头脑,积极主动的精神和锲而不舍的毅力,他就一定能有丰厚的薪水吗?答案是 否定的。原因在于薪水不光取决于自身的水平,还取决于周围的环境。 程序员的身价首先决定于他能给雇主带来多大的利益,如果带不来利益,程序员再有本事也是白搭,这就要求程序员一定要 根据自己的特点寻找合适自己发展的公司,在你的职业生涯之初就要研究自己和世界,逐步选择一个合适自己的方向发展,永远 记住,方向比努力更重要。 其次,程序员的身价也取决于他的不可替代性,即使一个人能带来很多的利益但身后有大批的后备军资源,干不好立即就有 人顶替你,这样的人薪水也不会高,反正你不干有的是人干,资本家就是这样无情。这告诉我们要使自己不可替代,就要努力向 高处走,一定和众人拉开差距才能彰显自己的价值。 程序员生涯能给我们带来什么 IT是一个朝阳产业,正处于蓬勃发展中,选择这一行比其它行业拥有更多的发展机会。 相对于其它职业,程序员对自己命运的把握程度更大。”荣辱自取,不求于人“,这是一种非常好的感觉,在别的职业中是难 以找到的。 只要人们还在使用计算机,程序员这个职业就永远不会消亡,因为计算机运行永远需要软件。 在信息时代,程序是一个非常有效的收集或发布信息的工具,如果利用得当,它能直接带来巨大的收益。 程序员事业发展的方向 架构师,CIO。对于热衷于技术的程序员来说这是一个不错的方向,架构师这个职位的必要条件是有优秀的技术功底和丰富 的设计经验,此外还需要有某个领域的深入知识。对于 CIO要求更高,他需要对未来五年内的技术走势把握得比较清楚。 项目经理,部门经理。人际关系处理良好,语言能力出众的程序员适合走这条路。这也是大连大多数程序员的理想选择。 做自己的网站,当一个给自己发薪水的人。网站做好了收入颇丰,低端如 hao123,高端如 google的例子都摆在眼前。其实做 网站初期投入并不巨大,但需要持之以恒的毅力尤其是敏锐的市场嗅觉,它决定了你是否能从网站中盈利。此外,拥有自己的网 站对于自我宣传,建立个人品牌有很大的好处。这条路适合于热衷于网络技术的程序员。 开公司创业。制作软件并不难,难得是是否能接到活,能否接到长期的活,如果能做到的话,你就可以选择创业。拿工资致 富是不可能的,而一次项目的利润可能就等于你前期的工资总和。 后语 相对于永恒的宇宙,我们确实非常渺小,应该有谦卑之心;但是跟别的任何生命相比,我们的尊严,我们的价值,我们的可 能性,是一样的;就算人家确实是牡丹玫瑰,自己只是小小的,角落里的一朵苔花,也应该灿烂地绽放,把自己涨圆,并且自豪 地仰望苍天,说:“我也能!” 建立你的商业意识 1 程序员为什么需要商业意识 几年前,当我刚刚认识Fishman的时候,听到他神奇的创业经历,觉得非常不可思议。甚至还专门写了一篇报道发到《电脑 报》上,题目是《从程序员到 CEO》。不久,Fishman将创建的又一个新公司天夏科技卖给了丁磊的网易。丁磊以原来的天夏游戏 开发团队为基础,开发的《大话西游》系列的游戏给市场带来的冲击,完全扭转了门户网站的竞争格局。 尽管当时的网易股票处于极其底迷的状态,Fishman放弃了很多股票而选择了现金,但 Fishman从中获取的收益不是一般人所 能够想像到的。刘韧也曾经在不同的场合表示过对Fishman技术和商业结合能力的钦佩。记得有一次在 Donews的聚会上,我提到 了一个想法,Fishman立刻从不同的角度进行了一番分析,并做出了他的判断,尽管对于这些我仍然持一定的保留意见,但他的分 析思维和方式、方向给我很大的提醒。这提起了我对一个技术出身的程序员是如何逐渐拥有这些商业意识的关注。 拼音加加的作者廖恒毅也是 我很好的朋友。他曾经是《中文之星 2.0版》的开发者,曾经担任过 微软开发合作部经理,对微 软技术有着一种执著的热爱。直到他现在担任佳软公司的CTO, 都依然亲身编码,他曾经说过“生命不止,编码不休”的类似话语。 然而,当我三年前第一次去采访他的时候,他曾经告诉我说已经停止了拼音加加的开发,原因很 简单,尽管拥有了大量的用户, 尽管每月有上千元的注册费(这在当时的共享软件中已经算是不错的成绩了),但对于他来说,这样的回报显然不能令人满意。于 是 将精力完全放在了搭建企业级软件架构方面。 当时拼音加加做了一个非常奇怪的功能,这便是将未注册用户的首页指向了新浪的新闻页面,只有用 户注册之后才能去掉这 个令人感觉不爽的功能,除了这个功能之外,软件再也没有其它的限制了。尽管后来出了很多的破解版本,但初期的破解往往治 标不治本,过 一段时间,进行某一个操作之后,首页便有会被修改为新浪的首页。廖恒毅曾亲口对我说过,其实他在防止这个功 能被破解方面做了很多工作,他在系统目录中保留 了一个备份,随机的过一段时间便会检测一下首页,如果发现被篡改,便会再 次修改。这里充分体现了一个程序员的高明和狡猾。 不过重点并不在这里,而是拼音加加所指向的新浪新闻页面,一直以来,我认为新浪是需要为此向拼音加加附费的,但廖恒毅 后来才告诉我:“指向这个网页纯粹是因为他自己喜欢看新浪的新闻而已。” 后来,我认识了百度的一位朋友吴京川,他是负责推广搜索引擎推广的,他们有一种可以和软件产品合作的业务,我介绍给 了廖恒毅,说不如将拼音加加的页面指向百度,利用一些关键词挣钱。廖恒毅后来对我说:“他在与吴京川聊了一会之后,便发现 了另外的一块广阔天地。” 事情的发展是这样的,廖恒毅在将拼音加加的首页首先指向了自己的网页,并把首页放置了一个与百度首页完全一样的搜索 框。当然,搜索框中的有一个隐含的参数, 这便是用来定义有多少搜索产生付费的功能。而后,他又照抄了百度的网站导航页面, 后来被百度的使用者发现之后,提出了抗议,于是他又去抄了另外的一个网址站。 现在,当你再访问加加在线的时候,你会发现这里已经成为了一个小小的门户,每月廖恒毅从中获得的回报在 10万元左右, 而拼音加加的升级变得更加快速和频繁起来,甚至他们在两个月之内用.NET和C++语言重写了软件。 同样一个软件,之前每月几千元,现在是 10万元,这之间的差距仅仅在于一个意识。这个意识便是商业意识。当然,拥有这 样意识的程序员也越来越多了,超级魔法兔子的作者蔡旋便在最新推出的版本中修改用户的首页指向了自己的网址站Haokan123。 我曾经在网上与FlashGet的作者候延堂有过深入的交流,作为一个在陕西地区的程序员,他取得的成绩有目共睹。几乎一直 是下载领域的明星。甚至在国外的 下载站点,FlashGet也一直是最强有力的竞争者。而他自己每年的收入也在百万级,而这一切 靠的仅仅是上门的一个大banner,一个小banner 和软件发放过程中对 3721等插件的捆绑。然而,当我与好朋友小林沟通的时候, 他告诉我说:“候延堂根本没有将FlashGet的能量利用起来,其软件的价值也不仅于此。”为了更好的利用这个软件的价值,他所在 的 265公司在IDG投资后,甚至曾考虑收购FlashGet软件。 讲了这么多,我的目的便是真的希望能够挖掘一下程序员的商业潜力有多大。而这又不得不将程序员与商业意识挂上钩。 1.2 缺乏商业意识的程序员 平时,与众多的程序员或者技术人员沟通,我都很羡慕他们拥有的技术,你可以经常感受到他们内心深处那种对技术的狂热 和执著。然而,我们又非常遗憾的看到,很 多他们引以为傲的技术是国外的程序员开发的,而且技术在不断的发展和进步,有很 多程序员在盲目的学习和追随中失去了自我,进入了技术的漩涡。我曾经与一位程序员合租过房子,那是我第一次见到一个人可 以拥有如此多的书籍,在床头上摆满了各种技术书籍,高处顶到了屋顶。不过,与我们经历过的大学生活一样,会发现很多书籍 都是新的,让人感觉既敬佩又可笑。 很多程序员可能会说:我们不想创业,我们热爱技术,我们希望能够在在公司中一直埋头技术,钻研技术,所以我们不需要 有商业意识。当然,可能大部分人不会说这句话,但他的内心也会存在这样的想法。面对这样的观点,我只能说表示同情。因为 在中国整个大环境下,能够给这些程序员提供如此的环境的地方不能说是蓬莱的海市蜃楼,也差不多是屈指可数了。除了在高校 中的研究机构外,任何一个企业都会要求以市场为导向进行发展。 四通打字机的发明人王辑志曾经写过一篇文章《软件不能在独木桥上走》,讲了他自己的一个亲身经历。一位朋友托他到澳 大利亚演示自己所写的一套软件,然而到了目的地后,他发现无论如此也无法成功的演示,回来后向这位朋友报怨。这位朋友很 不以为然的向他演示了应该“这样……这 样……这样操作就不会出问题。”这让王辑志感受破深,一个程序员规定好的步骤不能出 丝毫差错的让普通的用户使用一遍,不啻于让用户在独木桥上行走。这也是其缺乏商业意识的表现。 现在,就来参加一个小小的测验吧,如果你具有一下症状中的两条以上,估计就需要挖掘一下商业意识了。 程序员缺乏商业意识表现为: * 拍脑袋就编程,做出决定 * 对解决了一个技术难题而得意洋洋,最后发现用户对这个功能根本不关心 * 不经过充足的测试便发布软件 * 骂用户笨,讨厌软件出来之后用户的报怨,不喜欢与软件服务人员沟通 1.3 商业意识对软件成功的重要性 很长一段时间以来,我们杂志跟踪微软亚洲研究院的发展,也和几位院长和不同的员工进行的交流。在外界看来, 微软亚洲 研究院是一个冰封的世界,一群技术狂人在随心所欲的创造和发明,他们完全是研究者的气质,仿佛与微软在外界市场上厮杀没 有多大的关系。 然而,当你真的走进微软亚洲研究院的内部,了解了其发展的前前后后,你便会改变你的认识。因为,在这里,院长的指导 思想,他们的商业意识无时无刻的不在指引着微软亚洲研究院的发展和前进。 微软亚洲研究院每定一个技术方向,都需要进行详 细的论证,包括市场上有没有需求,与微软现有的产品如何的结合,如何保证微软在未来的几年可以推出更具有竞争力的产品等 等。从第一任李开复院长起,他们的工业界经验让微软亚洲研究院就一直沿着商业的意识在不断前进。张亚勤博士曾经讲过,尽 管微软亚洲研究院要研究的可能是未来五-十年才会用到的技术,但一定要结合微软公司的发展策略和方向,要能够为微软的长 期发展奠定基础。比如微软要在未来的人机交互界面方面需要很多新的技术,于是微软亚洲研究院就在Tablet PC技术上做出了很 大的贡献,同时还在智能数码笔方面做了很大的尝试,这些技术研究都是在整个公司的大的发展策略下进行的,也唯有如此, 微 软亚洲研究院才获得了比尔盖茨和其它同事的认同。对于研究院的院长来说,如何在大的框架下面选择好方向就是他们的职责。 而现在,随着微软亚洲工程院的出现,更是将这种商业意识贯彻进了产品的开发中。 我注意到,在与已经工作超过五年的程序员,尤其是曾经带领过一个产品或者项目的技术负责人沟通的时候,他们所表现出 来对商业意识的醒悟往往让你有深刻的领悟。尤其当做出的产 品在市场上遇到挫折的时候,他们却发现原来并不是自己的技术不 行,也不是产品开发周期的问题,而是没有充分的考察市场的需求,没有用商业的意识来指导自己做事。 在我采访汉王科技的时候,曾经与三位不同战线的技术和产品负责人一起畅谈,有两位负责人在汉王工作了十年之久,他们 用亲身的经历验证了汉王发展中遇到的问题。最初,汉王的核心技术是手写识别,公司创始人总裁刘迎健也是一位非常出色的技 术人员,他曾经几十年钻研手写识别的核心技术。但在汉王创立的初期,他们曾经度过了一段非常艰苦的日子,后来曾经有一个 非常好的机遇,这就是PDA的兴起,当时恒基伟业的老板力邀汉王加盟,但汉王认为 PDA这种产品实在没有什么技术含量,根本 不看好,最终只拿到自己的技术授权使用费了事,这与后来恒基伟业所取得丰硕成果相比差距巨大,不过现在看来,随着PDA市 场的快速滑弱,对当初的决定是否合适便成为了一个无法说清的话题。然而,汉王后来的思路转变却在市场上取得了不错的回报。 比如汉王在拥有手写识别技术之后,开始考虑如何利用这些核心技术做出市场上用户需要的产品。“从核心技术到产品”,这成为 了汉王的跨越标志。 名片通和文本王便 是非常有代表性的两个例子,其实OCR软件已经出现了很长的时间,拥有这项技术的公司也不只汉王一家, 但汉王最早利用这些技术做出了一个在市场上销售火爆 的产品。名片通就是为了解决现在大家交流频繁,名片聚集过多,但不易 查找的问题。据说,名片通的推销人员打电话给微软公司公关部门的人员的时候,本来根本不愿意理会,但后来听到介绍和看了 演示之后,当即购买了数台。一个成本不足百元的黑白扫描仪和一套软件销售的价格超过千元。 对于文本王,更是如此,最初提出这个想法的是汉王的一位技术人员。他当时表示看到了很多单位中都有扫描仪,但用的人 很少,经过研究发现,原来OCR软件的使用是需 要比较专业的,首先需要配合扫描的分辨率,而且扫描出来的图片还需要进行校 正,尽管这在程序员看来简直就是小菜一碟。但这些操作对于扫描仪潜在的消费人群 办公室人员来说就是不小的使用障碍了。于 是他提出了对OCR软件和扫描仪的改进意见,这样汉王投入了一个团队进行开发,将OCR软件与扫描仪更好的结合, 比如可以自 动校正,自动识别,自动输出Word文档等公那过。上市之后取得的效果是令人震惊的,用户的反馈也非常的热烈。 这让我回想起 PDA最初发明的故事,一直以创新为理念的苹果公司创造了第一台掌上电脑Newton,但由于体积庞大,运算速 度慢,手写识别效果差等问题在市场上铩羽而 归。但有一个人从中看到了问题的本质,先从手写软件的识别着手,由于速度慢, 识别用户不同的笔迹对CPU运算的速度要求很高,于是他发明了一套输入法,定 义了一套“任何字符必须一笔写完”的规定,尽管 这对用户来说还需要学习,但学习的成本并不大,而且一旦学会,识别的效果会非常好,再加上其对电脑的功能进 行了不断的裁 减,只集中到了几个必要的功能上,这样在体积方面也达到了用户需要的地步,这款产品上市后取得了意想不到的成功,甚至从 3COM公司分拆上 市,这便是PALM。 因此,在一个公司中,作为普通的一个程序员,同样要具有自己的商业意识,这些意识并非是为了考虑公司的经营,并非是 为了转向管理,而是为了提升自己开发的价值。 1.4 商业意识不如用Business Sense 我既不是“海龟”,英语讲的也不好。不过,我仍然在这里希望能够用一个英文单词来表明我的观点。因为在中文里面,商业 已经被人用的过烂了,再加上国内的这些商业体系的不完善,总是给人感觉不如Business的味道更加纯正。而对于“意识”一词,我 更加是认为一直以来被用作政治用词,我们在这里拿来颇有些“挂羊头卖狗肉”的意味。而Sense一词却有一种不可言传的体会,他 讲究的是一种感觉,一种感悟。因此,Business Sense可能更加适合作为我们希望宣扬的重点吧。 微软曾经重金从美国邀请来一位著名的作家,他写了一本书,我们出版社也出了这本书的中文版,其中他讲到一个重要的总 结:他认为日本的软件做的是工程(Engineering),欧洲的软件是当作科学在做,而在美国,之所以他的软件产业发展的很好,这 是因为他们一直是将软件当作商业(Business)在做。这也成为我写这本书的重要论据。 看到了这样三种模式,中国将要采取那种模式呢?就像公有制、私有制共存一样,中国存在的也是一种混合的体制,既有希 望自己开发产品做商业的美国模式公司,也有热衷与外包服务的工程公司,而在各大专院校中,软件不也同样被当作科学在搞吗? 如果不是这样,同样开始进行开发的青鸟UML软件,怎会落得这样的下场。 打破技术误区,拥抱商业意识 一直以来,中国的软件产业都没有按照正规的商业市场化进行操作,这一方面与国情有密切的关系。但同时,我们发现,很 多成功的软件企业无一不是钻了某些政策方面的漏洞,或者是利用了某个时期的政策而发展起来的。这一方面造成中国的软件产 业没有按照商业的规模发展,同时也给很多程序员带来了很多误解。 误解之一是只要埋头写一个好的软件,自己就能够成为百万富翁。从一开始塑造的一系列类似求伯军这样的软件英雄开始, 尽管激励了一大批高手进入了软件领域,但这时恰逢整个软件开发的技术进行更新换代,同时软件的开发规模和质量要求也更加 高了起来,在这样的大背景下,一个程序员缔造出辉煌显得是那么的无助。成功的归结于机遇,失败的归罪于大环境的恶劣,而 恰恰没有考虑的是否一开始就按照市场的规则做事,是否拥有了商业的意识和经验。 误解之二就是中国的市场很大,不必考虑国际市场。直到现在,仍然有一大批人鼓吹中国的市场很大,先把国内的市场作好 就可以了。我认为,这简直就像“攘外必先安内”的语调。在中国,唯一几个成功的将软件产品在全球行销很好的就是几个台湾的 公司,包括趋势和友立科技。我在与友立科技董事长采访的时候,他很明确的表示,当初开始做产品行销就考虑到了全球,为什 么?就是因为台湾的市场很小,所以不得不把眼光放到全球市场。当友立科技还很小的时候,曾经因为触动了Adobe公司的市场, 备受打压,活的非常的艰难,而一旦Adobe发现这种打压很难真的消灭到U lead的时候,他们又祭起了领悟一个法宝:收购。尽管 这次收购让U lead没有机会成为与Adobe那样规模的公司,但付给U lead的这笔钱让友立科技更好的发展了其它的产品。如果没有 在全球上的这种拼杀,U lead又怎能在图像处理市场上占据这样的地位呢。公司小不可怕,怕的是缩在家里,不愿意也不敢出去。 而程 件开发工程的思想已经在美国传播开来,甚至还诞生了Rational这样的工具厂商。因此,我想说,中国的市场大对中国的程序员来 说是个好事,还是个坏事真的是需要好好思量的。我觉得后者的可能性还是要大一些。 误解之三:利用最先进的开发工具就可以做出更好的产品。中国的程序员生活很艰苦, 是他们手中的武器:开发工具。伴随着盗版,在开发人员报怨自己开发的软件被破解的同时,自己也在使用者被破解的开发工具, 一个新的版本出来,立刻便会尝试使用,开发人员的机器上安装的永远都是最新的开发工具。于是,中国一批又一批的程序员都 变成了脱离某些RAID工具不会编程的“开发高手”。这首先,就是他们缺乏商业意识,对知识产权的不尊重,在这种情况下,你能 够要求他们深入学习和掌握手中的工具吗?我在采访一些美国的程序员时,他们很多人还习惯直接用最简单的开发工具写代码, 因为公司没有那么多资金用来升级开发环境,但这也造就了他们扎实的编程基本功。而国内的很多程序员只能够被牢牢的捆绑到 一个平台上,当Linux出现的时候,又有多少人可以迅速的从Windows平台转变到过来呢,尽管在很多人看来,这两个平台的开发 在底层上其实并不多大的区别。 其实,程序员拥有商业意识并非 理解公司发展的策略,做产品可以更好的做出成功的产品,自己创业可以更好的走向成功。 1.5 技术发展背后的商业驱动力 在技术的产生和发展过程中 应该说,互联网技术的产生是军方发展过程中的产物,但是一旦这项技术民用化之后,便大大促进了商业的进展,那个时期 技术是商业的驱动力。看看当时硅谷的发展就可以明显感到这种现象。最初被追捧的互联网公司往往都是技术型的公司,这类公 司的股票成长速度快的出奇。Netscape就是一个特别著名的例子,当硅谷投资人吉姆克拉克看到浏览器这一个市场的时候,便收 罗了Netscape的开发团队并力图使之上市。当时吉姆克拉克简直就成立硅谷风险投资商的太上皇,运行谁投资这都是要排着队的。 当时,曾经因为第一次给吉姆克拉克投资占据太多股份的一家风险投资商因为被克拉克拒绝对网景的投资而心理崩溃,进而走向 了自杀。这时,技术是指路灯。 而华人陈丕宏创建的互联网企 在技术上的投资逐渐衰减。已经成为商业对技术进行反作用了。 现在,很多公司也表示,最近没有什么特别激动人心的技术出 而是真的问到,到底这些技术能够给自己的业务带来一些怎样的改变,能够如何提高公司的盈利。 通过IBM这家大公司的转变,我们也能够从中管窥到技术和商业之间的驱动交互过程。IBM在五 元研发大型机技术,当时IBM就代表着技术和实力,公司在研发方面的投资超过了其它所有公司的总和,而且所有的商业都在随 着IBM的新技术不断向前发展。然而,随着PC机器和小型工作站的兴起,IBM的大型机策略遭受到了挫折,而且他们的技术已经 序员也在这个过程中失去了与全球软件开发思想同步的机会,当我们还乐衷与几个人埋头开发小软件的时候,大规模软 但有一点他们永远都不会最差,这便 让他们脱离技术的轨道,而是对其人生的更好补充。有了这些商业意识,在公司可以更好的 ,它与商业的关系属于相互作用,而且在一定阶段,要么技术占据主导,要么商业占据主导。 , 业最初也是以技术为核心,在上市初期备受股市追捧,然而随着互联网技术的普及,随着客户 现,而且越来越多的企业不再仅仅注重几个IT技术的新名词, 六十年代,投入了几十亿美 不再成为控制客户的法宝。在各种外忧内患的干扰下,IBM的市值一度下挫至谷底。这时,他们请来了卖饼干的郭士纳,郭士纳 在考察了客户的需求之后,提出了整合IBM的技术资源,给客户提供整体解决方案的策略,这时已经开始由完全有IBM主导技术 发展开始走向给客户提供适当的技术解决方案。而且,当时恰逢互联网的热潮,伴随着电子商务技术提供商角色的宣传,IBM展 现了一个技术供应商的地位。逐渐走出了低谷,并创造了一系列的辉煌。在郭士纳离职之后,新任CEO将他的策略再次推进了一 步,这次不再说其它的,而是修改为“随需应变”。其实,这也就是按照客户的要求做事了。IBM第一次将满足客户需求,而不是 技术领先作为公司的整体策略。也间接证明了现在这个社会,已经由原来的技术驱动转变为了商业驱动。 而且,很多商业需求在主导了某些技术的产生和发展,比如软件外包和需要的网格技术就是一类,客户已经不 导IT,而只是希望关注自己的核心业务,于是IBM看到了这点,将很多IT技术支持服务接手了下来,同时,为了更好的支持这种 业务类型,IBM将自己的研发方向放在网格技术上,做了很多工作和努力,然而,在执行了一段策略之后,IBM又发现其实要满 足用户的这种需求并不是一件容易的事情。在技术上需要跨越的障碍远远超过老板的想像,于是不得不重新整理自己的思路,提 出了踏踏实实整合自己产品和技术线,按照行业进行资讯和技术服务的策略。不过,IBM还是看到了一点客户的需求,这就是在 国外大部分的系统之间开始需要进行整合,于是IBM将“随需应变”转变为了更加实际的“整合策略”,这样收购的产品线统统都为 这个统一的目的而服务了。 对于微软这样的公司来说也 所提供的技术进步让所有的用户感觉到了一种鼓舞。每个新版本都有那么多的新技术,新特性目不暇接。然而,现在Windows产 品虽然也经常可以看到很多新技术的宣传,但用户已经好像对此麻木了许多,就像比尔盖茨如此看重的Longhorn也不能勾起大部 分用户的胃口。没办法,时代已经不同了。用户已经厌倦了跟随在这些技术厂商的屁股后面前进了。类似苹果这样的公司,虽然 也在技术上有很大的技术,但在宣传方面,好像更热衷于用外在的设计来吸引用户的关注。 要说唯一对技术保持热情的群体可能就要算开源社区了。在思想精神上的刺激下,很多软件 展,但最近一段时间,这样的步伐也开始慢了下来,更多的人开始关注如何利用开源来做出自己的商业模式,诸如J boss这样的团 队就更加希望按照客户的需求来定位自己产品未来的发展,这样的产品是在一个商业人员的带领下发展,而不再是在一群技术狂 人的掌握下飞奔。 我采访过很多家国 似点击科技这样的公司,在创立之初,相信王志东认为凭借自己的影响力和对技术的把握,肯定可以吸引一大批客户跟随自己的 协同软件平台,但事实上,商业前景并不清晰的点击科技在技术推广方面遇到了很大的挑战,于是不得不投入了很多的精力在自 己的平台上先打造出一系列能够满足用户使用的解决方案出来,至于以后这项技术的推广和发展,实在不是一件容易的事情。 我们经常使用某些共享软件,其实好像这些软件整体的技术并不出色,而且与很多大型软件相比更是弱不禁风,但就是有很 多应用可以通过这些小的软件更好的实现,比如Photoshop其实理论上可以实现任何一种图形和图像的设计和处理,但U lead却对 一些初学者和简单的图像操作提供另外的一种方式,而类似图像转换这样的功能更是让一大批小软件在市场上获得了回报。 Macro Media的Flash制作产品可以制作各种各样的Flash,无论是按钮和程序都是可行的。但仍然市场上有很多简易的 flash banner生成软件,比如把文字直接转换为flash,或者把Video转换为Flash,这些技术其实Flash本身都内置,但用户希望以更 简单的方式来使用,于是用户的需求就代表了商业的驱动力,驱动着一些技术向前进步。 如果无视这种变化,而固执的坚持技术论,有可能会遭遇到挫折。在国内与普元公司的CE 其实国外很早便有公司做同样类似的产品,也就是能够从软件初始开发的时候就用构件技术搭建,但到现在为之,很多公司最终 失败了。谈及失败的原因,黄柳青表示,其实并不是他们的技术做的不好,而是因为美国的主流客户应用不在这个领域,大型系 统已经发展多年,要重新用一套新的技术和方法构建,其中的难度是可想而知的,而且开发这样一套系统需要投入巨大的人力和 物力,很多公司没有等待到那一天便支撑不下去了。但是,在中国这样的系统是有其市场空间的,因为中国的大型系统还处在发 展的初期,如果能够有一套提高开发效率的体系,自然可以吸引用户,同时国内开发这样的产品,其投入比国外相比还是少了许 多。总之,综合这样很多因素,我们可以看到商业对技术的反作用力现在占据主导地位。 然而,这并不能说明,未来不会再重复技术推动商业的时代出现。如果未来出现了更好的开 异的体系架构,真的有可能再让我们技术人员感到骄傲的一天。有人说,现在的硬件体系比十年前复杂了 10倍,但软件比原来的 复杂了 300倍,这对于很多技术人员来说,能够寻找到解决这个问题的技术方法无疑就是“银弹”。 在这样的时期中,程序员不要埋怨自己生不逢时,也不要对满足客户的需求心存芥蒂,充分的拥抱用 我们有一天从用户的需求中又再次挖掘到了技术的新驱动力。 再愿意自己主 不例外,在开始,从Dos时代向Windows时代的转变以及Windows95的发布,对于全世界来说,它 产品保持着飞速的版本更新和发 内的软件企业,他们也开始将宣传的重点从原有的技术转向到满足客户的要求。趋势科技就是这样。而类 O和CTO沟通的时候,我们了解到, 发方法,或者有人发明了更加优 户的需求吧。或者,当 第二章 与客户沟通 建立商业意识 创立威速科技的清华毕业生在开 是他们认为自己的产品肯定会受到用户的喜爱,带着这样的想法,他们将自己的视频会议产品 1.0 版本展示给客户。客户看了之 后说:“你这个产品微软的NetMeeting不是都提供了吗?你们和他们的有什么不一样?NetMeeting是一个免费的产品,我为什么要 选择购买你们的产品?”这些问题当时曾经让总经理叶滨无言以对。后来,我们终于理解了,原因是一个技术和产品之间存在着如 此大的差距,让用户购买是需要提供足够的说服力。即便这样,他们仍然在更新的几个小版本之后一套产品都没有销售出去。直 到 2.0 版本出来后,提供了多方混音会议,支持各种文件格式的白板功能等增强的功能,这才获得了用户的初步首肯。到现在, 叶滨说:“这是我创业中的转折点。” 而现在,当你在创业之前就了解到 为什么要使用你的服务?他们会为哪些服务付费?市场上有没有类似的产品?他们的功能怎样?缺少哪些客户需要的功能?未来 的竞争态势如何?等等问题,只有当你把这些因素统统考虑过一遍之后,在返回头衡量一下自己的出发点,或许那时你将对自己 的产品有了更加清醒的认识。 Magic C++是两位程序员的 信部门工作的时候便深受Unix开发环境不便之苦,而另外一位创始人戴晓东同样也经历过这样的问题。于是两个人辞去了自己舒 适的工作,埋头到了广州一个城乡结合部开发软件。两个人做了将近两年,在这过程中,他们没有任何其它的娱乐和消遣,写代 码、吃饭、睡觉就成为了生活的全部,到最后两个人的神经几乎在紧绷中崩溃。我们在这里的确是要为他们对技术的痴情而致敬, 但返回头了解一下他们当初所做的决定,也比较容易发现其中存在一些冲动的成分。用周鸿?的话说:“这个市场是一个窄众市场, 用户群很小,而且中国的客户还没有为开发工具付费的习惯,因此建议在国外销售。”当然,现在Magic C++也在稳步的发展,但 当初如果能够更好的考察一下市场,或许可以取得更好的成功。 开发的软件不是程序员自己用的 曾经有人描述求伯军当时编程 会产生这种冲动。然而,当我们仔细衡量一些他们的动因时,会发现原来他们是要给自己写软件,而不是写给用户使用。 记得当时金山推出“用户使用体验实验室”的时候,还颇为骄傲的宣传了一把。因为,从中可以观察用户的使用习惯。我 可能是雷军从各种媒体的报道中发现了这样一点:有公司将用户使用软件的一举一动都记录下来,然后分析用户的使用习惯,进 而改善用户的使用体验。在VB之父的书中,也阐述重要性。 然而,对许多程序员来说,仍然无法站在用户的角度看软件 可以做出各种层次,可以支持各种数据类型的调查。但令人伤心的是,整个系统的安排和命名极其混乱,我想也只有开发人员才 能明白为什么要起那样的名字吧。当输入数据后,如果出现错误,也会返回一些令人丈二和尚摸不着头脑的提示。我每次使用, 都要极力的回忆其使用方法,即便如此,也不能保证一次成功。这让我对整个系统充满了恐惧感和不信任感。在CSDN的新闻后 台中,一个非常简单的功能,但用户提交新闻后,应该可以给出新闻的生成页面,然而CSDN的新闻后台给出的却是一个修改页 面,要想查看,需要到前台访问一个很长很长的动态地址才能够获得,这样一个简单的修改竟然经过三年的时间才修正过来。因 为每次提这个需求的时候,开发人员总会说很忙,既然能够实现整个功能,干吗还要修改。 现在担任瑞星高级副总裁的IT资深人士毛一丁也讲述过他的亲身经历。当时,珠海金山在开 去做最早的用户提建议,毛一丁非常仔细的使用过后,写了满满的一页意见,但很多开发人员看后,不以为然。比如,毛一丁提 出为什么没有很常用的“字数统计”功能,开发人员拿过鼠标,经过一番操作,把结果显示在屏幕上,然后说这不是可以实现嘛? 而对另外一些功能,开发人员认为自己很煞费苦心的做到了鼠标右键上,但毛一丁很尖锐的指出大部分用户是不知道使用右键的。 所以说,尊重用户的使用习惯,对于程序员来说,这是必须要上的一课。 2.2 玩技术与利用技术 让程序员感到最为骄 技术时,整个世界都为之疯狂,这是一个技术人员能够达到的最终幻想。不过,对大部分程序员来说,这样的高度是无法企及的, 但这并不妨碍他们来show一下自己学会的技巧。 我认识一位在Dos时代的技术人员,他在别人只 可以解密WPS文件,在别人会用CCED的时候,他可以拿着打印的长长的用C语言写的Menu的实现代码炫耀。然而,到了今天, 仍然对自己掌握了某一个技术感到沾沾自喜。其实,这样的技术人员应该也不在少数,甚至有些人只不过五十步笑百步罢了。 始的时候,一个设计的方案获得了香港某投资机构的青睐,获得了一定的天使投资基金。于 了这些必要的决定因素的时候,再去衡量一下自己的方案。你所面对的客户群是谁?他们 作品,它是一款在Windows平台可以多人开发Unix程序的开发环境,当初创始人之一的张涛在电 水平的厉害,看到一个软件,觉得不好用,于是自己动手写了一个。估计很多编程高手都经常 想这 的使用。我曾经使用过一套网上调查系统,系统的功能颇为强大, 发WPS 97 的产品,请毛一丁前 傲的事情是什么?那肯定是自己做出的技术在别人的面前进行炫耀。就像当初卡马克做出新的三维游戏 会用拼音输入法的时候学会了五笔输入法;在别人只会用UCDOS的时候,他 这并不能怪他们,因为在最初软件开发进入中国的时候,各方面的技术资料少的可怜,尤其是当Dos向Windows编程过渡的时 候,微 曾经讲过金山词霸的开发,其实只不过是因为他们直到如何利用一个钩子机制从程序中截获信息并进行翻译的处理,但就是这个 技术,事实上造就了如此大的一个产业,也造就了几位的百万富翁。而对王志东来说,也是靠剖析了Windows系统中的DLL文件 实现了对Windows平台的汉化,并由此诞生了一个畅销的中文之星软件。而瑞星的崛起也是因为刘旭将流行的Word宏病毒的查杀 机制做了出来,便一下子打开了市场。那个时候,这些人被称为高手,因为他们掌握着某些关键性的技术。甚至可以说,不一定 是技术,有可能只是技巧。 然而,现在随着互联网的兴起,技巧的价值变得越来越小,遇到一个难题,用搜索引擎搜索一下,一般都可以找到答案。实 在不行,到论坛中发一个请求,也经 以讲一个小插曲,这便是微软最早评选MVP(社区最有价值专家)的时候,在CSDN上根据专家分来进行判断,也就是谁回答的 问题最多,谁就是专家。当CSDN通过检索把名单给微软之后,在第一次见面会上,令大家跌破眼镜的是,第一名是一个女生, 而且她不太编程。当询问她经验的时候,她说每次看到问题,她就会先用搜索引擎搜索一下,如果中文找不到,那她就用选择一 些关键词搜索英文的网站,这样一般都会有人回答,这样答案就出来了,而且很多都是英文的答案,这也让很多网友感觉这的确 是一个高人,因为这些问题都是用英语回答的。了解了这一切,令人恍然大悟,除了看到一些程序员的懒惰之外,也可以感受到 技巧已经不在称为衡量一个程序员水平高低的门槛了。 这个时候,考察一个程序员的价值除了其技术的深度和广度之外,是否能够看到技术之上的商业价值,是否能够拥有商业的 意识便变得更为重要。这时,如果作为一个程序员,仍然 玩技术还有一层含义,就是迷恋最新出现的技术,一旦有了新的进展,就要下载尝试一下,或者安装一下玩玩。曾经有一次 我们被某公司邀请参加他们的一个技术研讨会。会上有两组开发的团队,一组是原有的技术开发团队,另外一组是最新组建的 而且要准备以.NET技术进行开发,当时.NET还是一个新兴的技术,有人给戴习为老师推荐了一位工程师,这位工程师号称对.NET 技术很精通。然而,当在会议上这位工程师讲述了自己准备用.NET做产品的构想时,原有的开发团队问到了很多系统设计层面的 内容,这位工程师几乎无法应对,因为他只是玩了.NET技术,对于这样的技术在商业上的应用却没有经验。会后,戴习为老师也 表示:“尽管他对微软的.NET技术有一定的了解,但的确经验还缺乏很多。”后来这位工程师发展的还不错,进入了微软开发合作 部,专门用来讲述微软最新出现的技术,想来这也与他自己的爱好挂上了钩,也是一个不错的选择。不过,这样的职位毕竟只是 少数,对大多数程序员来说,玩技术并不能给他带来更高的价值。 前两天,这位工程师又在自己的blog上提到,他用微软最新开发平台内置的屏保程序制作了一个自己的屏保,演示给同事看, 同事感觉很新奇。当我看到这条Blog,感到一丝苦笑:玩技术而已! 玩技术的另外一个后果便是容易迷失方向。在Dos时代,技术的种类很少,程序员面前的技术方向也很少,玩也容易玩出深 度。但随着Windows平台,尤其是网络出现后,各种技术层出不穷,即 能够对技术发展的来龙去脉有深入的了解,就很容易限于技术的表面理解,也就很容易造成程序员不知道如何选择要继续下去的 技术,丢了西瓜,拣了芝麻。于是会出现论坛中“到底是什么技术好,到底应该选择那种语言的疑问。”按照大部分过来人的解释, 其实只要选准一条技术路线,真正的钻进去,自然会取得好的效果,因为不同的技术之间是相通的。微软工程师孙展波在回答程 序员 “做技术到底应该做深还是做广?”的疑问时,毫不犹豫的表示:“应该做深,而在广度的方面每周抽出一些时间了解一下就 足够了。尤其是在现在互联网如此方便,网上信息量如此庞大,专业类网站密布,检索极其方便的情况下,想要获得任何资源都 是一件并不复杂的事情。” 而且玩技术还有一个结果,就是容易忽略用户的需求。技术酷是一件很棒的事情,但这并不能保证持续的生存。尽管硅谷曾 经以看哪个公司做的技术最 人感觉技术很酷,随后SUN公司推出Java语言的兴起,Java技术变得很酷,但现在,Google搜索引擎成为了最酷的技术。因此, 技术本身仅仅注重酷的感觉是远远不够的。趋势科技的创始人张明正和陈怡蓁女士合著的《 软有很多API并没有公布,在那个时候,可能一个产品的核心依靠的就是比别人多了解一个API或者一个钩子的机制。蒋涛 常会有高手告诉你答案。一个人掌握某种技术技巧变得越来越不重要了。说到这里,我们可 整天为了获得了某个技巧而炫耀的话,相信无法取得更大的成绩。 , 便是水平再高的程序员也很难兼顾几种技术领域。如果不 酷而吸引程序员的关注。比如最初的是苹果的技术最酷,后来出现了Netscape这种做浏览器的公司给 碍他们互相接受对方的某些观点和主张,事实上, 挡不住的趋势》一书中便提到,开始 趋势的文化是要做最酷的技术和产品,但随着公司发展到一定的阶段,他们发现仅仅这些并不能保证公司的持续发展和客户的认 同,而真正了解和分析用户的需求才是更重要的。“我们公司将从一个酷技术的公司转变为满足客户需求的公司。”,这是他们十 多年做公司的总结,而处在软件公司中的程序员自然应该从中得到某些启示。 2.2 避免坐井观天 美国的民主党和共和党两大党派,双方竞争的时候相互攻击乎,但这并不妨 在执政的时候,这两 是Java程序员便鄙视.NET的一切,我在微软平台上开发便不了解任何Java技术的发展。 程序员对技术的爱狠本来是一件非常常见的事情,但如果硬要把这种感情夸大的表示出来,或许将来给自己的也是难堪。曾 经以一篇《 大政党的很多作法也都是一样的。但对于技术领域的程序员来说,很多人却将不同的技术看做势如水火:我 Java坚定的支持者,在他《Java夜未 验和知识的缺乏,在讲述的过程被批驳了一番,这让这位专家十分恼 不是最好的技术。在这里,他的评判标准是因为 术好,谁的技术不好的作法是需要不断修正的。 写程序不如卖鸡排》短文备受瞩目的台湾地区著名的技术作家蔡学镛最初是一位 眠》中,便对.NET技术进行了一遍又一遍的讥讽,诸如“Java是.NET的爹”等语言表明了作者的鲜明态度。然而,就在书发表不到 一年,蔡学镛表示,“了解.NET越多,越觉得这也是一项了不起的技术,它有很多的独创和更高明之处”这样的观点,逐渐的,他 转向了.NET平台,成为了这个平台上的技术作家。如果我们说一个人的世界观可以改变的话,程序员的技术观当然可以改变,但 这种改变中最好不要给人留下很多“坐井观天”的言论。 国内某Java网站的站长也是一位Java的死党,有一次,我们组织了不同领域的专家一起座谈,一位是.NET的专家,一位是做.NET 移植Java技术的专家,这位站长也参加了,但可能是由于经 火,于是回去后在自己的一亩三分地上大骂那位.NET的专家。我也认为,这是一种坐井观天被揭露后的恼怒。而且,后来这位专 家还发生过另外一件事情,这就是为了显示自己支持开源,于是也在Source Forge上提交了一个自己做的项目,但却遭到了一堆人 的狂骂,原因是他开源的项目竟然是用J builder写成的,在国内可以盗版J builder,但在国外这是需要很大一笔钱购买的开发工具, 一个不懂得开源内涵的人来做开源的事情,是不是坐井观天? 即便在我们编辑部内部也发生过这样的事情,当时杂志曾采访了一家做中文分词技术的公司写了一篇报道,但一位技术编辑 以自己认识在做分词技术的人员为理由,坚决认为这个采访是夸大的,他做的并 原来他接触过一个做这样技术的人,感觉做的很棒了,已经不可能再超过这种技术了。岂不是,在市场环境下,这家做中文分词 的公司早已经超越了单纯的中文分词算法技术,他们已经在用工程化的手段提高分词的效果了,单纯的技术层面的比较在这家公 司的眼中只是产品化的一个方面而已,更重要的是以面向市场,客户为导向的方式来做技术。连IBM原软件中心的总经理,现任 中兴公司技术副总裁都承认这家公司在中文分词技术上是最领先的,作为一个普通的技术编辑,又怎能拿着自己坐井观天的想法 来评判呢。 技术是互通的,但同时又是有疆界的,面对自己不熟悉不了解的技术,谦虚的听是最好的方法。而凭借自己模棱两可的了解 便做出谁的技

编辑推荐

  • 名称/格式
  • 评分
  • 下载次数
  • 资料大小
  • 上传时间

用户评论

0/200
    暂无评论
上传我的资料

相关资料

资料评价:

/ 9
所需积分:1 立即下载
返回
顶部
举报
资料
关闭

温馨提示

感谢您对爱问共享资料的支持,精彩活动将尽快为您呈现,敬请期待!