普通人不普通事 普通程序员如何走出困境[1]。

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

这是发到我邮箱里面的一封信,信很长,从字面看,这位程序员朋友内心有点焦虑和沮丧,但他毕竟还没有放弃希望。所以来信求教与我。

这点,我心有戚戚焉,其实,我自己定位,也仅仅是一个普通程序员,这位朋友谈到的很多苦恼,包括技术的,职场的,生活的,人生的问题,我也曾经身历其境,至少,我在身边的朋友身上,也看过类似的事情。因此,我能理解这份痛苦和郁闷,也希望试图通过自己的经验,为这位朋友,以及还有类似的经历的普通程序员解惑。

我也是草根出身,其实我现在定位,都还是草根,这个问题,我是有一点体会的,但是,每个人的经历不一样,经历的环境不一样,时间不一样,地点不一样,性格不一样,我不敢说我的回答是正确的,大家做个参考吧。

这里还是给这位朋友道个歉,前端时间事情太多,这封信的问题又太复杂,我回复有点晚了,有点delay,sorry。

还是那句话,一家之言,欢迎拍砖。

原文如下:

老师:

您好,我看过您写过的文章,觉得您是关心我们这些初出茅庐,虽有心进取,可又倍感迷茫的人。

我简单介绍一下自己吧,我01年上的大学在XX当地还比较有名的理工大学就读自动化专业,辅修了计算机学位。我对自己大学四年的评价是:努力有余,实践不佳。

四年的加权平均分能排系里前30,可没有什么实战经验,自己沿用了高中的学习方法,天天上自习,因为只要学习成绩好就有奖学金(一个浮躁,见识短浅的想法)。其实大学里只要上课听讲,下课多做一点练习,考个好分数一点都不难,而我当时自我感觉还很良好,觉得自己前途肯定很光明。

毕业考研了,不是我想做研究,是受中国官本位思想的束缚,以及觉得读完研薪水会比较高。我还有一个缺点就是野心大能力小,我当时放弃报送本校的资格,其实我是在报送人中的最后几名,参加报送考试的话,录取的概率也不大。但是,如果考本校把我还是很大的,可我报的是中科院的自动化所,没考上,而找工作也不顺。后来由于没有找到好的工作,也割舍不下研究生学位的诱惑,最终调剂到了北京的一个航天部门读导弹专业,渐渐发现自己不喜欢这个专业,主要是觉得这里毕业后的待遇不是很好(又是很肤浅的想法)。

05年上的研,06,07年当时很热赴日软件工程师,广告鼓吹年薪30万,而且一些培训学校还请来了往届生做广告,我又一次浮躁了,报了一个赴日软件培训班,培训日语和java。

我还有一点可取之处就是,一旦我认定的事情,我全力以赴,所以我当时日语学得还可以,因为培训时大部分时间在学日语,学日语也比学软件容易,都是死记硬背的东西。我的研究生生涯有一半时间在这个培训班度过的,这个班的培训时间是十个月。然而,08年的经济危机让我也没去成日本,而我付出的代价也是因为长期不做课题,研究生没有顺利毕业,没有任何证书。接下来就找工作,我当时除了日语还稍微可以一点外,没有一点开发经验,只做过几个练习项目,还好老天还算照顾我,我侥幸进了一个日企。

08年6月开始工作的,到现在也一年半了,这一年半内除了过了一个日语二级以及考了一个软件设计师证书外,我发现自己没什么长进,而现在的我也过了28岁,存款没多少,技术经验也没多少,时常感到莫名的不安。我们公司是做对日外包的,我这个部门是做ATM机器的软件开发,技术含量不高,主要是业务复杂,整个ATM框架也很复杂,我觉得在金融危机下还能一直很忙,主要是是因为它的行业壁垒比较高,日本总部那边的ATM机器在中国买得比较好。

进入了日企,觉得自己还是喜欢做技术,我会因为学到了一些新技术或者解决了一个问题而高兴,所以也觉得自己适合做技术。而在这里技术长进很慢,并且自己管理上没天赋,很难做到管理的职位。想给自己未来的一个职业定位就是做技术专家,不求发大财,但愿衣食无忧,开心过日子就可以了。

