程序员个人简历模板。

职业规划就是对职业生涯乃至人生进行持续的系统的计划的过程。一个完整的职业规划由职业定位、目标设定和通道设计三个要素构成。

小张今年34岁了,做了10年的程序员,算是IT行业的元老了。大学时代的他,大部分的时间是在校园微机房里度过的,当时,他疯狂地迷上了电脑。大学毕业后,小张早早地被一家IT业著名的跨国公司录用,担任程序员。刚进IT行业时,小张有股火一般的热情,参与了很多项目,而且都成功了。公司对他也很器重,付给他的薪水在当时的同学中可算是天价。

后来,小张曾换了两家公司,虽说薪水越来越高,但他却越来越困惑。以前不觉得,但现在他感觉程序员的工作强度太大,自己每天都在超负荷运转,感觉自己是透支生命来挣钱,这意味着后半生要用钱来维持生命,总之不是长久发展之计。并且,感觉自己在学习能力、反应速度、工作效率等方面已经有一点衰退,相对年轻的程序员竞争力已经有些不足。行业内有个传统,程序员到了35岁就有转岗的可能,未来该向什么方向发展呢?小张有些困惑。

职业发展需要转型获得下一个春天

小张的处境代表了这个行业一个共同的问题。职业规划专家经过对类似这种情况分析指出,IT人才市场的整体年龄状况趋于年轻化,22岁以下的择业者占总体比例的71%,而35岁以上的只占10%,年轻的人才给市场注入了活力,也使得IT行业的竞争更加白热化--人才流动性很大,岗位相对不够稳定。

程序员是个属于年轻人的职业,小张们如果没有在职业生涯最初的5年或8年时间里得到晋升或实现转型,随着年龄的增长,在技术更新的大潮中便面临竞争力衰减的残酷现实,需要重新定位和转型。小张们与其咬着牙继续在编程队伍里打拼,还不如重新审核自己的职业兴趣、能力和性格,立足核心竞争力,寻求职业发展的下一个春天。

因此,职业规划专家建议热爱IT行业的小张,可以借助丰富的技术经验和人脉关系寻求新的发展。

程序员可选择的出路

出路一:向软件实施顾问转型

分析:在当今称为信息化时代的互联网环境中,企业面临转型,否则就要被淘汰,不管企业选择了哪一种转型的方法、途径,都离不开信息化。信息化成为帮助中国企业转型升级的加速器。企业转型期将需要大量的信息化实施--管理软件应用顾问人才。

优势:10年编程经验,对软件的技术、原理等知识掌握的相当牢固,参与过大量项目,实践经验丰富。

挑战:小张以前的经验主要是编程,接触过企业的部分业务流程,对企业整体业务流程把握有点难度,对企业管理知识不够系统,如果能有一个系统的学习,将是一个优秀的实施顾问。

出路二:向IT培训师转型

分析:IT企业在招聘新人后,一般都须经过培训才能上岗,这个培训有时是在岗位上进行的,由富有实践经验的老人负责。年轻人想要进入IT行业,必须接受这样的专业培训。如今IT培训市场蛋糕相当大,利润空间可观,行业发展前景看好。根据国际数据公司(IDC)统计数据显示,2004年中国IT培训市场共实现销售额24.4亿元,相比2003年增长了22.1%,2005年市场前景发展更为可观。小张无论是在IT公司内部转型担任培训工作,还是到IT培训机构担任教师,都应该有发展空间。这样的工作不会有太大压力,且比较稳定,对年龄也没什么要求。更何况,这还没有脱离小张所喜欢的IT行业。

优势:在这个行业工作了10年,拥有丰富编程、项目经验,曾参与过许多成功案例,这都是小张的优势。而10年积攒的行业人脉关系,还可以帮助他发展企业客户,顺便担任市场拓展工作。wWW.ZC530.COM

挑战:小张在过去10年中一直埋头苦干,只是在公司培训新人时担任过培训工作,缺少培训工作经验。如果要向培训师转型,小张需要接受一些专业训练,提高担任培训师的能力。

延伸阅读

程序员你真的只是程序员吗[1]


你是不是感觉标题有点矛盾啊,是啊,程序员当然就只是程序员而已嘛,还会有其他什么吗?

No,No,No,如果你以前是如此认为的,那看完这篇文章后,请从此打消这个念头,因为你要改变成一个不一样的程序员(怎么还是程序员?)

虽然我工作经验也就6年左右,但经历了很多,也自己创业过,也是从一个初级程序员走起,因为看的比较多了,某些东西也普遍存在着很多程序员身上,希望自己的经验能帮助你们。

当刚踏入程序员这条路的时候,有幸为一家公司开发一个大型的电子商务网站,因为这篇领域当时还算刚刚起步,自己的编程能力还不太好,所以做起来就比较吃力,每天重复着做完PM给的工作,但是做了大概几个星期,我发觉某些地方真的不合理,但自己又仅仅是一个程序员而已,怎么办呢?我还是按照PM的任务一步一步来做,私下里我用了大量的时间去尝试着我的做法,在接下来的几个星期,我试着跟我的PM进行沟通,他也发觉不错,所以一并写了方案提交给上级领导,很好的是,我们的领导发觉建议还不错,所以改变了原先的策略,对我们的网站原先的设计进行了彻底的推翻,一套新的理念就此诞生了。

这只是一个小例子,并不是炫耀自己的能力,我只是想说,程序员,你其实不仅仅是worker,更应该是Ideaer。当你选择程序员这条路时,如果你仅仅为了工作而选择的,我想你的人生真的很灰暗,为什么这么说呢?我面试过很多人,大多都是从培训中心出来的,虽然我也是从那里走出来的,不过我当时是为了学习编程而去培训,但现在更多的人会为了工作而去培训。其实如果你是真正的选择程序员这条路,我想你的思维能力一定不错,因为一般程序员大多是理科出生,理科靠的就是你的思维能力,在某些时候或许你的思维还不够敏捷,但我知道,每个人在接受了一段时间的工作后,就会产生各类的想法,或许某个想法你会改变你公司的命运,可为什么提出观点的人就寥寥无几呢?

我想可能是因为性格吧,因为很多程序员都是内向型,因为我们需要花一定的时间,去沉醉在代码中,因为这是一个奇妙的世界,无法自拔,所以很多时候就忽略了沟通,因为我们打交道最多的是abcd。如果你正是如此,希望你快点走出来吧,分清楚何时沉醉,何时交流才是最好的。我的偶像-唐骏,我看过他的访谈,他在大学时还是一个不会沟通的人,只是偏执于技术,而且和大多人一样,都会觉得自己什么都会,什么都行,是个天才,但在他大三的时候,他意识到了错误,花了几年的时间去学习交流、沟通,在宁愿委屈自己进入微软做程序员,再到无数次发意见给Bill,一步一步成就了这位打工皇帝。

所以,我们每个程序员要做的是,技术和沟通并行提高。在唐骏的话中,我会学到很多东西,他能从容应对每一次挑战,当时有幸成为唐骏的下属,见证过他的能力,虽然他当时只是个技术总监,但他的想法、创意给盛大带来了无比的利益,我不得不佩服他的胆大,不得不佩服他的能力。从他身上还学到了专一,其实很多程序员会在编程的道路上三心二意,这是很正常的,不过我相信一段时间以后你会学会专一的,因为程序真的很美,带来的不仅仅是工作和薪资。

