每当回顾起这些,我都会感叹当时的我们是多么的不成熟。我不记得我们的谈话中的每一个字,但差不多是这样的。每个人都觉得自己的软件教育更好,都觉得能编写软件就会高人一筹。
经过了这么多年(真是很多很多年),我才体会到使用不同的方式来教育开发者的好处。事实是,尽管我们之间的分歧,我们作为一个团队在一起工作的非常出色,开发了许多优秀的软件项目。
比受到的教育更重要的是,开发者对编写软件的热情,最好的开发者靠这东西来生存。他们整夜的阅读有关最新的软件趋势,永不会满足,他们总想成为领先的人,即使他们的经理会让他们适可而止。虽然这不是成为一位了不起的开发者的要求,但这有助于更全面的发展,不仅对你的工作,也对你的生活。
精选阅读
或许上面写的比较偏激,但真的是很普遍,我想告诉你们,你们虽然只是负责一个模块,但无论如何,请要知道你的项目到底是什么,如何运转,哪些地方好,哪些地方不好,因为这是对你自己的一个提升,也是对公司的一个负责。说到负责,我不得不说责任感,很多人就是缺少了责任感,以为完成了任务就可以了,但你要知道,你的公司或许等的不是你的完成呢?
请您拿到项目需求的时候,分析一下您要做的东西,用你敏捷的思维想一下,该如何去做,还请您多想想下一步,如果扩展了,我要改哪些地方,最重要的是,请您想想,这个任务对公司是否有利,或许你会说你只是个程序员,我没有权利去改变任务,没有错,你是个程序员,首先请你完成你的任务,在完成任务的同时,想想任务的完成对公司的运营是否起到反作用,因为有时你会比你的老板更了解项目对公司的利弊。如果你真的觉得不太好,不要怕,提出你的观点,但一定要想好你观点的描述,尽可能的表达清楚,让你的老板知道你的意思,因为老板他不一定懂技术,所以一定要白话一点。如果你的观点是正确的,你们老板也听明白你的意思了,那样你们老板会更加的器重你,而不会不可理喻的让你完成他所要的东西了。毕竟这是对他好的建议,也是对公司发展好的建议,如果你的观点不好,那样老板也会给你一定的提点,何乐而不为呢?
下班后,请你抽空想想公司的发展吧,因为你是公司中的一员,公司发展前景好也代表着你的发展前景好,如果你的想法给公司带来了好的前景,那也是对你能力的一种肯定。
最后说说面试,我也经历过很多面试,同样也面试过很多人,刚开始也会为工作着急,到处找面经,但最好的面经是无法从其他地方找来的,因为面试是一个展示自己的机会,而不是一再的ctrl+v 。刚开始我也会紧张,但马上,我调整了自己,每次面试就当自己一种磨练,一种交流、沟通、展示的机会,随后的几次面试都比较成功,再随后的几年,我回到了老公司进行面试,显然他们对我的能力已经是一个肯定了,最后我还是没有选择他们,因为我回去面试只是为了看看公司的发展进行的如何了,因为这一切也有着自己的一份努力。最好玩的是一次邮件面试,对方给了很多题目,大多是网上都有的,我也没有baidu,用自己的想法回答了所有的问题,并提出了很多意见,没想到对方回错了邮件,把他给人事的邮件发给了我,貌似是说面试还可以,就是工资高了点之类的话,我也懒得继续往下看,回信给对方,发错邮件了。过后不久收到对方的面试通知,更确切的说是offer,不过在他电话中我直接给回绝了,因为我已经在一家自己喜欢的地方就职了。
我爱我的公司,我爱我的程序,我也爱我的老婆和家人,因为他们给了我快乐,也给了我支持,让我能更全身心的去投入到代码之美中,我更相信公司能异军突起,成为IT界的领军人物,因为我看到了一群为公司孜孜不倦,辛苦能力的同事,我很爱这种氛围,我相信我们的努力一定会给自己带来收获,就算没有收获,我也没有任何怨言,因为我沉醉了,因为我快乐,因为我是个快乐的程序员。
那么,个体应该怎样对待经验呢?
我个人觉得,可以从经验的形成和使用这两个角度来思考一下如何对待经验的问题。
1、经验的形成
在经验形成的过程中,不能仅仅满足于经验的获得,还要对产出经验的前因后果进行深入系统地思考,确保经验能够有机,系统地融入到自己已有的知识体系中。很多时候,我们解决问题的经验方法,思考过程,是以一种非显意识的,灵光一现的方式得出的,我们的大脑会以一种近似于直觉的形式从记忆深处跳跃性地抓取一些线索,得出问题的解决方案。这种背景下形成的经验,如果不对其加以整理,回顾,不将经验背后的东西从潜意识翻到显意识的话,不去将经验涉及到的知识点和相关事物进行整理联系的话,这种经验很容易就会淡化,甚至随着时间的推移发生扭曲。即便是没有发生扭曲和淡忘,但是因为对得出经验的前因后果不甚了解,往往在个体真正需要借鉴经验的时候很难建立出来一个有效的参考系统。在经验形成的过程中,要透过经验,去观察经验背后的本质规律,通过具体的经验接触乃至掌握了主导经验的本质规律,才能够让自己在以后遇到问题的时候有效运用经验。
2、经验的使用
在获得经验的同时,要警惕经验成为自我意识的一部分,以减弱因为人潜在的维护自我完整性的心理倾向所导致的对经验的过度使用。
保持一颗鲜活的大脑,对不符合经验的东西,对经验不能解释的东西要保持一种敏锐的觉知能力和思考的自由度。而作到这一点的关键是要确保内心的纯净,安静。在我看来,只有一颗不带欲望,不带喜好,不带情绪,不带偏见,不带过多自我意识的心,才能够在运用经验和创造经验之间获得完美的平衡。把文章发给了一位朋友,他的回复我觉得很精要,附在下面作为对自己的思考的补充吧:
关键的是要能够透过具体的经验,看到背后的规律,所谓透过现象看本质。有的人,事情只做一次,就能成为专家;有的人会不停地在类似的事情上失误,这就是对本质看法的能力不同所致。 能够看到本质的人,一定不会滥用经验。
职业规划就是对职业生涯乃至人生进行持续的系统的计划的过程。一个完整的职业规划由职业定位、目标设定和通道设计三个要素构成。
经营你的人脉
我觉得程序员除了普遍不善理财外,另外人际沟通也多有问题,很多人在离开公司的剎那,整个人感觉也都被掏空了,而且会有一种担忧,以前别人跟我说话那是因为我是某某公司的员工,现在不是了,可能就没有什么人会再鸟我了,这就是典型的人脉经营危机。
人脉的经营不是看你有没有朋友,而是有没有能帮助你同时又有实力的朋友。有些人朋友很多,但真正遇到困难,只能精神上支持一下,除此外,帮不上任何忙,这代表人脉还是太单薄,不要总问别人能给你什么?也要问问你能给别人什么?懂得去欣赏别人,而不要像患了红眼病一样,漠视别人背后的辛劳的付出,只知道妒忌表面的风头, 这样,只会将自己的路越走越窄。
经营自己的人脉是有秘诀的,首先你要了解自己存在的价值,如果没有存在的价值,那么经营的人脉是空的,这跟有存在价值却不知道怎样经营人脉,基本上差不多,经营人脉并不等于趋炎附势,而是指在得势的时候,就要想到落难的时刻,待人宽厚真诚,人无千日好,花无百日红,多欣赏别人,择友深交,别把时间浪费在小屁孩身上。
培养广泛兴趣
一个程序员如果除了IT以外,一点其它的兴趣也没有,那真的是很危险的事情,像我现在年龄已经超过35岁了,很快就要40, 但我现在还是每天写代码,做项目已经不是为了维生,而是纯粹兴趣了,我想我会一直写下去,同时开始加强自己经营管理或财务方面的知识。你说郭安定以后玩不了电脑怎么办?他就去写书,万一双手废了怎么办? 那就去配音,万一声音也哑了怎么办?那就重回金融市场,让徒子徒孙帮忙着下单,眼球看左就买,看右就卖,就这么一直玩下去
所以人生不是只有一条路,你得为自己想好方方面面,而广泛的兴趣可以帮助你跳脱现况,看到更多。
以上四点不仅是35岁的人要注意的,很多甚至二十几岁的人也要开始关注,说真的,很多程序员看上去每个体型都不错,但体格都马马虎虎,很多人熬个两天夜就不行了, 不知该说什么 一起加油吧。
昨天去参加了RIAMeeting组织的一次小型聚会,见了不少技术牛人,他们都有丰富的开发经验和技术体会,并且对于技术有精益求精的态度,让我这个去蹭吃蹭喝的人觉得比较惭愧,也学习到了不少东西。在聚会结束的时候大家开始自我介绍,可以料想到:一个比一个谦虚、腼腆、不善表达和我在其它场合接触到的大部分技术人员一样。这给了我一些触动,加上最近我也看了一些东西,就决定写这么一篇日志。
上大学的时候我了解到有程序员这个职业,就是写代码的,不过在我毕业进入公司之后,我更喜欢工程师这个称谓(web developer 也可以叫做前端工程师或者UI工程师),因为这个名字总是能让我想起游戏《红色警戒》里面那个带着黄帽子拿着工具箱到处跑的角色,如果半路上不被敌军的狗咬死就可以修好断桥和建筑,或者把敌军的建筑占领。我对工程师这个群体一直都抱有普遍的好感,他们低调、技术高超、真诚、单纯、有责任感,值得信任。和他们在一起工作你会感觉特别舒服。记得刚入职的时候,我对Linux一点也不了解,有次碰到一个问题,正好旁边几个工程师在那里聊天,于是我就像他们求助,他们过来之后一个人负责操作,其他几个在旁边七嘴八舌建议,不一会就把问题解决了,我当时就觉得特别有安全感,所以在以后的工作中遇到问题也没有特别着急过,因为我知道我身边有很多牛逼的工程师,有他们在就没有什么问题是解决不了的。
在工程师这个圈子呆久了,我发现大部分的人都有一个共同点,那就是不善表达,或者说懒得表达。在公众面前讲话会脸红,不能很好地表现自己,而且善于表现自己其实会被认为是一个缺点因为大家都觉得有真才实学就好了,而且普遍信奉低调的做人哲学,那些善于表现的人会被说成很能忽悠。举个例子来说吧,李开复应该算是一个很成功的人了,而且是技术出身,但是你会发现这几年很多人都对他有负面评价,说他不好好管理公司,整天跑去演讲、就是一个说书的、做秀云云,都是针对他频繁出现在公众面前这件事情来说的,而且你会发现大部分的负面评价都是出自技术圈的。但是这种在公众面前演讲、推销自己其实是一种很重要的能力,尤其是在现代社会,它是一种企业家式的能力。
在现实生活中,无论是哪个圈子和团体,都会经常发现这样的例子:有一些很有才华的人在社会上始终不成功,相反,有一些资质平平的人却为自己挣得了不错的地位和财产。为什么会出现这样的情形呢?一个重要原因是前者不善于经营自我,而后者善于。善于经营自我经常会被广大有真才实学的人鄙视,觉得那是钻营和不务正业。事实上,正如《自由秩序原理》一书中所说的那样,这是一种企业家式的能力,而且 一个人的成功不是取决于自己既有的才能、知识、技术等等,而是取决于能否成功地将它们转换成对其他有能力做出回报的人有用的具体的服务,这正是自由社会的本质之所在。
如果真的是这样的话,那么由于每个人的企业家式的能力的不同,势必会出现能力相同的人获得的报酬却相差很大,引起很大的不满,而且每个人必须为自己的才能去寻找市场,这就必然面临压力和风险。但是这种代价是必须的,为什么呢?因为如果不是根据使用才能的有用结果而是根据才能来决定报酬的话,那么就必须有一个权威来判定每个人的才能大小和级别,这就必然导致专制。如果想替代那种对自己的命运负责而导致的压力,那么可供选择的就只有那种人们必须服从的个人命令所产生的令人更为厌恶的压力。
虽然我们这一代没有经历过计划经济、分配工作这些事情,不过应该也有所耳闻吧,那个时候每个人不必去营销自己,因为上级已经给你安排好了工作和报酬,虽然说是根据你的能力进行的安排,但是里面必然掺杂了诸如个人恩怨等其它因素,那种不公平比现在的这种不公平要严重得多。尽管现在的市场经济也有不公平的地方,因为它只承认在市场上得到实现的价值,但是我想相比之下大家应该都更讨厌专制吧。两害相权,只能取其轻。
鉴于此,我很希望工程师可以抛弃一些偏见,虚心地去学习那种企业家式的能力:在公众面前讲话的能力、写文章的技巧等等,培养自己的一些市场意识,当然,这都是建立在真才实学的基础上的。如果没有真才实学而专门去推销自己的话,那真的是投机钻营了。
最后我想说的是,其实很多技术人员因为性格使然,是很难学会这种企业家式的能力的,但是他们又确实有能力又踏实肯干,很多时候对于他们来说真的不太公平。所以如果以后有机会并且有钱的话,我很想创建一家让工程师有幸福感并且摆脱无力感的公司。
4、对代码的信任
作为项目管理者,你怎么相信他们的代码。有些程序员,你可以对他们说:我星期五就要结果.--星期五到了,你收到了这样的Email:代码我都已经检查过了,现在就等着测试了。你很放心,只会有很少的瑕疵在质量确保的团队被查到。当然,还有些轻率的例子,一些程序员在邮件里是这样说的:我还没弄完,星期一上午我会最先完成它.你不太确信这东西,发现很多Bug,很长时间基本上不能用。又得花上几个星期清理代码中的Bug.
关键:你对一个开发人员越有信心,他离成为一个伟大的程序员的距离就越近。想象你是你的管理者,如果他并不担心你的代码,会给你多少信心和勇气!
5、对方案的信任
和对代码的信任是一回事--如果你手上有伟大的程序员,你就会对解决方案有信心。这些程序员同时也是伟大的建筑师。他们剖析整个问题,指出问题需要怎样去解决。这就不只是用伟大的代码编程的问题了,很大程度取决于你怎样构筑解决方案。这是关键,而且会让你在软件世界里出类拔萃。
6、满足客户需求
一天下来,你写出了最棒的代码、用了最好的框架和最好的解决方案,但这真的能迎合用户的需求吗?恐怕根本不是那么回事儿。你搞砸了。尽管现在多次失手,一个伟大的程序员还是会正中靶心,找出客户需要的,给用户逐步展示他们所需要的无bug的最终版本。需求正中靶心的同时,用户满意了。
7、不断升级
伟大的程序员会积极主动地把自己的技术升级。他们对知识的态度就像饿猫见着了牛奶,他们从不用上级催促给自己设定目标、不用经理要求他们完成任务,因为他们自己就已经安排OK了。
他们发现自己想要参加的大会就会给公司写Email本人非常想参加今年的Tech-Ed大会。我将用心研习,并对作出贡献。我预计这可节省金钱/其他原因.如果可行,不知公司是否帮我支付此行?如果我收到这样的邮件,我不仅会帮他支付参会费用,他的路费我也会全程买单。
伟大的程序员们永远会关注例如。net用户组或Java用户组的所有用户群体。他们参加本地的技术会议,并从中汲取知识。你会看所有最新博客和最新的杂志吗?现在列出你最喜欢的前5个开发博客。你能做到吗?你应该像参加基督教青年会那样轻松做到。做到这些,可以很好的帮助你延伸你的思路!你将会不断获得更好的点子!你会得到更好的回报!
你是不是感觉标题有点矛盾啊,是啊,程序员当然就只是程序员而已嘛,还会有其他什么吗?
No,No,No,如果你以前是如此认为的,那看完这篇文章后,请从此打消这个念头,因为你要改变成一个不一样的程序员(怎么还是程序员?)
虽然我工作经验也就6年左右,但经历了很多,也自己创业过,也是从一个初级程序员走起,因为看的比较多了,某些东西也普遍存在着很多程序员身上,希望自己的经验能帮助你们。
当刚踏入程序员这条路的时候,有幸为一家公司开发一个大型的电子商务网站,因为这篇领域当时还算刚刚起步,自己的编程能力还不太好,所以做起来就比较吃力,每天重复着做完PM给的工作,但是做了大概几个星期,我发觉某些地方真的不合理,但自己又仅仅是一个程序员而已,怎么办呢?我还是按照PM的任务一步一步来做,私下里我用了大量的时间去尝试着我的做法,在接下来的几个星期,我试着跟我的PM进行沟通,他也发觉不错,所以一并写了方案提交给上级领导,很好的是,我们的领导发觉建议还不错,所以改变了原先的策略,对我们的网站原先的设计进行了彻底的推翻,一套新的理念就此诞生了。
这只是一个小例子,并不是炫耀自己的能力,我只是想说,程序员,你其实不仅仅是worker,更应该是Ideaer。当你选择程序员这条路时,如果你仅仅为了工作而选择的,我想你的人生真的很灰暗,为什么这么说呢?我面试过很多人,大多都是从培训中心出来的,虽然我也是从那里走出来的,不过我当时是为了学习编程而去培训,但现在更多的人会为了工作而去培训。其实如果你是真正的选择程序员这条路,我想你的思维能力一定不错,因为一般程序员大多是理科出生,理科靠的就是你的思维能力,在某些时候或许你的思维还不够敏捷,但我知道,每个人在接受了一段时间的工作后,就会产生各类的想法,或许某个想法你会改变你公司的命运,可为什么提出观点的人就寥寥无几呢?
我想可能是因为性格吧,因为很多程序员都是内向型,因为我们需要花一定的时间,去沉醉在代码中,因为这是一个奇妙的世界,无法自拔,所以很多时候就忽略了沟通,因为我们打交道最多的是abcd。如果你正是如此,希望你快点走出来吧,分清楚何时沉醉,何时交流才是最好的。我的偶像-唐骏,我看过他的访谈,他在大学时还是一个不会沟通的人,只是偏执于技术,而且和大多人一样,都会觉得自己什么都会,什么都行,是个天才,但在他大三的时候,他意识到了错误,花了几年的时间去学习交流、沟通,在宁愿委屈自己进入微软做程序员,再到无数次发意见给Bill,一步一步成就了这位打工皇帝。
所以,我们每个程序员要做的是,技术和沟通并行提高。在唐骏的话中,我会学到很多东西,他能从容应对每一次挑战,当时有幸成为唐骏的下属,见证过他的能力,虽然他当时只是个技术总监,但他的想法、创意给盛大带来了无比的利益,我不得不佩服他的胆大,不得不佩服他的能力。从他身上还学到了专一,其实很多程序员会在编程的道路上三心二意,这是很正常的,不过我相信一段时间以后你会学会专一的,因为程序真的很美,带来的不仅仅是工作和薪资。
我这里又不得不批判一些年轻程序员了,他们仅仅看中的是工资、福利等,没错,这是考虑工作的一点,但你要知道,有些时候,你第一点的工资,或许你会学到更多的东西呢?我经历过很多,经历过1年工资翻几番,又经历过折一倍,又经历过小公司,又经历过大公司,各种各样看的实在是很多,但我不会说我自己半途而废,因为每次我会把事情做的觉得自己可以了,我才会选择更好的发展前景。我面试过一些人,工作也就2,3年,做过的东西也很多偏向于OA、ERM等项目,就觉得自己很了不起了,工资也是漫天要价,可真正面谈的时候,我才得知,你仅仅是其中的一个小模块,但当我问其项目的整个运维的时候,就会楞个半天,最后来一句,这个模块不是我负责的,敷衍了事。那好,我问你自己负责的模块,如何具体写的,用了何种方式等,基本都会回答,三层架构,什么什么,My god 三层架构是你一个模块就能体现的吗?那好,既然你说三层,何为三层,三层的优点,缺点在哪里?诶~~~~~前几天首页那篇批判大学生的文章,我觉得写的太好了,你们这是在沉醉吗?如果你不喜欢,你为什么非要选择程序员这条路呢?
不过,这里提示大家一点。任何东东,价格和价值是不等的,价值取决与这个东东本身值多少钱,价格则更多地取决与市场需求。大家可以想象一下,目前100个培训班,90个都在教Java,这意味着什么?是不是以后Java程序员暴多。暴多的结果是什么?肯定是跌价啦,因此,我曾经推论,Java程序员以后的薪情堪忧。
反过来,C和C++,如果我们自己肯钻研,钻出成绩来,前景还是很可观的。我们要坚信,C和C++的市场需求还是有的,在游戏业,在通信业,在很多嵌入式场合,C和C++语言都有不可替代的作用,程序员少而市场大,大家知道意味着什么吗?薪水高是不?呵呵,这是肖老师自己YY,乱讲的,大家可以自己想。
反过来说,C和C++的培训班少,我们找不到,清华北大的同学出来,是不是也找不到?这是不是说,在C和C++这条路上,我们和他们又站在一个起跑线上了?呵呵,可能有人会说,那些名校毕业,不需要培训班,当然。但是,名校毕业,我想也不会成为大师,他们工作一开始,还是得老老实实地学,大家说是不?
最后一个问题,去深圳发展。我的建议是不要去了,深圳目前已经比较成熟了,相对来说,机会比起刚刚改革开放时,已经少多了,我们贸然过去,期待有个好的工作,这是不了解导致的幻想。深圳工资高,相对物价也高,大家找工作,不要单纯比较工资绝对值,好好比较一下两地的房价,会发现,深圳的工作,性价比不高的。
深圳还好点,北京上海,就更过分,房价高不说,把个户口看得跟什么似的,外地人过去,很难在当地买房,落户,扎下根来的,会有很多看不见的杠杠在阻碍你。我是这么看的,打工者和城市是互动的,诚然,打工者需要城市提供的环境赚钱,而城市也需要打工者增加税收和消费,进一步增加城市收入。一个城市把自己看的太高傲,不是好的合作伙伴,也不是适合长期呆的地方。我自己就是这么看的,从成都出来,没有选择那些一线城市,选择了西安,主要就是看城市的包容度,基本的物价指数。
嗯,还有个很具体的问题,就是找对象结婚。大家不要笑啊,人之常情,谁也不想一辈子当和尚。 据我所知,越是大城市,北京、上海,甚至成都、西安也有,很多女孩,很浮,看重表面的东东,看不起外地来打工的人。这也没办法,这个社会随着商品化思维的加深,每个人都有一种交易心态,女孩希望嫁好一点,无可厚非。但是,由于她们这个心态,一般都看重一个男人有什么,而不是很细心地观察这个男人的潜力如何,因此,大家就算专业技术再有优势,但只要手边没有现金,没有房子,车子这些硬件,恐怕过去找媳妇,也很困难。大家刚毕业可能感觉不明显,不过,我想过几年,大家就有感觉了。
当然,有人说,我大学里面有女朋友,或者说,我过去也找打工的。完全可以,不过,两个人都是打工的,处于一个陌生的环境,奋斗起来,可能会比较艰难一点。建议大家做好思想准备。
这个话可能某些同学不爱听,不过我放在这里,欢迎PK.
因此,我最后的建议:人一生是很复杂的,和邓大爷一样,三起三落不到头,现在我们看到的,不一定就是一生中最重要的。仔细去看一些最古老的道理,有时候反而更有用。
关键是,这辈子给自己一个目标,定一个计划,只要能坚持走,最后一般都能成功。这个计划,可能很小,比如我一定要成为C和C++的高手,也可能很大,我要成为某方面的专家,我要成为北京人,上海人,甚至我要出国等等,都可以。
关键是,你现在准备做什么?你能坚持多久?
营销法略的法,将产品营销拆解为面向机构客户采用一目标(CUTE)、二手段(建网10-30-60法则、达情1-3-6法则)、三宗案(赖式、袁式、牟式)的国情式流程,面向大众客户采用美式营销的普遍真理(6大要素、经典8P、当今新法)与中国市场的具体实际(本土特征、本土各P)及IT特殊的鸿沟现象相结合的差异定位专业式流程,以及不收客户的钱还能赚钱的出奇守正的第三方流程。
关于为将者的产品人修炼,智(坐知立行)、信(合作共赢)、仁(客户至上)、勇(勇于创新)、严(品质保障)五大素养,在成就企业产品的同时,也成就自我人生的成功。
程序员第二定理,不妨俗称为看远定理,或时间定理,即程序员应就职涯之世论技术之时.古人云,不谋万世者不足以谋一时,这个世就是职业生涯的全景,这个时就是当前的技术实现。反映到程序员需要做的心智模式的第二个战略转变是就职涯(世)论技术(时).
程序员可以选择职业路径,始终做工程技术,其职涯大致的到达路径是研发、技术方面的首席技术官CTO或工程、项目管理方面的工程管理副总VP Engineering;也可以选择职业路径二,从技术端向商业端走,其职涯大致的到达路径是首席产品官CPO、首席营销官CMO或销售副总VP of Sales.一般情况下,这几个职务中能到达CEO的只有从CPO、CMO或VP of Sales上去,从CTO和VP Engineering一般上不到CEO,即CEO更偏向商业,这大抵也是商业驱动技术的写照,美国的CEO九成以上是从有过销售经验的营销或产品人员中产生。
长江后浪推前浪,创新的技术、产品和企业不断涌现,IT行业最大的敌人是周期性的创新衰减,或曰创造性毁灭,即你可以通过创新毁灭别人,新企业也同样通过创新来毁灭你,如微软之于IBM、Google之于雅虎,以及现在打得火热的微软和Google.
企业如斯,人亦如是。IT业人的最大的敌人是因年龄增长引发的激情与创新的衰减,随着年龄的增大,谈婚论嫁、成家生子,你会发觉刚毕业时整晚都可以呆在电脑前的激情逐渐消失了,曾经被自己嘲弄的没有志向的朝九晚六之人,现在又多了一位,而在你心有旁骛之时,长江后浪滚滚而来,就要把你拍死在沙滩之上。
企业应对周期性衰减有三类方法,第一类是依靠技术性垄断延长生命,如微软;第二类是阶段性自我颠覆,如IBM的老沃森、小沃森、郭士纳等领导的三次战略转型;第三类是通过兼并完成自我重塑,如思科。
IT业人亦然,第一种,用人单位就只有你能搞定这个产品或技术,地球离开你就不转,你就是微软,号令天下,莫敢不从,倚天不出,谁与争锋;第二种,跟着新技术潮流,不断学习,与时俱进,完成阶段性的自我颠覆,如原来在DOS下编程,后来Windows,再后来。Net、SOA、云计算等;第三种,从技术领域通过兼收并蓄其他领域的知识和技能,完成自我重塑,如成为PM、成为产品经理、成为营销业务人员。
不谋全局者不足以谋一域,不谋万世者不足以谋一时,这就是程序员的时空定理。
玩技术还有一层含义,就是迷恋最新出现的技术,一旦有了新的进展,就要下载尝试一下,或者安装一下玩玩。曾经有一次我们被某公司邀请参加他们的一个技术研讨会。会上有两组开发的团队,一组是原有的技术开发团队,另外一组是最新组建的,而且要准备以.NET技术进行开发,当时.NET还是一个新兴的技术,有人给老师推荐了一位工程师,这位工程师号称对.NET技术很精通。然而,当在会议上这位工程师讲述了自己准备用.NET做产品的构想时,原有的开发团队问到了很多系统设计层面的内容,这位工程师几乎无法应对,因为他只是玩了.NET技术,对于这样的技术在商业上的应用却没有经验。会后,老师也表示:尽管他对.NET技术有一定的了解,但的确经验还缺乏很多。后来这位工程师发展的还不错,进入了微软开发合作部,专门用来讲述微软最新出现的技术,想来这也与他自己的爱好挂上了钩,也是一个不错的选择。不过,这样的职位毕竟只是少数,对大多数程序员来说,玩技术并不能给他带来更高的价值。
前两天,这位工程师又在自己的blog上提到,他用微软最新开发平台内置的屏保程序制作了一个自己的屏保,演示给同事看,同事感觉很新奇。当我看到这条Blog,感到一丝苦笑:玩技术而已!玩技术的另外一个后果便是容易迷失方向。在Dos时代,技术的种类很少,程序员面前的技术方向也很少,玩也容易玩出深度。但随着Windows平台,尤其是网络出现后,各种技术层出不穷,即便是水平再高的程序员也很难兼顾几种技术领域。如果不能够对技术发展的来龙去脉有深入的了解,就很容易限于技术的表面理解,也就很容易造成程序员不知道如何选择要继续下去的技术,丢了西瓜,拣了芝麻。于是会出现论坛中到底是什么技术好,到底应该选择那种语言的疑问。按照大部分过来人的解释,其实只要选准一条技术路线,真正的钻进去,自然会取得好的效果,因为不同的技术之间是相通的。微软工程师孙展波在回答程序员做技术到底应该做深还是做广?的疑问时,毫不犹豫的表示:应该做深,而在广度的方面每周抽出一些时间了解一下就足够了。尤其是在现在互联网如此方便,网上信息量如此庞大,专业类网站密布,检索极其方便的情况下,想要获得任何资源都是一件并不复杂的事情。
而且玩技术还有一个结果,就是容易忽略用户的需求。技术酷是一件很棒的事情,但这并不能保证持续的生存。尽管硅谷曾经以看哪个公司做的技术最酷而吸引程序员的关注。比如最初的是苹果的技术最酷,后来出现了Netscape这种做浏览器的公司给人感觉技术很酷,随后SUN公司推出Java语言的兴起,Java技术变得很酷,但现在,Google搜索引擎成为了最酷的技术。因此,技术本身仅仅注重酷的感觉是远远不够的。
在技术的选择上,是敏捷敏捷再敏捷!数据库尽量db4o,前台尽量sl/flex(面向最终客户的就不能选择sl).工具软件尽量用C#开发。尽量只做自己擅长的,不做别人擅长的。
我有一个特点,就是会一大票语言,能用来干活的就有C,C++,C#,Java,Python,matlab,actionscript,javascript,tcl.去上班的话,这是缺点--泛而不精。自己干的话,这反而成了优点了。因为我接的项目,很多属于偏门项目,这些项目往往都有开源的实现,但这种实现,要么只有C版本,要么只有Matlab的,要么只有Java的,会这些语言可以最大范围的参考,降低技术风险。缺点在不同环境下可以成为优点。
第五关:团队
通过前面的不断切入,形成了一系列案例,也积累了良好的信用,业务量是翻番的在长,最后自己的时间成了瓶颈。前两天小试了一把,谈了5个项目(2个flex,2个图像处理,那2个flex项目的核心也是图像处理),4个有合作意向,自己干不完,没办法,只能选择1个。
这就到了第五关了--一个人干不过来,得团队了。
但我前面说过,本地是人才沙漠。我的观点是宁缺勿滥,仔细挑选,从头培养。俺的挑选标准是:有激情、品德要好、数学基础要好、有自学能力。目前在带徒弟,看成长情况怎么样。
不着急,用不着太多的人,培养团队的同时开始摸索渠道。那个也得时间。
第六关:渠道
我最终想做的是产品。而在偏远地区做产品,想做成功,渠道和推广非常重要,不然的话,就算做出来了,也只能拿小头。在国内,还要考虑盗版因素。我现在只是有大致的产品方向,做也是玩票性质的,目的是摸索渠道和商业模式,想摸摸国内的和国外的两种市场。国外的只有试探性的探索。国内的,嘿嘿,前面的开发已经形成了一系列的推广工具了。
第七关:产品
做了这么多年项目,累死了。最终的目的还是产品和平台。我的征途是星辰大海(搞技术的,也得有技术的浪漫)目标是5-10年后,互联网3D化之后的虚拟现实(切入点?俺已有一个初步考虑的切入点).短期(5年内)是开发一些工具类型的产品和推广平台。
我是学材料的,在纳米材料界有一个名言--Build The World Atom By Atom.那么,在可见的未来,虚拟世界就是--Build The World Bit By Bit. 协议、图像、机器视觉、3D、语音,正是构成虚拟世界的因素,前面的种种,都是为这个做铺垫。未来的制造业将是分子制造,于是Atom和Bit将会碰撞--Build The World Atom By Atom, Bit By Bit!
但还是那句话,只做小,不做大,做点做线不做面。
什么程序员30岁之后转行之类的鬼话。俺到今年,才开始感觉进入了程序开发的大门,写程序时开始有一种美感,有那种几十人骑着战马冲击奥山大桥的壮烈。做一辈子的技术又何妨。
上述路径相当保守,指导思想不是胜利,而是避免失败。无恃其不来,恃吾有以待之,无恃其不攻,恃吾有所不可攻也。
六、面向对象
很多人都是从面向过程思维方式开始学习编程的,随后也学了面向对象编程方法,也用了面向对象开发工具和语言,但是,真正的用面向对象方法来编程、来设计编程构架、来进行功能分析、来需求分析还是很少的。优秀的程序员一定具备面向对象的思维方式,从设计到编程都贯彻着面向对象的痕迹,他们把面向对象作为思维的日常化。具有面向对象思维方式的人,可以对复杂混乱的事物进行抽象,具有很强的分类能力,化繁为简,程序更加模块化,程序共享度更加提高,具有大程序、超大程序开发能力。有关面向对象的问题,我在前面的文章中已经阐述很多了,这里就不在重复了。
七、基础扎实
要想自己编程能力有一个持续的提高,我们就必须要注重自己的基础建设,让自己能力的提高都建筑在每一层的坚实基础之上,即使能力再高,也不会被风吹得摇晃,尽显强者的刚毅不摧。我们不要小看已经学过的操作系统原理、编译原理、程序设计原理、数据库设计、数据结构设计、甚至计算机英语。这些基础是否扎实直接影响到以后的各种应用技术的掌握和掌握的程度。而大多数新的技术都是在原有技术的发展,因此掌握好原有的技术对最快掌握新技术是有很大的帮助的。此外,扎实的基础也使程序员把精力放在创新和解决疑难问题上,这样优秀程序员的处理能力将会大大增强。
八、条理清楚
普通的程序员则不太注重条理问题,他们对可并行处理的语句从来不进行次序的考虑;对语句使用没有一致性地使用,显得很随意;对处理流程往往一气呵成,一个函数能有上百上千条语句。他们最大的特点就是从来不多问一个为什么!而优秀程序员更注重程序条理,每个语句、语句的先后、语句的行数、函数命名等等他们都能说出为什么这样做。这种条理清楚地素质使得程序员能够把控程序的制作时间进度,也有利于大程序的任务的分隔。大凡程序员编写的程序能被其他人看懂的,基本上都是条理很清楚的。程序有条理,说明程序员的思维很有逻辑性,优秀程序员是最讲究逻辑的。一个优秀的程序员能把一个庞大复杂的程序说的有条有理,并且在程序上也显得可读性极强。条理清楚地表现形式之一,就是程序函数多,函数中的语句少。从这个意义上来说,优秀程序员也是优秀的设计师,项目经理。因为他们的逻辑是一脉相承的。
九、全面细致
我这里说的全面有五个方面的含义:第一、程序员要在编程过程中要全面细致,不要有遗漏,而这些遗漏往往造成了编译错误,需要花费大量不必要的时间去查改。第二,程序员要在设计过程中要全面细致,不要在功能设计方面有遗漏,尤其不要忘记例外情况的处理,许多功能上运行出错都是这种原因造成的。第三、程序员的编程技术要全面,要尽可能多掌握各种编成技术,例如,程序员不但要掌握前台开发技术,也要掌握后台开发技术,既要会文件处理,也要会数据库处理,既要会编写程序也要会制作安装盘,等等。第四、程序员的业务知识要全面,程序员不但要掌握编程技术,而且要主动学习和掌握用户的业务知识,通过对业务知识的掌握,才能更好地理解功能的意义,有助于编写更使用的程序。第五,程序员的知识面要广。优秀的程序员不但要掌握编程知识和用户业务知识,而且要有意识地拓宽自己的知识面,多关心新闻、时事、时尚、经济、技术、文艺、文学等各种知识领域,在知识的海洋中去畅游工作的轨迹,你就会有万事相同的感觉,这些知识会潜移默化地影响你编程的风格和效率。
十、求新求精
IT发展之迅速、技术更新之快捷,使得IT成为公认的追逐潮流的行业,因循守旧,固步自封,甚至年龄的增长都会导致程序员被这个行业所淘汰。有时候叹息行业无情也是情理之中。面对潮流的挑战,优秀程序员应该是无所畏惧的,他们应该始终怀有一种追求新技术的愿望,有一种追赶潮流,伴随潮流的勇气和胆识。因为这个职业就注定了这样的工作方式。当然,在新技术满天飞的情况下,我们不能也不可能有什么新技术就去学什么新技术,我们可以花很少的时间去浏览和关注各种技术的发展状况,但是对于自己所要掌握的新技术则要不惜代价,花大力气去学习它掌握它。掌握新技术的价值评判是用于软件的开发,用于更好地解决以往程序中存在不可解决的问题,用于所开发软件的销售价值。优秀的程序员会很好的选择新技术,并利用新技术立即去革新自己的程序,并使程序投向市场产生价值。那种以学习、知识储存的态度对待新技术都是不成熟的程序员。
我们常以新为炫耀,但是我们更以精为实力。优秀的程序员不但要求新,更要求精,使得自己在编程的某个方面成为专家和高手,让普通的程序员敬仰。例如,精通客户的业务知识、精通程序构架、精通某种语言、精通数据库、精通模块化设计、精通三层结构、精通界面设计、精通接口程序、精通安装盘制作、精通等等。程序员可以精通的领域和内容是非常之多的,关键是程序员对自己的要求。很多程序员满足于会,而不追求于精,使得自己变成什么都懂,什么都不精的,任何人都能取代的普通程序员。这样的程序员怎么能可能获得更高的报酬,又怎么可能变成优秀呢。
第二个提法,我觉得目前女性就业困难,关键还在女性自己。
目前大学里面有句话:干得好不如嫁得好!,我想大家都听说过。其实是人就有惰性,也有一些劣根性,都想找一些活少拿钱多的工作,舒舒服服地赚钱,这种思想,其实不管男人女人都有。我自己也有,呵呵。
关键是,社会是公平的,一分贡献,一分收获,哪有那么多不劳而获的事情。但现在的女生,我觉得普遍有点问题,都想走捷径,都想一次革命成功,目前大学校园中,傍大款的不少,很多女生一门心思嫁个好老公,认为这辈子就有靠了,不需要奋斗了。
因此,在求职市场上,很多女生不是找不到工作,是根本没有一心一意地去找,因为对女生而言,通常都有第二选择,可以靠家里,靠男朋友,等等。这种求职态度上的不坚决,其实无形中,已经给自己关闭了很多企业的大门。有个现象,同等条件的两名女生都面试,一名犹犹豫豫的,一名态度极其坚决,一定要拿到这份工作,通常都是后者获胜,因为企业认为这个人既然这么需要这份工作,那不管能力怎么样,进来后起码会拼命做事。
那我们再来比较男生和女生,就可以看出显著差异了,其实男生有时候也想靠,但是没得靠啊,反而,还有个女生在靠自己,自己还要撑起一片家庭,那么,你说男生求职拼命不?
但我还是得说,前面女生的这种思维是严重错误的,夫妻也是经济共同体,双方需要共同完成家庭建设,这样的家庭才稳定。一个女性,如果觉得职场艰难,就打退堂鼓,那,不管是不是程序员,其实我觉得她什么职位都找不到的。
这样还有潜在的恶果,现在有很多闪婚族,出了校门就结婚,我认为和女性的这种依赖思想有一定关系,但这样的婚姻,是不是稳定呢?
其实我不讲,大家都应该清楚,女性凭借个人的外貌实现魅力,男人更多的是凭个人的内涵和事业的成就实现魅力,这就决定了,一个女人,魅力最大的时候,是18~28这个年龄段,而男人恰好相反,一个男人最有魅力的时候,是35~45岁这个年龄段。这中间有落差。
一个女性,如果坚持以漂亮为本钱,早早地就嫁人,在家里相夫教子,那么,在她30多岁,年华老去的时候,情况就比较危险了。首先,男方逐渐进入事业巅峰,很多更为年轻漂亮的女性,会青睐这种男人,男人面临的诱惑在加大,其次,这个家庭,十几年其实都是男方一点点赚出来的,女方是享受者,不是建设者,在这个家庭里面渐渐就没有发言权,经济基础决定上层建筑,不要说对方爱你就会一辈子听你话,很多事会变的。
如果此时女性再不注意,试图通过控制经济等手段压制男人不会变心,或者采用跟踪,哭闹等极端方法,往往适得其反,最终导致男人离他而去。一旦出现这个问题,女性的问题就比较危险了,十几年没有上过班,自己的专业能力,恐怕仅仅剩下一张文凭了,知识都还给老师了,那她在社会上可以说没有任何竞争力可言。那么,她以后靠什么生存?
职业规划就是对职业生涯乃至人生进行持续的系统的计划的过程。一个完整的职业规划由职业定位、目标设定和通道设计三个要素构成。
另外一种情况,当一个程序员的市场价值达到一定数值的时候,如50万、100万的时候,而收入价值处在较低的水平,例如,5万,6万,程序员往往会产生单干的念头,以期获取更大的收入价值。但是,程序员往往会忘记市场价值的实现并不仅仅在于软件本身,还涉及到资金、资质、市场、销售、安装、维护、服务等各种环节。所以个人开软件公司人数挺多的,但是成功的并不占多数。好的程序员往往不是好的老板,就是这个道理。
现实当中,大学生程序员年收入在2万元比比皆是,普通程序员年收入在4-5万居多,高级程序员在10万以上也不在少数,超过20万年收入的程序员也时有耳闻。
如果我们平均一下程序员的年收入,估计在5万左右。假定公司的利润率为50%,全部由程序员贡献,那么程序员的市场价值也就在7-8万之间。这就意味着程序员一生(35年计)市场价值也就280万。这与比尔盖茨巨大财富相比是多么的渺小呀!这同时意味着中国程序员市场价值有很大的增长空间。
认识程序员的自身价值的目的。
第一,就是希望程序员不要单看自己的收入价值,不要埋怨自己的收入低,而是要更多看看自己的市场价值到底有多高。
第二,市场价值就是编制满足用户需求的软件,如果这个软件销售不出去,程序员再辛苦都白费,市场价值为0。程序员应该争做具有市场价值的软件,同时尽力帮助软件实现销售。
第三,市场价值最大化就是多编制可复用的程序,以提高单个软件开发效率,以降低人力成本,提高利润率。
第四,市场价值最大化就是多编制商品化软件,在编制定制软件还是通用软件选择中,它可以成倍地提高程序员的市场化价值。
第五,有了程序员市场化价值认识后,程序员和公司可以共同地为促进市场化价值作出贡献,并到达员工提高收入,公司提高利润的双赢局面。
中国的程序员市场化价值相对较低,导致程序员收入不高,程序员技术水平降低,最终导致软件质量下降。我们要关注程序员市场价值的提高,技术水平的提高,使得软件行业通用能软件所占的比重大大增加,软件公司的收入大大增加,只有这样我们的程序员的收入大大增加,我们的软件才有更高的质量和更大的市场。
职业规划就是对职业生涯乃至人生进行持续的系统的计划的过程。一个完整的职业规划由职业定位、目标设定和通道设计三个要素构成。
专家分析
立足核心竞争力,发现生涯第二春
向阳生涯职业咨询机构职业规划师洪向阳分析了Smith的处境,他认为,IT人才市场的整体年龄状况趋于年轻化,22岁以下的择业者占总体比例的71%,而35岁以上的只占10%,年
轻的人才给市场注入了活力,也使得IT行业的竞争变得更加白热化人才流动性很大,岗位相对不够稳定。
Smith的处境代表了IT行业一个群体性的问题。程序员是个属于年轻人的职业,Smith们如果没有在职业生涯最初的5年或8年时间里得到晋升或实现转型,随着年龄的增长,在技术更新的大潮中便面临竞争力衰减的残酷现实,需要重新定位和转型。Smith们与其咬着牙继续在编程队伍里打拼,还不如重新审核自己的职业兴趣、能力和性格,立足核心竞争力,寻求职业发展的第二春。
作为IT典型的技术型人才,Smith热爱IT行业,不愿放弃这个行当,希望在目前的基础上能得到进一步的发展。因此职业顾问建议他可以借助丰富的技术经验和人脉关系寻求发展。
生涯发展建议
三条发展出路,化蛹为蝶
在综合分析了Smith自身和外部的情况之后,洪向阳帮助Smith分析了摆在面前的三条出路:
出路一:向IT培训师转型
分析:IT企业在招聘新人后,一般都须经过培训才能上岗,这个培训有时是在岗位上进行的,由富有实践经验的老人负责。年轻人想要进入IT行业,必须接受这样的专业培训。如今IT培训市场非常红火,市场蛋糕相当大,利润空间可观,行业发展前景看好。
根据全球著名市场咨询顾问机构IDC(国际数据公司)统计数据显示,2004年中国IT培训市场共实现销售额24.4亿元,相比2003年增长了22.1%,表现出迅猛的增长态势。Smith无论是在IT公司内部转型担任培训工作,还是到IT培训机构担任教师,都应该有发展空间。这样的工作不会有太大压力,且比较稳定,对年龄也没什么要求。更何况,这仍然没有脱离Smith所喜欢的IT行业。
优势:像 Smith这样在这个行业工作了8年,拥有丰富编程、项目经验的老人可以说是合格的培训师人选,尤其是他曾经参与过许多成功案例。另外,8年积攒行业人脉关系,还可以帮助他发展企业客户,顺便担任市场拓展工作。
挑战:Smith在过去8年中一直是埋头苦干,只是在公司培训新人时担任过培训工作,缺少培训工作经验。如果要向培训师转型,Smith需要接受一些专业训练,提高担任培训师的能力。
出路二:向IT营销转型
分析:IT与其他行业不同,由于技术性较强,营销人员一般也须有较强的技术背景,且最好有着丰富经验。互联网公司、电子商务公司、软件公司目前都需要有技术背景的营销人员;另外,电子商务的再度火爆,使得传统企业开始重视电子商务营销,也需要有技术背景的营销人员。这类工作薪水不低,加上提成应该可以拿到高于程序员的薪水,同时也比较
稳定。
优势:深厚的技术背景仍然是Smith的核心竞争力,在8年的从业经历中,Smith广泛涉猎了各种编程软件和工具,对IT行业也有相对深入的了解,这些都为他转向营销提供了平台。
挑战:Smith对营销工作比较陌生,过去的工作主要是跟机器打交道,而营销工作恰恰需要跟人打交道,这对Smith来说是最大的挑战,要求他彻底改变工作方式,加强沟通能力与人际交往能力;此外,营销工作会面临销售指标的压力,这些问题都是Smith转型前必须深入考虑的。
出路三:向项目管理努力
分析:如果说前面两条出路转型的成分多,那么项目管理可以说是Smith更为便捷的发展之路。目前,软件项目经理是人才市场上炙手可热的人才,有丰富经验、外语好的软件项目经理是抢手的香饽饽,供不应求,薪水自然也是水涨船高。在上海市劳动部门新发布的2005年软件行业薪资调查中,项目主管的薪水是同层次主管中最高的,年薪高位数达到211011元,平均年薪达109414元。最重要的是,一个优秀的项目经理可以在这个岗位上长久工作下去,并且有向高层进一步提升的可能。
优势:像Smith这样的技术型人才,在IT业工作已达8年,有经验,有技术,有人脉,有能力,参与过多个软件开发项目,有一定的经验。项目管理无疑是Smith发展的一个很好的方向。
挑战:Smith以往参与过不少项目的开发,但一直是项目团队里的一份子,没有担任过项目带头人的角色。而很多公司在招聘项目经理时,都需要有带领团队进行项目开发的经验,这是Smith的一个劣势。建议他参加一些项目管理方面的培训课程,自学相关的知识,增长自己在流程管理、沟通协调等方面的能力,以便积累资本,逐步向项目管理岗位迈进。
以上《程序员:你是要学历还是要经验[2]》一文,由编辑精心撰写而成,希望对您的职业规划有所帮助,更多精彩请访问“程序员个人简历模板”专题!
相关文章
最新更新