我目前做的是ATM机器上的软件开发,用的是c和C++也涉及到MFC的知识,我目前比较关注嵌入式行业,第一,觉得自己本专业是自动化,也辅修过计算机专业课程,比较对口;第二,我现在用的也是c和C++开发,转入嵌入式开发比较容易;第三也觉得嵌入式这个行业可以一直积累,就算自己做不了管理人才,至少可以做一个嵌入式方面的专家。

我是进公司后才开始用c和c++开发的,以前我没开发过软件,就是c和C++也是在大学学的,研究生是导弹专业,基本上没学到什么专业知识,这个不提也罢。所以我对自己的技术实力很没有自信,在公司我特别佩服那些leader,有些技术很牛,有的业务很熟悉。

而我觉得自己技术不行,业务也不熟悉,智商一般,情商平平,很没有自信。我迫切地想改变这个现实,我可以忍受自己平凡,但我忍受不了那种平庸,那种觉得自己一无是处的感觉,那种不自信的人生。但我不能再像学日语那样了,一天到晚学习,我每天工作也很忙,平时加班是经常的事情,我也不能辞职去学习,这份工作不算什么很好的工作,但是能让我在北京生存下来。

我研究生虽然没学到什么实质的技术,但我很尊敬我的导师,他给我说过一句话,要是在30岁前,还不能确定一个方向,并一直努力下去,就完了。我结合自己的学业背景,工作经历,以及这个大环境的发展方向。我给自己选择了两条路:1,好好在这个公司干,把ATM的框架理解透彻,然后再深入学习 C++,MFC,以后走vc程序员的路,在应用软件开发商做一个专家;2,转行进入嵌入式,从基层做起,慢慢地积累经验,争取能成为一位优秀的嵌入式开发领域的专家。

针对这两条路,我拟定了一个2010年学习计划:我想从基础学习,先把c和c++,数据结构,操作系统这四门课程再学一遍,把课后的习题都做一边,估计需要半年时间。然后看能不能参加一个培训班,建立一个比较完整的知识框架,也想认识一些志同道合的朋友,以及一些优秀的老师。

延伸阅读

普通人不普通事 普通程序员如何走出困境[5]


这个世界,大多数行业,还是遵循一些通理,比如市场经济理论,供求关系理论,比如一分为二的问题分析方法,比如,要客观,不要主观,等等,一个人,真正通过学习,学会了这些思维哲学,跨个专业,换个行业,又有多难嘛?

因此,我对大家有个建议啊,千万不要看什么热学什么,你聪明,别人也不是傻子,大家都学,都跑进去扎堆,这叫人力资源过剩,既然是过剩,就一定贬值啊,等你学出来,薪水也没有竞争力了,我今天把话摆在这,大家不妨验证一下。比如说,学习Java的朋友,想想看,现在竞争力高不高?PHP恐怕也快了

尤其是别因为某个专业有牛人,觉得这个专业比较容易成功,就跑去学。老师我是学C和C++的,承蒙朋友们谬赞,也有一点声望值,大家于是都跑来学C和C++,那,如果哪一天老师死了呢?或者不死,。net领域出了个王老师,比老师牛100倍,大家再转过去学。net?这是不是把自己的一生,都绑在别人的裤腰带上?

因此,我觉得你跳出你目前的工作,跑去学嵌入式,嗯,不太合适。当然,除非你很喜欢嵌入式,这辈子就想做这个工作哈,和我喜欢计算机软件编程一样,那没话讲,你学就是了。

关键是,性价比,你现在在做ATM的工作,上层应用,突然跑去学和工作不太沾边的嵌入式,确实难度太大,学习是有成本的,成本太高,投入产出比太低,就不划算了。你说是不是?

所以,我的建议,在你本行业继续钻研,努力做成行业专家,ATM领域不错的,只要这个世界上还有银行,还有货币流通,你就不会失业,你说是不是?

再多说个细节,google曾经说过一句话,操作系统是过时的东西,我深以为然。以后的社会,我认为是云端计算的时代,是并行计算的时代。操作系统会弱化,PC机会弱化,计算机将向极大和极小两个方向发展。不信,你看看自己的手机,请问它是什么操作系统?你关心不?