我这里又不得不批判一些年轻程序员了,他们仅仅看中的是工资、福利等,没错,这是考虑工作的一点,但你要知道,有些时候,你第一点的工资,或许你会学到更多的东西呢?我经历过很多,经历过1年工资翻几番,又经历过折一倍,又经历过小公司,又经历过大公司,各种各样看的实在是很多,但我不会说我自己半途而废,因为每次我会把事情做的觉得自己可以了,我才会选择更好的发展前景。我面试过一些人,工作也就2,3年,做过的东西也很多偏向于OA、ERM等项目,就觉得自己很了不起了,工资也是漫天要价,可真正面谈的时候,我才得知,你仅仅是其中的一个小模块,但当我问其项目的整个运维的时候,就会楞个半天,最后来一句,这个模块不是我负责的,敷衍了事。那好,我问你自己负责的模块,如何具体写的,用了何种方式等,基本都会回答,三层架构,什么什么,My god 三层架构是你一个模块就能体现的吗?那好,既然你说三层,何为三层,三层的优点,缺点在哪里?诶~~~~~前几天首页那篇批判大学生的文章,我觉得写的太好了,你们这是在沉醉吗?如果你不喜欢,你为什么非要选择程序员这条路呢?

如何从优秀的程序员成为伟大的程序员[1]


怎样评定一名软件开发人员?这是一个颇为奇怪的问题。现在已经有了很多的理论和形式来做这件事,人力资源部门也试着帮你管理和反省自己的行为。然而,怎样才是一个伟大的软件开发人员,在今天,你该怎样发展你的职业生涯?以下是我评定团队中软件开发人员的军规.按照这些技巧和规则,你可以改善你的现状,由一个优秀的程序员,成为一名伟大的程序员。

1、时间花在写精彩的代码上

这里说的不是数量,而是质量。对此,一种歪曲是:要数量,也要质量。你也许会很多次的遇到以下的两种情境:

情境A:你有一个发疯似的能写代码的程序员,事情似乎在进展中然后,Bug开始不断出现,你们也不知道为什么,好像永远补不完。补完十个,又出来五个,现在你手里的,就是一大堆代码

情境B:你现在有一个看起来很聪明的程序员,你面试他的时候,他似乎无所不知,能把理论说的头头是道。然而,你留给他三个任务,三个星期以后,他还在做一些三天就该干完的事。这下该你困惑了,他这么聪明,他知道generics(详见备注),多线程的一切事情,甚至还能给祖母级的人讲解什么是指针,让老太太兴奋的想去编程。可是--怎么什么都没完成?

于是,在梦境中--你写出了堪称伟大的代码,--伟大的代码是伟大的程序员写出来的,他睿智,明白代码的真正品质所在。写代码就像托尼?霍克在玩滑板一样自然优美,看上去就令人愉快。这些程序员以让你眼花的速度搞定一切,他们知道每个问题应该处理多长时间,也不会追捧寻觅所谓的世界最好解决方案,弄很多线程很多层来写一个简单的游戏。他们写的程序没有Bug,因为写的时候自己测试过了,在睡觉时也在写代码说的就是这样的人。这些程序员太宝贵了。

2、阐明问题

可以明确的是:即使有问题暂时处理不了,还有成百上千的方法去解决。有些人反应很迅速,很快就能提出多种解决方案。然而,一个伟大的程序员应该在做出行动以前清晰阐明问题--创建文档或用白板表达出来。他们写邮件给项目的管理者,这样表述:我想和你说说我是怎么理解这个问题的,我们能这样处理吗?然后他们就会动手给你多种方案。

对,这些人明白自己看问题和阐明立场的方式,而这理解方式大概不会是问题创建者所想要被理解的。请牢记这就是关键所在。一名伟大的程序员在尝试解决问题以前,一定要完全的理解它。你百分百搞明白了吗?没有?百分之九十九?--回去再多问些问题,确保百分之百理解清楚了。

3、怎样着手解决问题

那一搞明白了问题,就开始动手写代码?错!一个伟大的程序员应该按照规划,开始思考面临的多种选择,基于问题开始考虑最好的解决方案。我觉的这像一场国际象棋比赛。你知道每个棋可以怎么走,知道所有的游戏规则。但是你会马上走棋吗?不,你要审时度势,制订计划,紧盯对手,分析其通常的做法。和这一样,在你coding解决问题以前,你也要这么做。

看看问题,计算出需要怎样的结果,你的时间能怎么安排,预期的质量,你必须用的工具,好了,开工吧!

程序员的职业发展


程序员这个职业到底是不是吃青春饭,这个问题可能一直是每个初入职场的程序员心头挥之不去的阴影。最近看到一篇关于程序员生涯规划的奇文,也许能解答这个问题。

在IT行业由超常趋向平常的阶段,社会关注热点转移,程序员的社会平均薪资水平由高向低回落,引起了许多人对程序员前程的思考。按专家或行业资深人士的说法,程序员有两条进阶路线。一条是技术路线,由程序员,经系统分析师、系统设计师、项目经理、产品经理,直到架构设计师为归宿。另一条是领导路线,由程序员,经开发小组负责人、工程负责人,奋斗到项目经理。

勿庸置疑,每种说法都有存在的个例支持。实际上,能走常规进阶路线的毕竟是少数人,大多数程序员在吃过青春饭后,面临着前途选择问题。这与运动员、航空乘务员、舞蹈演员等的职业境遇是类似的。相比之下,程序员是种新生职业,而且是多数人认为更高尚的脑力劳动,如果能看到更好的转型方向,还可以心理平衡。现在面临困境的程序员们,在未看到明朗前途时,迷茫,焦灼,敏感,难容对自己不利的言语(哪怕是真实的)。

站在企业主的立场,希望能保持IT业的狂热,既能保障程序员的高待遇,又能获得企业的高收益。问题是市场不接受,IT产品和服务的价格越来越低,企业出低价又招得到人,程序员的薪资水平下降是自然的事。对于程序员的辛苦和劳动与收入的不公平感觉只能表示理解。

从程序员的角度,可以发现更好的方向,IT业不断有新东西出现。用J系列语言比用C系列语言更时尚,用面向对象(或构件)的方法比面向过程的方法更先进,还有Delphi、。net、eLearning等开发工具,更有ERP(企业资源计划)、CRM(客户关系管理)、SCM(供应链管理)、CPC(协同产品商务)、BIS(商业智能系统)、EAI(企业应用集成)、EIP(企业信息门户)等层出不穷的新概念。如果你能不断与时俱进,追着新东西走还行,但毕竟是年龄不饶人,三、四十岁的肯定不如一、二十岁的记性好、反应快,长江后浪推前浪本是自然规律。

从经济发展规律来看,每个新生的行业都要经历高潮、低谷、平常的时期。IT业从社会热潮地位到现在的社会平常地位是很正常的事。只不过我们习惯于接受地位不断上涨,对回落难以接受。这只说明我们的教育有缺陷,心智不健全。

对于程序员个体,只能适应社会状态。如果你是天才、精英,不会有职业的烦恼。如果你是平常的程序员,或自认有才但运气不好,就应该思考前程的问题。