因此,软件开发,目前看起来,微软的东东,Windows的东东,MFC,Win32API,COM,dll什么的,成为标准的可能性会越来越小,不要认为只有学VC才叫学C++,gcc比它还标准呢。因此,学习不建议学太PC的东东。至少,和嵌入式上面,微软的操作系统不太占优吧。

ok,我们再说第四个问题,城市问题。

大城市的工作机会,性价比不高的。我一直这么看,也欢迎PK哈。

昨天还和一个广州的朋友在比较薪水收入,我在西安,拿钱和他差不多,嗯,他还多一点,但是,我们综合折算了房价比例,物价指数,以及个人生活习惯后,我们发现,我每个月比他多3000块钱零花钱,呵呵,他那个郁闷哦。

这就是差异。一个行业,总有行业惯例,行业平均工资水平,虽然有地域差,但是,薪水绝对值差别没那么大,因此,同样的工作职位,工作内容差不多,薪水其实也差不太多,但根据中国的现状,这点薪水差,远不能补偿城市之间的房价差和物价差。

换而言之,同样一份程序员工作,在一线城市工作的人,即使收入比二线城市的朋友高一点,但生活水准远远低于对方。这就叫做,打了半天工,都是给银行和房产商打了,自己累了半天,没捞到好处,大家说是不是?

普通人不普通事 普通程序员如何走出困境[2]


老师,我想请教您的问题是:

1,以我的专业背景以及实际情况出发来看,觉得我选择那一条路合适,走上层应用开发的路的话,我现在的开发经验也许还有点用,但是,上层应用开发的话是吃青春饭的,随着年龄增长不能积累,因为业务在不停变化。嵌入式开发的话,现在比较热,也有周围也有很多培训机构,能让我在入门时得到比较正规的训练,少走些弯路,多增点信心学下去,而且我本专业也是自动化,专业比较对口。

2,不管我走哪一条路,2010上半年的学习目标是不会变了,目标不变,那我的学习方法可行么,还有更好的学习方法么,我很想听听你您的学习经验,您说您20岁到30岁之间都没看过电视,这是真的么,学习疲惫,或者学习遇到难题,不想学,悲观的时候您遇到过么,我经常遇到,这时候怎么建立信心,自我鼓励呢。

3,以您的人生阅历,工作经验来看,对我这样的一类人(有点上进心,但又有点浮躁,智商,情商不出众,学校专业还算过得去,技术功底不扎实,缺乏自信)来说,如何实现突破自己,发挥自己更大的潜能,更有安全感地在大城市生存下去呢。

4,我实际情况也是工作比较忙,加班比较多,平时回到家都9点多了,比较累,也不想看书了,只有周末时会看看书,您觉得我怎么克服这种实际情况,按预定完成自己的2010年学习计划呢,因为只是周末看书的话,我是很难完成学习任务的。

5,如果可以的话,您能做我的人生导师么,要是能在自己年轻的时候,遇到不惑时,能得到一位自己尊敬的前辈高人指点的话,也许会影响这个年轻人的一生,我绝对不会经常打扰的,顶多过年过节发发贺信,人生迷茫时向您请教一下。

啰啰嗦嗦说了这么多,是因为我觉得自己不再年轻,如果现在还不好好想想,给自己定一个努力的方向,别说成为技术专家,就连在北京生存下去都困难,最近几个月一直在思考这个问题,但一直想不清,自我分析是患得患失的情绪在作怪,下决心的毅力也不够偶然在网上看见您的文章时,迸发了想给您写信的冲动,占用了您的休息时间,看着这样重复的问题,我表示深深地歉意,最后祝您周末愉快,身体健康,事业更上一层楼。

我的回答:

这位程序员朋友你好,我很仔细地看了你的信,嗯,你的问题很多,我尽量答答看,如果感觉没有说透呢,我们还可以探讨。

嗯,首先,你的信有点长,段落有点不清,我理了一下,重新分了下段,至少自己看起来,比价清爽了。我觉得这说明一个问题,不是批评你哈,是一个建议,写文章,说话,都是沟通,要讲究沟通效果。而实现较好的沟通效果呢,要考虑信息的确定投达这个问题,不知道大家注意没有,当我们很急躁的时候,和别人聊天,很难讲清楚话,这是因为在这个阶段,人特别有点自我化,即喜欢自说自话,很难顾及别人是否理解。