一般来讲,社会对程序员的定位是满足技术需求,程序员自身所受的教育和积累的经验也使自主前程意识局限于技术路线。实际上,我们所看到的在技术方面有建树的前辈多是综合型的人才,单纯局限于技术思维的多有行为局限,也难看出自身的幸福感。其实,人有多方面的属性,除非你是极少数的天才,在某一方面特别突出 (相应地在其它方面就很脆弱),大多数人是多种属性综合发展,而且各属性间相互促进。所以,在考虑程序员的前程时,有必要分析程序员的主要属性及其可能产生的影响。

技术属性

从表面上看,程序员是会使用计算机语言编写程序的群体。实质上,程序员是联结精神世界与物质世界的最有效的中介,将人语转变为物语创造财富。以前我们所说的技术,是分科的技术,或物理,或化学,或生物,程序员的技术是全面涵盖的技术。从人的意识到物的结果的全面流程看,程序员所用的从应用层到物理层的分层次体系(如ISO/OSI网络模型)是一种严密有效的逻辑结构,这正是经济建设需要而传统文化沉淀缺乏的要素。

高尚属性

文化素质高,与IT精英接近,感受的文明信息量大,经济基础较好(与一般劳动阶层相比),决定了程序员的生活方式、趣味、格调更高尚,表征一种社会文明的指向。如果程序员介入到其它行业,为了保持生活的水准,也是保持勤奋的工作习惯,表现得非常努力,传播积极向上的精神。这如同在先进国家或大城市生活过一段时间的人,再回到相对较落后的地方,会作为文明种子,产生积极的作用。

人生属性

当你把程序当作异物看待时,编程是一种负担,是劳累的事儿,需要在工作之外得到补偿。如果程序员能把自己作为一个具有个性的人的主体存在,程序就只是人的属性的延伸。这时,程序就不会作为人的负担,就象人不会把自己的肢体作为负担一样。这样的人会不断努力,不断学习新知识,把程序作为人生奋进的载体,创造性地使用程序,会把编程中的普遍东西升华成一种精神,主动地影响其它领域。

面对工作人们通常有三种态度,一种是把自己放在利益的案板上任人宰割,把工作当作获取利益的工具;另一种是跟着兴趣走,视工作为玩乐;第三种是把工作当作展现人生的载体,将工作视为实现人生使命的阶梯。

我们提倡程序员热爱本职工作,在本行内不断进阶。但也应正视现实,看到人的当前选择并非都是适合自身的条件的,以程序员的基本素质,在技术路线以外也可以有更大的作为。程序员应勇敢尝试更多的选择,在选择中认识自我,找到适合自身发展的方向。

人有外职业和内职业,外职业是你现在从事的职业,是可以改变的。内职业是适合你自身条件的职业,在一定程度上难以改变,它可以升华成一种精神,产生更大的影响。

程序员是一种当前社会稀缺的人力资源,程序员应该是播种机,将理性思想,工程手段普及到更多的方面,为经济建设提供更大的力量。

在工业社会,工人阶级因其无产性,成为对资产阶级最革命的力量。在信息社会,程序员因其学习性和与时俱进性,会成为对懒惰阶层的强大革命力量。所以,从社会负于程序员的职责来讲,程序员肩负重任,前途无量。

如果你一时没有读懂,建议再仔细看看,也许它能改变你对程序员职业生涯的看法。就我对这篇文章的理解而言,这篇文章主要阐述了程序员是信息时代先进生产力的代表,程序员的职业决定了程序员站在信息变革的最前沿,比社会的其他阶层能更早的感知到信息社会的每一个变革的发生,程序员职业要求的学习能力、综合素质、与时俱进性是把握这种变革的能力保障,当然这并不是说任何程序员都能够把握这种变革,开创自己的事业,对于大多数人而言,必须培养自己的综合能力,而不是仅仅局限于技术路线,才能真正把握住机会。每个人都有自己的解读,你的想法是什么?

程序员的时空定理[1]


改革开放三十年,中国迅速从官本位社会向重商社会转型。商业社会的公理是商业驱动技术,反映到现实中,就是做技术的程序员被做商业的营销及管理人员驱动而成为附属,做商业的因代表客户利益而有着最高的话语权,其结果常常是技术与商业的二元对立,用被誉为中国的比尔?盖茨的金山软件公司董事长兼CEO求伯君的话,中国软件、互联网等IT从业人员的最大问题是就技术论技术、就商业论商业,技术与商业二律背反。

作为程序员,怎么办?

从商业驱动技术的公理出发,我们可以推论出关于程序员的两大定理,即程序员的时空定理。

程序员第一定理,不妨俗称之为站高定理,或空间定理,即:程序员应就商业之局论技术之域.古人云,不谋全局者不足以谋一域,这个局就是商业大局,这个域就是技术实现。反映到程序员身上需要做的心智模式的第一个战略转变是就商业(之局)论技术(之域),古今中外,概莫能外。

百度创始人兼CEO李彦宏在北大2008本科生毕业典礼上说,我在北大是信息管理系,学的是信息检索方面的理论,这让我比任何计算机系科班出身的工程师都更能够理解普通用户习惯于怎样的信息获取方式。这就是一个典型的站在商业的高度论技术实现的案例。

IBM的第二次战略转型,即1961年小沃森豪赌System 360项目,取得了历史性的成功。S/360对于IBM的意义以及对于IT行业的影响,相当于Windows对于微软的意义以及其对于PC时代所产生的影响。

从技术角度看,S/360取得专利权数量超过了300项,其中包括发明了内存芯片、发明了关系数据库、发明了人类第一个高级编程语言FORTRAN等。但是如果仅仅从这些技术的成功推断其成功源于这些技术,就大错特错了。

S/360的成功源于其创新的商业战略兼容,所有的技术实现都是围绕这一商业战略而展开。在S/360之前,每台电脑都有自己的指令集,所以每开发一台新的电脑就必须重新撰写程序。S/360成为了历史上第一款指令集可兼容电脑。当然,这同时这也意味着IBM将淘汰自己过去生产的所有型号的计算机,完成自我颠覆。

那么程序员如何站在商业战略的局审视技术的域,有没有一整套的系统方法论?

产品哲学的道,适用于做任何产品,讲述了什么样的产品是好产品,什么样的产品是伟大的产品;用户购买的本质是什么,企业如何应对购买本质;什么是产品的灵魂;做产品分为哪三个层级。

天马设计的天,将产品设计拆解为生产者集合的行业与消费者集合的市场通过创新机制孕育生成产品的三大流程。首先是如何通过行业流程及新经济的特性洞见产经大势,解决产品设计we should do的问题;其次是如何通过市场流程专注客户需求,解决产品设计we must do的问题;最后如何进行有目的、有组织、系统化的创新及中国式创新流程(13类方法)来具体规划产品线及产品功能,解决产品we can do的问题。

落地执行的地,将产品实施拆解为战略执行力的三大组成流程:战略目标、组织管理和开发运维。首先是经营责任化的目标流程,将产品与项目目标逐层切割分解作为经营责任落实到单一责任人,IT技术的趋势及中国式的产品运作模式是什么;其次是管理精细化的组织流程,如何配套对产品成败影响巨大的产品组三大组织模块六个构件;最后是运营程序化的开发流程,在确保工程三要素折中匹配的前提下,以本土实践为本,兼容并包四种工业级流程体系,形成三权分立的强矩阵最佳战阵。

关于女生的程序员之路[1]


首先声明,本人是男生,从来没有站在女生的角度思考过问题,因此只能就自己的角度来探讨一下问题,说得不准,勿怪。

嗯,说个现象吧,我在成都呆了12年,确实没怎么看到女性程序员,有几个,生了娃以后,都回家带孩子去了,不过我到西安来以后,吓了一跳,程序员中男女比例接近1:1,呵呵,确实给我上了一课。

所以,就我的经验值,我发现你说的其实不准确,起码中国北方城市,女性就业率还是比较高的,至于是不是程序员职业,并不重要,也有很多女性做的,你大可不必担心这个问题。

当然,女性有女性的弱点,生理上的咱们就不说了,其实对于办公室工作来说呢,问题不大,关键是结婚生孩子,根据劳动法,女性一般是4~6个月的产假,这在很多小公司来说,一个人接近半年不上班,还拿薪水,确实有点难以接受,因此,在招聘时,不知不觉就对女性有点回避倾向,就造成了女性求职困难的现状。

但是呢,我觉得这是短期现象,为什么呢?一个公司,如果要做大做强,做正规,必须正视这些劳动法规定给员工的基本福利,如果老板刻意回避这些话题,应该说,这家公司也确实做不大。至少,我到现在没有看到哪家超过1000人的大中型企业,里面一个女人都没有的。你说是吧?

所以,这个问题,归根到底,我的理解,还是市场经济的初级阶段问题,即中国的企业刚刚出现,还在进步,目前实力还弱,无力承担太多的社会责任,无法承受女性结婚、生子的一系列额外成本增加,因此导致女性就业渠道偏弱。

就我的经验而言,目前国有大型企业、欧美外资企业,嗯,台资和港资等企业也是,对劳动法遵守比较好,反而是中国的民营企业,遵守得不好,让买个社保都磨磨唧唧的,更不要说女性的产假等问题了。因此,如果求职时主要针对上述企业来说,应该问题也不是很大。嗯,国内华为、中兴等大型企业,对女性歧视也很小,可以考虑。

但是,要注意,这里面也有个门槛问题,国有大型企业,其实福利是比较好的,但是,工资待遇偏低,尤其是进去主要靠关系,很少有凭借真本事能进去的,这个难度很大。其他三资企业,人家是典型的资本主义社会原则,看人部分男女,都是成本,每个人必须创造出效益来,因此,首先必须要真本事才进得去,其次,进去后,人家用人也比较狠,我们常说女生当男生用,男生当畜生用就是这个道理,如果进这类企业,要做好被扒层皮的思想准备。

程序员如何踏上社会[1]


这个问题相对比较复杂,也很宽泛,很难简单回答,我这里,也仅仅就个人的一点认识,谈谈看法。

目前在学生里,我也观察到,很多二本,三本的同学,在心里上有种自卑感,总觉得考分低了,出来就低人一头。这点,我是万万不赞同的。很多时候,我对小弟讲,我相信你们的老师,师兄,师姐,前辈,都有讲过:大学毕业,仅仅是开始,不是结束。

中国的社会,越来越商业化,其实商业化有一个好处,就是这个社会给每个人的机会,总的来说还是越来越公平。这个问题分怎么看,名校毕业,高官子弟,亿万富豪的孩子,总会比我们站在更高的一个起跑线上,这是事实,但是,也仅仅是起跑线而已。在社会上,也有太多的故事,从一个穷家子弟,经过努力奋斗,最后成功的事实,因此,首先我觉得大家不必气馁,万事有拼才会赢,只要敢拼敢做,没什么大不了的。

我自己的学历就不高的,经过这么多年奋斗,也取得了一点成绩,这里就不多说了,总之,请大家记住,这个世界,还是相对比较公平的,只要肯努力,就会有回报。反过来说,当我们认为社会不公的时候,不妨问问自己,自己尽到自己最大努力没有?

第二个问题,关于学校里面开设的课程,大家可能会觉得不够时髦,不够酷。净是一些计算机组成原理,数据结构等老掉牙的课程,远没有什么spring 框架来得过瘾。呵呵,不过根据我的经验,工作几年以后,大家可能会觉得,最值钱的,恰恰是这些最土气的课程。用框架,永远不算本事,也没有什么核心竞争力的,哪天框架死了,你就死了。会做框架,才叫本事,才叫公司里面的骨干人才,才可能成为架构师。而另一方面,框架也是人做的,大家以为,做框架需要哪些知识?是不是上述old的知识?

因此,我的建议,大家好好学好自己的课程,在这几门课上,清华的老师,比起你们的老师,未必有优势,因为这些知识太经典了,也没有给老师什么推陈出新的发挥余地,学这几门课,大家和清华的学子,是站在同一个起跑线上的。

第三个问题,学习C和C++的问题,大家不用想,我的经验,别说这两门相对复杂点的语言,就算是 Java,PHP等语言,没有指针的干扰,要想学精学透,没有3到5年、5到10年的刻苦,也是不行的,大学毕业就想做大师,不太可能的。因此,建议大家不必妄自菲薄,你做不到,别人也做不到,大家还是一个起跑线,关键看,以后工作中,能不能扎下来潜心研究,仔细揣摩,不断增长自己的经验值。

第四个问题,关于培训机构不培训C和C++的问题,我也很好奇,好像是有这么回事。我曾经研究了一下,认为原因是这样的:

培训机构也是商业公司,主要目的是赚钱。对他们来说,赚钱有两个重点,第一是短平快,要短期出成果,让学生和家长有看得见的进步,给客户以信心,好让客户买单。第二则是成本够低,在同样营业收入的情况下,培训时间越短,请的老师价格越低,老师的沟通成本越低,培训机构的利润越大,因为企业做生意,核心问题是利润,即他真正赚到手的那部分钱。

这就很好理解了,无论从哪个方面理解,C和C++都不是最佳的选择。大家可能没有讲课的经验,但是我本人有一点。我讲课时,发现最难和同学们沟通的细节就是指针,翻过来揉过去说,几个小时下来,就是有人搞不懂指针,至于指向指针的指针,就更晕了。更不要说C中的函数指针,C++中的对象指针,泛型设计等复杂概念,反之,Java,.net都有比较成熟的应用程序框架,同学们可以快速搭建一些立竿见影的应用,因此,从短平快角度,从利润最大化角度,C 和C++都不是最好的教学语言。

如果我开培训公司,我的目的是赚钱的话,我也不会教C和C++,太费神了。当然,有人说你贵买贵卖吗,收费贵点,把成本补回来。那样也不太现实,因为,太贵的费用,就没有客户了,大家试想一下,如果开个培训C和C++的培训班,保证出来会写操作系统,收费20万,大家学不学?我估计就算这个课程值这个价,恐怕也卖不出去。

所以,这位同学说的培训机构的意见,我的建议是,听听就好了,不要太认真。

寻找自己的程序员之路[1]


每个人的幸福都是不一样的。我喜欢田园式的生活,在人多的地方总是不舒服。

对我来说,最幸福莫过于在工作中做着自己喜欢的事情。闲暇时,在能够眺望江边的地方,端着一杯红酒,一个人细细的喝。