因此,我的第一个建议,当自己急躁时,首先告诉自己,不急,深呼吸,一个人呆5分钟,喝点茶什么的,实在不行,出去走走,努力调节好自己的情绪,再来与人沟通,解决工作和生活的问题,会比较容易一点。

嗯,我是从头看的,你信的开头,谈到了你的学习经历,要我说,其实你的经历还是蛮不错的,大学本科,有读研经历,会日语,学习也很刻苦,取得了较好的成绩,其实要说,你学习的成绩比我可好多了,呵呵。

但是,我在你信里面,看到一个不太好的现象,你有点沮丧。我的感觉,你可能太顾及读研没有学到想学的东西,没有拿到学位证这件事,感觉这件事情,给你了很大的压力,有挫折感,而且,最不好的一点,几年了,看起来你都没有走出这个思维误区。

我以前有很多博文讲到了人生的自我心理调节,其实呢,我自己失败也不是一次两次,我老喜欢说,邓大爷一生,三起三落不到头,其实,我这辈子,大的失败统计了一下,差不多也三次了。只不过,我都爬起来了。呵呵。

人生一世,智商IQ比较重要,因为什么都学不会,无疑很可悲,不过,很多人都知道,情商,EQ,更重要,一个人不会调节自己的情绪,无法很好地与人相处,这辈子随便智商怎么高,都很难有大成就。

但是,我这里还要强调一点,逆境商,AQ,这个是最重要的,人一生,会有很多逆境,这种极端情况下,是最考验人的本能和性格的,AQ好的人,随便什么压力都不垮,总能走出来,就比别人容易成功。而更多的人,则会就此消沉下去,甚至一辈子碌碌无为。你要预防这种情况。

其实这个话不用我多少,历史和现实很多例子的,古语天将降大任于斯人也,现代很多伟人,毛大爷,被别人追了两万五千里,够惨吧,一样翻过身来建立新中国,邓大爷就不说了,例子太多了。

其实,这辈子要想做点事情,我的理解,智商其实不必很高,大多数诺贝尔奖获得者,并不是天才,社会上的成功人士,也不都是达芬奇那种智商,情商则一定要够好,能调节自己的情绪,进一步影响周围人的情绪,好的管理者,总是能带动团队的信心,就是这个道理。不过,最重要的,是逆境商,患难见真章,没有经过风雨,哪能看到彩虹?其实好好想想,你又见过多少人,一辈子顺风顺水,从来没出过岔子?

因此,第二个建议,多看点书,看点职业指导,看点心灵鸡汤,看点人性论,看点哲学著作,慢慢地提升你的修为,当你看清楚这个社会大多数事物的走向的时候,其实你就没那么着急了,也能静下心来,努力做好手边的事情,慢慢获得事业的成功。

普通人不普通事 普通程序员如何走出困境[4]


再多说一点,就有一群人,捡着书里面的一点问题使劲骂,嗯已经开始骂到我这个作者本人了,说我是山寨老师,出来做老师是憋着劲害大家,请大家千万不要上当受骗什么的。网址就在这里,欢迎大家围观。

你说我有没有挫折感?本来出于好心,分享自己的经验,而且,想尽力做本精品,做本厚道书出来,定价都不敢高,结果,被骂成这样。我也有火气啊。

不过呢,回了一下,后来看他们越骂越凶,我反而不想回了。我思考,这里面其实有太多的利益之争,不是我的书烂,而是别的一些出版社,不希望我的书卖得好,以免影响他们的生意,又或者,某些朋友不太愿意看到我某人的博文,网上这么多人爱看,所以骂。

这些人,很多骂人是有钱拿的,而且,随便起个ID就可以骂个痛快,又没有风险,又有收益,何乐而不为呢?

我做人一直有个原则,不挡人财路!,如果别人骂我有钱拿的话,呵呵,骂就骂吧。反正,爆炒恶炒都是炒,说不定,骂一骂,还把我书骂红了,大家说是不是,呵呵。

ok,第二个问题说完了,我们说第三个,学习。

学习不是阶段性任务,这个我已经很多博文说明了,相信你也看了。好的人生,应该是一生学习。因此,对于你说2010年上半年突击学习,我呢,既不赞成,也不反对。