为了这种生活方式,离开了北京,来到家乡所在的这个三线城市,寻找自己的道路。经过一年的探索,颇有心得。

大体上,我对自己走过的路和即将走的路划分为七个阶段:自信=意志=布局=切入点=团队=渠道=产品

第一关:自信

先说说我这个城市。这是一个什么样的城市呢?依山傍水,适合生活。几乎没有IT,也没几个真正的程序员。一周上班六天,平均工资1000元上下。程序员的工资在1000-3000左右。要在这个城市探出自己的道路,首要的一点就是自信。没有自信,活不下去。这个城市的年轻人大多非常迷茫,对自己的前途缺乏信心,有冲劲的都往大城市里跑了。回来之初,我也迷茫了很久,迷茫的时候,就在WOW里泡着,观察那个世界。在WOW里,作为一个萨满,傻乎乎的扛着个盾晃晃荡荡的升级。当时赚钱,也就是打打元素之火每天赚个几十G.后来,不断的观察不断的总结,成长为日入近万G的大奸商。哦,俺要走的也正是这一条路子。生活总是要继续的,在WOW上也学不到更多的东西了,就离开了WOW,开始了一个人的征途。

支持这条路子的核心力量就是自信。在小城市里不缺乏聪明的人,这些聪明的人大部分却并不优秀,因为他们缺乏自信,缺乏自己走路的勇气,从而甘于平庸。没有自信,走不出这第一步。

第二关:意志

在小城市做IT,相当锻炼人意志。这里就像一片沙漠。市场,没有。程序员,没有。找人说话也找不到。曾经组织过次聚会,包括我在内到了2个人。想要向下走,没有相当强的意志是走不下去的。彷徨,彷徨,最终还是坚持走了下来。

第三关:布局

所谓布局就是决定做什么事和不做什么事。经过相当久的考虑,我决定远离Web开发,远离本地市场,甚至远离数据库。做Web开发和数据库开发的太多了,你呆在偏僻小地,做这些完全没有优势,做本地市场呢,又没客户资源,关系又比不上已经在本地深耕数年的小IT公司。于是宁可荒芜这些技能,也不趟这个混水。最后决定,人做我不做,人不做我做,在偏僻的地方,做外面的市场,做深入的开发,做点做线不做面。为什么呢?

(1)本地的工资摆在那里,做本地的就算做起来了,利润也不丰厚,还累死累活,要赚外面的钱,在本地花

(2)要赚外面的钱,如果做Web开发和数据库开发,根本无法和当地公司竞争

(3)所以只能做别人不做的,或者别人做不了的,做技术要求高的。而我恰恰有相当多的研发性项目开发和管理经验,正适合做这些。

(4)所要做的东西,必须通过网络可以展示,可以远程技术支持。

第四关:切入点

切入点是个很关键的东西,综合上面第三关所讨论的内容,结合自己的技术能力和技术经验,然后结合需求情况,最终我从协议分析这一块切入进去了。哦,不是外挂那种分析。从QQ协议,到MSN协议,到YMSG协议,当然,还有Http这个最简单的,从有参考资料的分析,到无参考资料的完全黑箱分析,到现在在某方面的协议分析已经达到世界领先水平了。从协议分析,切入到验证码识别,从验证码识别,切入到车牌识别,从车牌识别,切入到模式识别、图像处理和机器视觉,而模式识别结合前面的协议方面的工作又可切入进NLP,客服机器人,有这些为基础,我又想切入淘宝店铺工具(哦,还没时间做,并且目前也没找到一个好的切入点).因为对图像处理的了解,我现在又成功切入进Flex开发了。以上各点貌似很散,也是也挺集中,就是:协议分析与设计、机器智能和图像处理,这三者是相辅相承的。

如何计算程序员自身的价值[1]


价值这个词,很正式,俗一点就是一个钱字。可以说这个字是当今社会的一个核心。无论经济活动、社会活动那个能离开这个字呀!人为财死,鸟为食亡。可能是人生的一个真实的写照吧!

回到现实生活之中,我们常常听到程序员抱怨自己的工资很低,抱怨自己的付出和自己的报酬严重背离,有的甚至不考虑自己工作能力和工作贡献,以别人的工资或社会岗位工资来确定自己的报酬。同时我们也常常听到公司的老板的抱怨软件公司不赚钱,最大的成本都花在员工的工资上了,自己在给员工打工。那么我们怎么能够计算程序员自身的价值呢?我们怎么看待程序员价值值与不值呢?我感到程序员自身价值有两个方面,一个方面是程序员的收入价值,一方面是程序员市场价值。程序员收入价值比较简单,就是程序员的年收入。例如一个程序员的年收入是5万。则这个程序员收入价值就是5万。程序员市场价值是指程序员本人编制的软件产品销售价值和预期的销售价值。例如,有5个程序员一年之中为一个客户编制了一个软件,软件售价5万元,假定我们忽略了销售成本和维护成本等,5个程序员水平大致相同,则一个程序员的市场价值就是1万。

程序员的收入和程序员市场价值往往是不相同的:

1)当大学生刚刚参加工作的时候,由于能力的限制,很少能编好程序,大部分时间都花在学习上,但是,他还是获得工资报酬。但是他的市场价值为0。这个时候,程序员是正收入。

2)当程序员具备编程能力,投入到编程工作之中,程序员不但获得工资报酬,其劳动成果也变成的公司的收入。假定公司能收支平衡,而且分配比较合理,那么程序员收入价值于程序员的市场价值相当。

3)当程序员具备较强的编程能力,投入到编程工作之中,程序员不但获得工资报酬,其劳动成果也变成公司的收入。假定公司产生利润,而且分配比较合理,那么程序员的收入价值就会低于程序员市场价值,其差价就是程序员给公司的利润贡献。

4)当公司出现亏损的时候,程序员收入价值就会大于程序员的市场价值。

通过以上分析我们可以看出,程序员的市场价值是程序员收入价值的基础,当程序员收入价值远远低于其市场价值的时候,程序员就会感到收入太少,分配不公,不愿意在公司长期呆下去。当程序员收入价值高于或等于其市场价值时候,公司老板只能维持或靠吃老本来维系公司的运作,维持不下去公司只好倒闭。另外,程序员的市场价值要小于公司的软件销售收入。

就目前的中国软件企业运行状况而言,中国软件业早已告别了暴利时代,残酷的竞争使得软件的公司利润趋于下降。有的软件公司在竞争中倒闭,大部分在维持中维持。究其原因很多,但是大部分软件公司都是靠开发项目来维持生计。而项目都是靠用户需求来驱动的,因此,开发出来的软件往往是定制的,不可复用。一些好的软件公司,往往在一个行业中积累了大量的行业知识和软件开发的程序。通过程序积累系统积累,形成了行业系统的开发工具和通用软件。使得程序的复用性大大增强,逐步形成了行业软件的优势,这样公司发展很好。

无论从程序员个人的收入价值或市场价值,还是软件公司的运行状况来看。其核心是软件本身的市场价值。如果一个软件市场价值很高,则程序员的市场价值就会很高,公司的利润就会很高。一个软件市场价值往往取决于这个软件的复用性或商品化程度。假定一个软件销售价格为1万,预期的销售个数达1000个时,其市场价值就会达1000万,假定这个软件是由5个人开发的,相关销售、维护、管理费用不计,则一个程序员的市场价值就会达200万,尽管这个程序员年收入只有5万。但是程序员的市场价值是很高的。有了高的市场价值,就有了增加工资、奖金报酬的基础,就会有增加收入的希望。一般开明的公司都会根据程序员的市场价值的大小来,来定义程序员报酬的。只有这样公司才能留住人才,才能获得更大的利润。

程序员应建立商业意识[1]


让程序员感到最为骄傲的事情是什么?那肯定是自己做出的技术在别人的面前进行炫耀。就像当初卡马克做出新的三维游戏技术时,整个世界都为之疯狂,这是一个技术人员能够达到的最终幻想。不过,对大部分程序员来说,这样的高度是无法企及的,但这并不妨碍他们来show一下自己学会的技巧。

我认识一位在Dos时代的技术人员,他在别人只会用拼音输入法的时候学会了五笔输入法;在别人只会用UCDOS的时候,他可以解密WPS文件,在别人会用CCED的时候,他可以拿着打印的长长的用C语言写的Menu的实现代码炫耀。然而,到了今天,仍然对自己掌握了某一个技术感到沾沾自喜。其实,这样的技术人员应该也不在少数,甚至有些人只不过五十步笑百步罢了。这并不能怪他们,因为在最初软件开发进入中国的时候,各方面的技术资料少的可怜,尤其是当 Dos向Windows编程过渡的时候,微软有很多API并没有公布,在那个时候,可能一个产品的核心依靠的就是比别人多了解一个API或者一个钩子的机制。蒋涛曾经讲过金山词霸的开发,其实只不过是因为他们直到如何利用一个钩子机制从程序中截获信息并进行翻译的处理,但就是这个技术,事实上造就了如此大的一个产业,也造就了几位的百万富翁。而对王志东来说,也是靠剖析了Windows系统中的DLL文件实现了对 Windows平台的汉化,并由此诞生了一个畅销的中文之星软件。而瑞星的崛起也是因为刘旭将流行的Word宏病毒的查杀机制做了出来,便一下子打开了市场。那个时候,这些人被称为高手,因为他们掌握着某些关键性的技术。甚至可以说,不一定是技术,有可能只是技巧。

然而,现在随着互联网的兴起,技巧的价值变得越来越小,遇到一个难题,用搜索引擎搜索一下,一般都可以找到答案。实在不行,到论坛中发一个请求,也经常会有高手告诉你答案。一个人掌握某种技术技巧变得越来越不重要了。说到这里,我们可以讲一个小插曲,这便是微软最早评选MVP(社区最有价值专家)的时候,根据专家分来进行判断,也就是谁回答的问题最多,谁就是专家。当通过检索把名单给微软之后,在第一次见面会上,令大家跌破眼镜的是,第一名是一个女生,而且她不太编程。当询问她经验的时候,她说每次看到问题,她就会先用搜索引擎搜索一下,如果中文找不到,那她就用选择一些关键词搜索英文的网站,这样一般都会有人回答,这样答案就出来了,而且很多都是英文的答案,这也让很多网友感觉这的确是一个高人,因为这些问题都是用英语回答的。了解了这一切,令人恍然大悟,除了看到一些程序员的懒惰之外,也可以感受到技巧已经不在称为衡量一个程序员水平高低的门槛了。这个时候,考察一个程序员的价值除了其技术的深度和广度之外,是否能够看到技术之上的商业价值,是否能够拥有商业的意识便变得更为重要。这时,如果作为一个程序员,仍然整天为了获得了某个技巧而炫耀的话,相信无法取得更大的成绩。

35岁前程序员要规划好的4件事[1]


经常可以看到关于35岁程序员的生涯询问,他们之中有些人写了十年代码,有些人则是因为对编程发生了兴趣,中途转行,以下四点是给那些30-35岁程序员的建议:

照顾自己健康

以前,我认为钱是很重要的,俗话说的好:钱不是万能,但没有钱万万不能,所以过去我的焦点都是放在收入,但后来我发现有比钱更重要的东西,那是家,在你没有结婚前,这个家的概念是指你和父母的和谐关系,而在结婚后,家的概念是指如何维系一个家庭,包括和太太还有孩子的关系。

在IT这个行业里,很多人跟自己父母的想法是有差距的,认为上一代保守,食古不化,讲到很多东西没法沟通,另外,我的很多朋友事业做很大,但最后却离婚了,没有孩子还好,有孩子的要想更多,只有家,你才有奋斗的目标,才有精神的支持,否则就像电视里讲的那一句,失去了你,得到江山又如何?

但这个家的信念自从张国荣事件后,又改变了我的看法,那就是有比家更重要的东西,那是你的 健康, 这个健康包括生理和心理上的健康,想想看你拥有了一个家, 但是因为没有健康,全家人都被拖下去了,每天看着你痛苦的吊瓶子,更严重的直接轻生,这样遗留给珍爱你的人只是更大的痛苦,你会 C, C++, C#, Java 又怎样?那时候你会认为这些通通都是屁,做人做到能够吃得下饭、睡得着觉、笑得出来就已经是莫大的幸福。

岁会困惑的人多半是因为二十几岁的时候就没有做好准备,过去的已经不可追,现在要想的应该是45岁怎么办?有人说年轻比的是学问,中年比的是财富,老年比的是健康,如果你现在不注意自己健康,那么很快更大的困扰就会上门了,人生每个阶段都有扮演的角色,要学会未雨绸缪,否则不用到50岁,可能40岁就会开始后悔了,健康要从饮食和运动着手,多涉猎这方面的常识,比搞那些过几年就要淘汰的技术有意义多了。

学会投资理财

很多人认为投资理财需要很多的钱,这是不正确的,会理财的人,小钱可以积累到大,不会理财的人,大钱也会消耗到光,投资理财首重的是风险管理,没有风险管理就像在刀口舔血一样,投资理财应该要趁早磨练,不要等到 40 岁的时候才去冒险,因为那时候你已经没有本钱跌倒,投资理财的方法有很多,并不是只有房地产,股票这些东西,从节约,储蓄,定存 每一步都是学习,关键是你要从投资的过程里去发现自己,并且了解如何正确对待甚至对付自己,这样你才有机会早一日达到经济自由,不会提心吊胆这个那个。

投资理财要量力而为,不要做超过你能力所能负荷的事情,我给程序员最好的建议是关注经济,不要浮躁,错把投机当投资,这样还不如定存来得可靠安全。

何谓程序员?何谓中国的程序员?


程序员,曾经是很多人尤其是计算机初学者为之崇尚的一个职业,仿佛就是理想、激情和事业的象征,从此就开始了IT白领人生。计算机技术发展之初,几乎就是一个个人英雄主义时代。一个天才的程序员,几乎就可以主宰一个计算机时代,创造出无数奇迹和梦想。

今天,计算机技术的发展日新月异,技术朝着愈加复杂和简单的两个看似矛盾其实一致的方向发展。计算机技术越加普及,无数非计算机专业的人群,出于爱好或者生存的需要,也加入了这个程序开发大军,并且都称之为程序员。

软件技术的发展,已经进入了一个大分工、大整合的时代,由此导致了软件开发工作的分层和分类越加细致复杂,同为程序员,彼此之间工作的技术含量可以说有天壤之别。系统软件、应用软件,是一个大的分水岭,几乎大多数程序员,都在应用软件这个层次进行开发,国内的程序员更是几乎全部如此。