不过,再次提醒,职场学习和学校学习不一样,学校里面,只要把书本K会了,考试拿100分,就ok,但是,社会上的学习,有个特点,叫做生活没有标准答案,因此,简单K书是不行的,要努力跟别人学,贴合自己的工作实际情况学,方能有好效果。

尤其忌讳的是,这山望着那山高。

其实,我这里也摆句话,大多数大学生,上大学,选专业,都是盲目的,你说是不是?

大家别不信啊,我考察过很多家庭为孩子上大学选专业的问题,几乎无一例外,都是当时什么专业热门学什么,计算机热,一下子多几百万IT学子,房地产热,学建筑的也不少,医生就不说了,人人都不想去医院,人人都想做医生,呵呵,赚钱多呗。

不过,大家反过来想想,这个社会每天都在变化,今天的热点,4年后不一定是热点,更不能保证这个孩子的一生都是热点,大家说对不对?

每个行业都有高潮和低谷,并且不断变化,如果想在大学入学时一锤子定音,恐怕赌中的概率,比中500万多不到哪去。因此,我一直强调,培养一个会学习,肯学习,能自己适应变化的人,比选个好专业更重要。

普通人如何抓住职场机遇


前些时日,手底下的实习生小林没能通过试用期,我不得不遗憾地请他交接工作。在这个“最难就业年”告诉他失去了这个机会,似乎很残酷。想当初他一人从天津过来也不易。但我们的工作需要不断接触新领域和面对不确定性,缺乏投入度和主动性很难走得远。

离开之前小林说,我可能会选择去支教两年,你是我进入职场的第一个师傅,我想听听你对我的反馈。我说,那我给你讲几个故事吧。

(一)

职高的第三年,小龙和班里三名学习优秀的同学一起被老师推荐到一家动漫公司实习。作为职高生这个机会并不容易,大家都很珍惜,打算好好干。不过进到公司才发现,自己所学根本不够用,只能处理些专业不对口的事务性工作。

小龙想,去别的地方可能离专业更远,就留下吧。尽管依然要做很多杂事,但他常常尽快完成任务,挤出时间向各组的动漫设计师求教,没多久那些最初不熟悉的工作内容和技术都了如指掌。

小龙工作的勤恳和主动,让他主管决定把一部新动画片的人物表情分类工作交给他。小龙全靠自己问同事、查资料、比较琢磨,在一个星期就完成了3000多个没有客观标准的表情细分工作。参与制作的设计师们无不欣赏。

半年后,其他三个同学先后离开,小龙拿到了盼望已久的合同。

小龙跟我打趣说:剩者为王!

(二)

毕业前夕,职高生小蓉接受了机场实习的机会,其他同学都因为留不了机场放弃了。小蓉在机场的工作很简单,每天就是在办公楼的一楼和三楼之间奔波,复印文 件,整理资料,处理各种琐事。她很快熟悉了工作内容,手脚麻利的她甚至还主动承担了她要接触部门诸如端茶倒水、打扫卫生以及充饭卡等“分外之事”。

没多久,这个主动热情的小姑娘就给大家留下了深刻印象。半年以后,她被自己的主管推荐去票务部应聘地勤,这是一个有编制的岗位。结局你一定猜到,对,小蓉成了第一个被招入机场的职高生。

事后她才知道,能从众多专业人员中脱颖而出,全赖实习部门领导和同事的大力推荐。作为家乡第一个进入机场工作的人,王蓉成了大家的骄傲。

这一年,她的同龄人才刚刚大一。

(三)

21岁对很多人来说正是踌躇满志的时光,而对于小杰却无比灰暗。大二的他意外失去了父亲,这迫使他只身来京打工。没有学历和背景的小杰只求得一份电话销售的工作。

开始并不容易,一个月下来业绩为零。那年年末因为没钱家都没回。小杰知道再这样下去自己就得走人了。于是他订了个计划,每天逼自己打够200个电话。面对 每天超过一半的拒接和责骂,小杰用每天的自我鼓励坚持,不几天嗓子就哑了。他的韧劲打动了经理和老销售,他们纷纷给他支招。

从那以后,小杰开始每天总结业绩好的同事的电话,记下自己通话超过2分钟的电话,慢慢摸索自己的方法……过年后的第一个季度,小杰第一次摘下了销售桂冠。而且他还成功地将一套内衣推销给了一位男士。一年时间,小杰完成了月薪从八百到一万的华丽转身。

去年冬天我去采访小杰,26岁的他,已是一家保健品公司的运营总监。

讲完故事,我跟小林说,先去一家企业好好历练自己,在职场站稳脚再考虑投身公益吧。两个月后,小林从南方发来短信:师傅,我被一家管理咨询公司录用了。

我知道小林体会到了故事背后的价值。

初入职场,机会不多,限制太多。但我们并非无能为力。前年我参与一项职场人物研究,有幸接触到三个故事的主人公。他们与我们大多数人一样学历一般,能力平平,没爹可拼。但如今他们已都是职场达人。当初受访的二十多位职场达人,分享故事的初衷就是希望用亲身经历激励刚刚步入职场的年轻人:我们无法掌控环境,但我们可以决定自己面对职场的态度。机会是自己给的!

“最难就业年”不可怕。只是,你别自己挥霍了并不多的机会。

程序员如何踏上社会[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]


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

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解决问题以前,你也要这么做。

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

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


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

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

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

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

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

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

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

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

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

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

不要做个普通的网管了


现在很多朋友都做是做网管,网管不过是企业IT部门里一个职业而已,不代表整个IT部门。大家老抱怨网管没前途啊,其实网管不过是IT部门最低层的,当然待遇不高,所以我们要提高认识,站在IT部门角度考虑问题。

首先IT部是什么部门,你网管是什么职业?肯定有人说是技术部门那就错了,如果在企业里你把IT部门当技术部门,首先你IT部门没前途,你可以换地方了,如果你把自己当技术人员,那你快换地方了,去专门的IT公司比较适合你。IT部门应该是管理部门,在企业里,特别是大企业里,必须靠管理才能达到目的,你技术再强,天天跟别部门屁股后面跑,早晚累死,公司有钱的就不断加人,导致IT部门臃肿不堪。公司扣点的,你就等着过劳死吧。

IT部门是新兴的部门,初期是会有不被重视等情况。但随着公司发展,信息系统的更新,IT部的重要性越发突出,其实这是个漫长的过程,特别在一些内资企业里是很普遍的。一开始IT部门是附属于别的部门下面,有的就没IT部,就几个网管。不过只是暂时的,只要公司还在发展,IT部门的重要性早晚会突显出来。比如我们公司,几年钱也不过就1个网管,几十电脑。但公司发展很快,现在成了集团公司,产值12个E,即将上市。IT部也发生了很大变化,有专门的管理维护部和开发部。我是负责管理维护的,就我1个人,管理公司将近300台电脑,15台服务器,监视系统,电话系统。以及各种采购和系统项目,肯定有人说那么工作量怎么也要个5,6个人吧。1个人不是天天加班到晚上???不过现在我还是天天8点上班,5点回家。大家想想我们IT部门作用是什么???修电脑吗?如果你这么想,那估计也就是修1辈子电脑的命了。IT部是公司的大脑,为公司做解决方按,优化系统流程,减少公司物资以及人力资源消耗的。是公司整个管理体系中很关键的1环。

有朋友就会说,现在网管都那么忙,一会这叫你,一会那叫你,哪有时间考虑那么多问题。是啊,公司里老有些人什么内部邮箱不能用拉,OFFICE不会用拉,中病毒拉我解决这种问题的方法是教他们自己解决,制作大量的教程和说明,同时培训其他部门里比较年轻的人学会基本IT知识。可能公司里最可怕的事就是中毒吧,我是购买了全套的企业防病毒,防灾系统以及服务,这钱不能省,特别象我们这种大公司。电脑损坏和中病毒其实大部门是公司员工自己不当心导致,毕竟公司电脑坏了无所谓。所以我们就要让他们明白电脑出了问题后果是很严重的。这里就涉及到个管理艺术问题了,呵呵,不好多说。反正让员工知道电脑坏了损失最大的就是他自己,他就会学会爱护电脑。总知一个原则,不要让琐碎的小事防碍你。

我们工作中会碰到很多问题,很多情况下解决了就好,但有时候要想想导致这问题的原因是什么,归根结底很多问题症结都是管理不善导致的。比如说病毒,病毒大部分都是通过网上进入公司,这就要严格控制员工上网,人人都说自己需要上网,但往往上网大部分都干和工作无关的事情。这就需要你有相应的判断能力,很多要上网都是说是工作需要,那你让他提供他所谓的工作需要的证明,当然相关的上网规定是必须指定的,这样才能更好的规范员工。