既然是应用软件,就必然要和实际应用结合,而实际应用,是非常复杂多变的,尤其是具有中国特色的国内应用。于是乎,大多数程序员都在为开发应用层面的软件忙得不亦乐乎,财务软件、ERP、CRM、OA等等,几乎成了国内软件开发的主流方向,更不用说电信、石化、铁路、电力等具体行业应用软件的开发了,这些早已被称为项目了。国外的应用软件,除了以上业务应用之外,尚且还有像CAD、3D等专业领用的软件,具有一定的核心技术。

很多工作了多年的程序员们,在回首往事的时候突然发现,自己依然是一个辛苦的打工者,一个IT行业的苦力。反思一下,我们这些自认为程序员的工作者,其实是在核心技术的外围做一些表面工作,和那些非软件开发人员相比,我们觉得自己有技术,其实我们到底掌握了多少核心技术呢?现在的很多程序员,连数据结构、编译原理、操作系统等这些基本的知识都掌握得模棱两可,天天跟着老外的屁股后面追捧所谓的新技术、新框架。其实,又有多少是我们自己的呢?作为JAVA程序员,经常听到很多人自称精通Spring、Struts、Hibernate等主流框架,并有大型项目的开发经验,其实我们只不过比那些初学者多干了几年,使用这些框架更加熟练而已。国内软件行业的面试经常有此类现象,一个面试者可能这次面试不合格,但是他回去看一下书之后,再来面试,很可能就通过了。为什么?因为我们的面试太初级,太表象化。

我们经常接触IBM、微软等公司的面试,他们一般情况下是不会考核面试者具体掌握了什么框架、什么语言的,一般都是考核的面试者最基本的逻辑思维能力和分析判断能力。这也说明了,同为程序员,其间的差别是如此之大。

作为一名程序员,尤其是国内的程序员,应该对自己有一个清醒的认识,不要被表面的感觉所迷惑。到了这个时代,不是说程序员已经失去了光彩,而是我们所从事的层次,技术门槛已经大大降低,很多人处于同质化竞争。

怎么办?很多人说软件行业是个辛苦活,国内的很多软件公司更把程序员当牲口使用。其实,根本上还是怪我们自己没有很好的反思和调整。一方面,如果对技术真的有浓厚兴趣和激情,那就不妨向软件的底层核心技术迈进,另一方面,如果觉得自己真的缺乏这方面的潜力,那就努力适应国内环境,实现技术与应用的完美结合,争取向公司的中高层发展,如果不给与机会,那就自己创业,选择好技术和市场的切入点。

此外,一名优秀的程序员,一定不能是一个唯技术论者,如果持这样的观点,即使专心做个技术专家,也会存在发展障碍。微软的例子,sun公司的例子,都生动地说明了技术与市场的辩证关系。

当然,每个人的成败观是不一样的。如果始终把技术追求放在首位,追求技术完美的境界,并以此为乐,也未尝不是一道美丽的风景。

我的四年程序员之路[1]


没错,我还是一个程序员,每天还是坐在位置上书写着代码,收获着无聊。 四五年来我我一直保持这样一个坐姿,从每天的早上8点半开始,准备下班回家时结束。

我读的是机械设计制造及其自动化专业,因为迷上网络游戏就干脆转为学习计算机。当时的计算机专业可以说是一个热门专业,很多不怎么样的学校在这时候都开了这个专业,招生时要分数要得不低。这样的决定让我吃苦不少,我要一边保证自己的专业少挂科,以保证自己可以顺利毕业,一边又要保证自己的计算机水平足够在毕业后可以找到一份还行的工作。相比其它同学,我跟图书馆的计算机图书一样另类。他们谈恋爱的时候,我在试着把asp网页连上数据库。他们玩游戏的时候,我在网上到处搜索apache跟php整合的相关材料。

幸运的是,我的专业大部分考试都有六十来分,2005年下半年好歹毕业了。没有计算机背景,企业不会要一个只会把asp连上数据库的人,也不会要我来帮他配apache+php.终于有一家小公司要我进去做软件维护工作,我想都没想就去了,连我要做网页还是客户端软件都没问清楚。零工资实习三个月,外带1个月的试用期,最后才知道自己是来做软件实施的。老总告诉我,所有来这企业的人都得做1年的软件实施,这样才能知道客户需要什么样的软件,以后开发出来软件时才能更好的理解客户的需求。为了理解所谓的客户需求,我在不同的地方安装相同的软件整整安装了一年半,Oracle, Sybase, Sqlserver各种各样的商业数据库我都在上面瞎整过,我后来很佩服hibernate,它居然可以为很多种数据库提供同样的HQL语法,做过的人会知道其实各数据库之间的差异还真不少。还好老总善解人意,在一次公司尝试转型的大背景下,我被调到网站运营部负责网站运营,网站运营跟网站开发是两码子事,在一个小公司里,网站运营就是到各大论坛发垃圾贴子,公司这样做第一可以省去在google上做推广的钱,另外,在我发贴发到手酸的时候,老总还可以跑过来说,累了吧,那放松一下,去把公司网站改下背景颜色。换换思路嘛,脑子就不会打结。这半年里,所有的论坛都有我的ID号,很多论坛的ID被坛主封了又开,到现在,如果我要到某个论坛去下载一个附件,当提醒需要登录时,我网址都不用看直接输个ID和密码进去就行,成功率很高。公司终于又要转型了,因为他们发现发了这么多垃圾贴,还是没人来买他们的软件。我被派到公司的开发组,帮忙做些开发。终于可以称自己为程序员了。

在这半年的时间里,我一直在帮着其它程序员干着繁重的体力活。用HTML和javascript实现着客户们奇怪的网页效果。偶而写一点点JSP的页面,比方说写一个界面将查询结果显示出来等等,当然这也是我为什么现在是从事Java行业的主要原因。

07年初,我决定离开这家企业,在跟老总离职面谈时,他终于想到要为我这么个员工提一下有关工资的问题。他终于想到曾经进入这家企业时,我要求过企业在一定时间内将我的薪水涨到什么样的水平。我并没有接受他开出的更优越的条件,尽管在当时,这些薪水对于一个只会JSP的人来讲应当还行。从职业的发展角度来讲,我需要一个更好的空间,你要知道,在我离开这家企业之前,我还不知道CVS怎么用,Code Review是怎么回事。

优秀程序员应该具备哪些素质[1]


一、心怀理想

我认为优秀程序员首先具备的素质是心怀理想。我曾说过许多程序员都是冲着比尔.盖茨而来的,是被他的巨大成功所感召的。可以说不想当比尔盖茨的程序员不是好程序员。大家要记住,比尔盖茨的成功是两个方面的成功,一个是他个人的成功,另一个是IT行业的成功。作为个人成功,只要个人能在众人中脱颖而出,应该可以说行行都可以出状元的。而行业的成功则表现出行业的生命力和朝阳性。而从事这个行业的人则能够伴随着这个行业的发展而成功。在IT软件行业中,一个好的软件通过无数复制使用能产生巨大的经济效益和社会效益,而好的软件往往是程序员所编制的,与其有很大的关联性,这就意味着程序员在这个行业存在着成功的必然可能。现实中除了比尔盖茨,还有许许多多中外IT名人都是程序员出身的,他们的成功昭示着程序员成功的可能。