总之1个原则,IT部必须对公司电脑和周遍有绝对控制权,要绝对保证IT部对公司IT方面信息的畅通性。公司员工只能在公司电脑上做和工作有关的事,严格控制员工在电脑上的权限。最后希望大家都能最个快乐的网管,都有车开,都有房主,都有个美女老婆。

.Net程序员如何快速成长之我见[1]


在面试一些新程序员的时候,当问他为什么选择.net方向时,经常听到一些这样的回答:记得曾经我的老师对我们说,当你在开发语言和工具方面不知道怎么选择的时候,那么你只要跟着微软走就行了。所以最终他选择了.net。我想大家都曾有过类似的经历。当经历过数年之后,一些人在.net的某方面成为了专家,有些人精通数据库方面,有些人精通web界面设计,有些人精通系统架构。还有一些人是什么都会,但不管哪一方面都算不上精通。当然还有另一些人,他们没有选择.net,他们选择了java,在若干年之后,他们说:java程序系统比.net系统更稳定之类。既然大家都是.net阵营,暂且对他们不予讨论。

结合自己的亲身经历,对准备成为。net程序员和已经成为。net程序员的新人一些快速成长建议:

1.选择研究方向后不要动摇

对.net好还是java好的问题,我一向的观点是:它们都好,它们都是软件开发领域的杰出工具,它们都能够做出非常出色的系统。评价一个系统好与不好的标准不在于开发语言,而在于系统本身,更多地在于这个系统的开发者-程序员本身。只要你是一个出色的程序员,你完全可以用你擅长的开发语言开发出高质量的系统,而不管这种开发语言是.net还是java。而如果你过度地徘徊在研究它们到底谁更好的时候,甚至不断地在二者之间辗转的时候,你损失的将是宝贵的时间。

2.尽量缩小研究范围

.net只是一个大方向,你应尽量将自己的研究范围缩小,比如专注于数据库,专注于xml方面,专注于ajax,只要你专注任何一个区域深入研究,当你成为专家之后,都不会愁饭吃。反之如果你什么都会,而没有一样真正精通,那么你可能永远只能做一个普通程序员。

3.找到正确的入门方法

不管做什么事,方法很重要。特别是入门时的方法。正确的入门方法将大大加快你学习的进度。了解语言本身和前提技术是最先要做的事情,比如你选择c#方向的asp.net,那么你必须先学习c#基础语法,和asp.net基础知识,并实际写小程序测试你学习的成果。当学会基本语法后马上找到asp.net的官方入门指导。微软做得很好的一个地方就是他的帮助系统做得很好。新人容易入门,建议首先从入门教程开始,这个东西就在你的机子上,在Framework SDK的菜单里面。强烈建议把这个教程全部学会。

4.多看别人的成果(源代码)

这个很重要,如果你是一个团队的新成员,那么看他们写好的代码将是非常好的学习途径,因为那些都是成功的代码经验。如果你还没有加入团队,是自学,那么找一个好的学习网站,多看上面的源代码也是很好的方式。另外一个强烈推荐的途径:仔细研究微软的.net StarterKit,个人认为这是.net入门学习途中最大的收获。

5.敢于接受新项目挑战,敢于尝试

主动承担公司的开发任务,敢于在项目中尝试你最新的研究成果将对你自身技术水平提高带来非常大的帮助。记得当初我在做一个建站平台项目时有过这样的经历,之前公司开发的项目大都在原有技术积累下面用成型的框架做开发,那时我也正在学习asp.net,不过那个项目我是主程序员,因此在开发上有很大自主性。于是1.0时我尝试将所有用户文章保存在web服务器的xml文件里,而不是像传统项目那样保存在数据库里,以希望减少web服务器和db服务器之间的数据传输。结果1.0系统实际运行时确实达到了我的目的,虽然随着数据量的大量增加,最终导致了IO瓶颈。但通过后来对IO瓶颈的优化解决,我在文件系统、服务器进程、xml应用、代码规范和性能优化等方面学到了很多东西,倘若当初按原来的模式写程序,将错过学习这些知识的很好机会。