既然程序员有成功的可能,那优秀程序员一定是心怀成功的理想,这种理想激励他们不断进取走向成功。我这里说心怀,是说程序员不必天天把理想挂在嘴边,而是把理想放在心里,时刻牢记自己的目标是什么!目标是成功的一半,有了目标,优秀程序员可以不断地调整自己,以最优的方式去接近和实现自己的目标。

现实中还有两类程序员,一类是也想成为比尔盖茨,但是始终是想,最终只是一种幻想。另一类知道比尔盖茨,但是望而却步,从不敢有半点奢望,做到哪就算到哪,顺其自然。这两类程序员都不具备优秀程序员的基本素质。

二、充满激情

优秀的程序员一定是一个充满激情的人,他们的理想和目标的远大注定了他们不能以常人的方式平淡地、机械地工作着。我们很难想象一个优秀程序员不去争做一个大的项目;我们很难想象一个优秀程序员在大家遇到困难时,无助待援时,不挺身而出;我们很难想象一个优秀程序员历经千辛万苦编制出来的程序被用户认可那一瞬间,眼泪不夺眶而出;我们很难想象一个优秀程序员在自己遇到困难的时候,不大声叫喊永不放弃。对于优秀程序员来说付出和收获都是充满激情的。而他们的激情不但感染着自己,而且感染着团队,感染着用户。

三、市场意识

市场意识是许多程序员最不具备的,有的程序员甚至反感市场意识,认为软件卖不卖钱是公司的事,自己只要把程序做好了就行了。借用一句只拉车不看路来形容这类程序员是最为贴切的。有些人从事编程的确是个人兴趣所致,他们喜欢在编程中找到自身的乐趣。但是,更多的人从事编程是为了谋生,是为了获取更多的收入。程序员树立市场意识,就是要做有市场价值的软件,做价值最大化的软件。虽然程序员在单位可能无法挑选开发的项目,但是程序员可以在有市场价值的软件开发上投入更大的精力,可以在业余时间开发有价值的软件。如果公司的软件市场没有前景,程序员应该未雨绸缪,做好最坏的打算,选择更有成长性的软件公司。否则,编程能力再强也是英雄无用武之地,达不到自己的预期。做市场价值最大的软件,让自己市场价值最大化应该是优秀程序员必备的素质之一。

四、永不放弃

程序员可能和其他行业从业人员不太一样,一般遇到困难,其他人员可能进行一番战斗后,无法克服就会放弃了。而程序员遇到困难就可能让程序无法进行下去,他们必须要把问题解决了程序才能完成。优秀的程序员不但敢于解决各种编程中的问题,而且还会善于解决各种问题。有的程序员遇到问题,随便找一种方法就给解决了,他可能不问解决后会带来什么新的问题,不问是否有更好的解决方案。而优秀的程序员往往追求最优的解决方案,往往在这过程中遇到千难万难,但是他们抱着永不放弃的信念,一日复一日,一月复一月,甚至一年复一年去实现自己的目标,最终他们能收获其他程序员无法收获的胜利成果,使得他们水平高高在上。

五、团队精神

现代的程序员和以前的程序员已经完全不一样了,原来程序员是全能性程序员,现在程序员是专业的程序员。尽管还有很少的程序员集设计、开发、销售、维护为一身,但是专业化的潮流不可阻挡,这就表示一个软件或多个软件是靠多个人开发的,他们通过分工协作从事着整个制作工作。程序员写的程序不仅要给自己看,而且要给团队其他人看,当发现程序问题的时候,团队成员可以一起帮助分析解决。如果没有团队精神,任何一个程序员也不可能有真正的成功,即使成功也是渺小的、暂时的。因此要获得事业上的成功,必须要依靠团队的力量才能达到。优秀程序员的优秀之处是可能并不只是关心自己的优秀,而是更关心他周围的程序员和其他人员是否优秀。让更多的优秀的人在一个团队中工作形成一个优秀的团队,这样的程序员才是充满竞争力的,是战无不胜的。

如何成为卓有成效的程序员[1]


程序员,就是整天与机器打交道的那群人。

在计算机并不普及的年代,这样的描述毫无疑问;然而,这些年来,得益于计算机成本的不断下降,软件使用门槛的不断降低,如今,昔日昂贵而又神秘不可莫测电脑,已经成了随处可见、人人能用的办公器材。一句话:人机交互,不再是程序员的专利。大家都可以用电脑干活,只不过,程序员用电脑写程序,其他人用电脑干其它事。

结果,普通人抱怨的问题,程序员也在抱怨:电脑不够聪明,不够智能,效率太低

可是,电脑真的进化到了对程序员和普通用户一视同仁的地步吗?

我不由得想起,上个世纪80年代,温伯格在《技术领导之路》中提出的疑问:

(开办技术领导力学习班)也让我们产生怀疑,技术在当今社会扮演了重要的角色,我们的学习班,是否赋予了某些人太多的力量?

细细想来,当年,IT技术那么高深,只有少数人能够接触,因而程序员理所当然地借助了IT的东风,具有超常的力量。可是如今呢?与常人无异的程序员(或者说,IT技术人员),他们身上让人担心的太大的力量,到底是被淘汰了,还是没有发挥出来?

对这个问题,不同的人或许有不同的看法。不过,读过The Productive Programmer(中文版《卓有成效的程序员》)的人,多半会选择后一个答案。

The Productive Programmer是一本奇特的书,它的Productive(也就是生产力),与新的语言、新的框架、新的系统完全无关,而是另辟蹊径:它只是提醒读者,作为程序员,你与普通用户是不同的:其它人只是简单地启动程序,而你完全可以动用自己的专业知识,驱使/调度那些程序。这样的机会,普通用户想不到,也不愿意抓住,但是抓住它们,你的生产率就会成倍上升。所以,这本书叫做The Productive Programmer,而不是The Productive Computer-User。

薄薄的一本书(英文版224页,中文版215页),共分16章,兼顾概念和实践两个方面,既介绍了加速、专注、自动化等等提高生产率的先进 思维观念(譬如多用键盘少用鼠标,消除干扰集中精力),也给出了在设计、分析、构造、元编程、多语言编程等等多种任务中贯彻前述思想的若干实例(譬如 用全面测试保证质量,选用最省事的方式/语言完成任务),可以说是麻雀虽小,五脏俱全了。

不过,看完整本书,我最深刻的印象还是贯彻全书的思想。说白了,就是尽量让机器做机器该做的事情,让程序和程序打交道,发挥程序员在这方面的先天优势他人眼中的普通工具,是程序员手里的有利武器。

不信,你可以想想,虽然如今人机交互的难度已经大大下降,然而程序终究是程序,程序跟人打交道,与程序跟程序打交道,效率差的不是一星半点:

不用宏,你可能需要一次又一次地重复选择、修改、保存;

不用脚本,你可能需要一次又一次地点击、配置、等待;

不用自动化测试,你可能需要一遍又一遍地运行、调试;

不用管道,你可能需要一次又一次地生成、删除中间文件;

以上《程序员30岁以后的发展迷途[1]》一文,由编辑精心撰写而成,希望对您的职业规划有所帮助,更多精彩请访问“程序员个人简历模板”专题!