6.不断推翻自己,敢于重构

这是对程序质量的要求,我认为只有不断地优化和改造自己的程序代码,才能最终写出高质量的程序,做出高质量的系统,最终使自己的技术水平提高。通常我会把实现一个功能的代码量作为衡量代码质量的标准,代码越少,越精简,同时又具有良好的可读性,就越理想。重构需要几个前提:首先是项目时间允许,然后是确实找到更好的代码组织逻辑,如一种很好的结构模式,更合理的面向对象调用方式等等。只要找到更好的解决办法,那么勇敢地推翻原来的程序框架,重构它,经过不断地重构后,有一天你回过头去看之前自己写的程序时会有一个感叹:哇,怎么以前我的程序写的这么烂阿。

7.跟上技术更新的脚步

软件技术更新速度有时真的让人很郁闷,经常听人说,刚学会.net1.0,马上就出了1.1,1.1刚完成一两个项目,又出了2.0,用2.0不到一年已经出了3.5,但现实就是这样,你必须得跟上脚步,当使用asp.net的时候,你就不能再像以前用asp那样去写程序,当使用.net2.0的时候,你要敢于使用masterpage,skin去代替原来的usercontrol模式,原来的网站皮肤实现模式。而现在出3.5了,你必须马上学习vs2008,学习Silverlight。只有跟得上技术更新的步伐,你才永远保持自己的技术领先地位。

以上几点建议,希望能给一些新加入的.net程序员们一些参考。

IT程序员:如何化蛹为蝶?[1]


第三部分,未来职业生涯规划、家庭环境分析、例如经济状况,家人期望等。感谢您阅读《IT程序员:如何化蛹为蝶?[1]》内容,职场资讯网小编向您推荐一些职业规划知识,欢迎参考,希望能帮到你。

编者按:一个人的职业生涯不可能永远星辰闪耀。寻找明天的职业星途系列报道,就是想为那些职业生涯正走在星途上的人们,早早地点上几盏灯,让他们在星运尚未黯淡的时候,能够瞄准其中的一盏,用它继续照亮未来的职场人生。

寻找明天的职业星途

IT程序员:如何化蛹为蝶

高薪光环下的IT行业是众多年轻人的职业梦想,然而,身在其中的很多人却面临着职业的痛苦抉择。IT编程员被称为是IT业的蓝领,工作强度大,像个编码机器;技术更新换代快,竞争激烈,饭碗不稳定。随着年龄的增长,IT编程员该何去何从?

程序员Smith的困惑

32岁的Smith已经算是IT行业的元老了。大学时代的他,有2/3的时间是在校园微机房里度过的,当时,他疯狂地迷上了电脑。大学毕业后,Smith早早地被一家IT业著名的跨国公司录用,担任程序员。

刚进IT行业时,Smith真是有股火一般的热情,参与了不少项目,而且都成功了。公司对他也很器重,付给他的薪水在当时的同学中可算是天价。在后来的IT泡沫中,Smith的公司也还算是稳定。一晃8年过去了,Smith也曾换了两家公司,薪水越来越高,但他却越来越困惑。今年他已经32岁了,以前不觉得,但现在,他感觉程序员的工作强度非常大,一直处于超负荷运转,工作状态就一个字:累。况且,由于这一行的特殊性,从业者必须不断地学习。32岁的程序员虽然技术老到,但毕竟在学习能力、反应速度、工作效率上渐渐地开始和年轻人有差距,Smith觉得后生可畏,感觉自己的 竞争力在缩水。

何况,现在IT业不比以往,面对大量廉价的职场新人,老板不仅可以挑肥拣瘦,还可以随时让薪水已涨到一定水平的老人走人。Smith的同事Tom就是这样被公司请走的。Smith担心什么时候裁员的大棒就要挥到自己的头上。虽然目前薪水不低,但天下没有白吃的午餐,得到的多付出也就更多。而且业界还有这样的传统,过了35岁,IT编程员就有转岗的可能。未来该何去何从,Smith深感困惑。

程序员的时空定理[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]


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

以上《普通人不普通事 普通程序员如何走出困境[1]》一文,由编辑精心撰写而成,希望对您的职业规划有所帮助,更多精彩请访问“普通求职技巧”专题!