软件开发程序员加班猝死,有那么苦吗?听说没日没夜的就是学习和加班。既然这么苦,怎么还有那么多人学

你的位置: >
> 一个不写代码的程序员之路
20多年前我就开始写代码,很喜欢写代码,直到现在为止仍然热度不减!人生总是会和你开点小玩笑,我在多年之前走上了”非程序员“之路。我觉得无论你将来是否继续走技术路线,你的程序员经历将为你打下雄厚的基础。本文为你分享我的一些心得,为你分享一些程序员也应该掌握的”非程序员“技能,希望对你有帮助。
什么是”非程序员“?
什么是程序员?这应该不用解释了。所以”非程序员“就很容易解释了,只要你从事的是IT类工作,但又不是写代码的,你就是”非程序员“!
”非程序员“常见的职位有:项目经理、产品经理、测试工程师、配置管理员、实施工程师、SQA等;除此以外还有部门经理、副总、总经理、老板!
按照时间顺序,我做过的职位有:程序员、项目经理、研发中心经理、副总经理、常务副总,后来我创业了,所以老板我也当了一回!(PS:我这个老板是光棍司令)
我的程序员之路
如果我问你:你写过代码吗?
你肯定会说:写过,而且还写了很多!
请你留意,我说的是”写“代码,而不是”敲“代码噢。
我的运气比较好,高中一年级的时候学校就开课《BASIC语言》这门课。当时电脑是很稀缺的资源,家里没有计算机,虽然学校有计算机房,但上机的时间并不多。当时我编写程序的方式就是用笔在练习本上写代码,调试程序的方法就是在脑袋里面运行这个程序。平时我写下大量的代码在练习本上,非常珍惜上机时间,想榨干在电脑房中的每一秒中。虽然当时我的大部分时间是在练习本上写代码,在脑袋中运行,但就是因为这样的编程方式打造了我的编程基本功和素养。
我对计算机编程的强烈兴趣,驱使我报考大学时的第一志愿就是计算机软件,但我的高考成绩不理想,只考上了第二志愿……
我大学读的是”城镇建设“专业。这是一个”伟大“的专业,我们的系主任说:这个专业是用来培养建委主任的(现在叫建设局局长)!当时我们兴奋和自我陶醉了一翻,结果毕业时我们没有人能找到”建委主任‘的工作,直到现在好像也没有同学坐上了这个岗位。
大学毕业后我在某事业单位从事市政方面的工作,但我很快憋不住,我找到了一份新工作,在某软件公司做程序员,开发建筑预算方面的软件,正式开始了我的程序员的生涯。接着下来的5年时间,我写下了大量代码。当时整个公司13个,其中程序员4人,但作为程序员的我除了写代码,还需要自己分析需求,自己测试自己的软件,自己管理自己等。这样的工作模式,让我得到全面的锻炼。
我的非程序员之路
公司规模不断扩大,开发人员的数量增加了不少,后来做的项目一般都会配备几名程序员和一名测试,而我“理所当然”地当上了项目经理。最开始做项目经理的时候,还可以写一些代码,后来要花更多的时间处理需求、客户关系、项目管理、团队建设等事情,基本上没有时间去写代码了。
不多久,公司打算将我推向“研发中心经理”的职位,这是一个莫大的诱惑!刚接任研发中心经理一职,还期望能有一半时间来研究技术,实际上这是不可能滴。后来我还先后负责了ISO9001、CMM3级和CMMI5级的工作。
我从心里面其实是更喜欢走技术路线的,当初选择了管理路线让我踏上了“不归路”。我原本在技术上有很多“第一”:公司中编程最熟练的第一人,第一个最熟悉C#,第一个最熟悉SQLServer等等,多年所从事的“非程序员”工作虽然让我掌握了不少新技能,但同时也在技术上“废掉”了我的武功。
如果上天再给我一次机会,我会不会仍然选择这样的 一条路呢?
世界上没有这么多如果,我们只能做到总结以前,把握现在,面向未来。
上文简介了我的经历,下面开始为分享一些我的心得体会,无论你是否打算继续走技术之路,希望对你能有帮助。
关于程序员的几个误区
1.)30岁不能再干程序员
当年不知道谁说程序员不适合干到30岁,因为人脑越老越不适应这样的工作,程序员要趁30岁前做好转型的准备。我当做了研发中心经理,选择了管理路线,其中一部分原因就是受这个“30岁不能再干程序员”的影响!
国外四五十岁的程序员很多,人家写的代码越老越牛B,脑袋的思考能力完全不见到减退,反而越发厉害,所以”30岁不能再干程序员”就是一句坑爹的话!
当然这句话在中国说是有背景的,那就是程序员没日没夜的加班,如果是这样的状态,当然是很难挨到30岁的。所以我们要保护好自己的身体资源,特别是脑袋,记住两句话:
a)加班有害健康!
b)工作是公司的,身体是自己的!
2)程序员 = 码农
一些外行领导认为程序员就是一种低技术含量的工种,随便在街上可以抓一把,你不干还有很多人干!就算是我们程序员本身,也将自己自嘲为“码农”。
程序员是高技术含量的工种,如果你掌握了核心技术,你是相当值钱的!但是在我们中国高技术含量项目或软件太少了,所以如果你连续几个月觉得自己技术上没有什么进步的话,你要想办法找一些更有挑战的工作了。
3)掌握的开发语言越多越潮就越好
开发语言不在多,在于精!对于编程老手来说,掌握一门开发语言的语法可能只需要几天的时间,但编程的素养和深厚的编程功力是需要多年沉淀的。
我刚学会我的第一种开发语言BASIC,自认为感觉良好,自以为凭借自己小聪明就能运用BASIC写出很强大的程序。后来参加了程序员兴趣小组学习班,系统地学习了一些算法,才发现自己是井底之蛙。刚开始工作的几年开发语言用的是VB,还学习了一些设计模式,自以为自己很OO,后来随着工作经验的积累和遇到不同的问题,才发现自己是多么的肤浅。
编程基本功需要在学校阶段就打造,并且要让自己爱上编程。除了要认真完成所有编程课程的课后作业、练习和课程设计外,你自己还要尝试去挑战一些高技术难度的题目。
给几个题目你参考一下:
a)写一个五子棋(或象棋)之类的程序。
b)写一个画UML图的程序。
c)写一个视频播放程序,要自己写解码器。
自己独立完成需求、设计、实现和测试等全部工作。
程序员应该掌握的几个非程序员技能
程序员不仅要学习技术,也需要掌握一些“非程序员”的技能,这些技能能帮助你开阔视野,加速你的成功!
1)需求分析能力
2)活用UML分析及解决问题的能力
3)软件测试能力
4)项目管理基本知识
5)口头表达能力和书面表达能力
6)团队协作能力
以上知识不能只看书本,更关键是实际操练,操练的最有效办法就是:自己独立完成一个软件的所有工作;当自己具备一定基础后,就和几个同学或朋友去挑战更高难度和复杂度的软件项目。
职场上的一些小建议
1)想清楚自己想干什么。
星爷说过:人生没有理想,和一条咸鱼没有什么分别!
人生能有多少个十年,要尽早发现自己想干什么,并要尽早做好通盘规划。
2)多为自己着想,不要太过顾全大局。
读大学时,老师给我的评价是:综合素质和能力很强。工作后,老板给我的评价也是这样。但这样的评价,可能会带来杯具的事情……
因为我综合素质和能力强,所以在安排工作的时候,别人都可以挑一些他喜欢或他擅长的事情做,而我因为是“全能”的,所以我要去干一些别人不喜欢或不擅长的事情。我曾经试过好多次将自己想研究的技术点让给别人,久而久之我就失去了很多掌握高精尖技术的机会。至今为止我在技术上的一个最大遗憾就是,没有能精通C++编程,我曾经有机会和有条件去开发C++的绘图程序的,但我让给别人了……
“人不为己天诛地灭”这句话很有道理,当然不是要你去自私自利,但也不能太过于“大公无私”,根据自己的发展路线,要主动去争取一些能提升你的技能的机会。
3)不要说少多做,要多说多做。
“少说多做”被誉为一种美德,但每个公司都会有办公室政治,少说多做会让你吃大亏,你需要的是多说多做!除了要干好事情,也需要让你的老板、同事及时知道你的工作成绩。成功人士不仅仅是靠实力的,还需要包装和宣传。
4)精通技术能帮你创业,精通管理可能只能帮你找到好工作。
大学毕业之前,我的职业规划是这样的:争取几年内达到月入过万,然后争取5年左右的时间能通过打工积累一点点的钱和技术,然后通过自己的技术去创业。可能很多程序员都有这样的类似想法。
我曾经试过两次创业:
第一次创业:我打工的同时和一些朋友合伙成立一个公司,我负责开发软件,我的合作伙伴负责市场方面的工作。但最终还是失败了。
第二次创业:从2010年开始我辞职出来单干,全职做软件研发方面的咨询和培训服务。目前正在进行中……
如果你技术足够牛B,能找到合适的合作伙伴,并且能找到投资人,那么成功的机会是很大的!有技术你就有创业的本钱。
我第二次创业就比较尴尬了,当时我已经干了很多年的管理工作,技术上已经被废武功,我的去路可能只有两个选择:
a)找一个新公司任职管理层的职位;
b)创业搞咨询和培训方面的事情。
我不想再打工,所以选择了b),但搞培训和咨询其实是很难做大的,每次上课其实都是体力活+脑力活。
这与我多年前的梦想是完全不一样的,我期待自己的公司具备核心技术,并且这个核心技术能为社会带来很大价值,公司能通过这样的模式赚到很多钱。
每个人都会有自己成长之路,每位企业家都会有自己的创业之路。
我走了不少弯路,本文分享一些小心得,希望能对你有一点点小帮助。
文:张传波
与本文相关的文章(转贴)一个老程序员的心里话。。。。。
编辑:www.fx114.net
本篇文章主要介绍了"(转贴)一个老程序员的心里话。。。。。",主要涉及到(转贴)一个老程序员的心里话。。。。。方面的内容,对于(转贴)一个老程序员的心里话。。。。。感兴趣的同学可以参考一下。
我现在是自己做,但我此前有多年在从事软件开发工作,当回过头来想一想自己,觉得特别想对那些初学JAVA/DOT。NET技术的朋友说点心里话,希望你们能从我们的体会中,多少受点启发(也许我说的不好,你不赞同但看在我真心的份上别扔砖头啊). &一。 在中国你千万不要因为学习技术就可以换来稳定的生活和高的薪水待遇,你千万更不要认为哪些从事 市场开发,跑腿的人,没有前途。
不知道你是不是知道,咱们中国有相当大的一部分软件公司,他们的软件开
发团队都小的可怜,甚至只有1-3个人,连一个项目小组都算不上,而这样
的团队却要承担一个软件公司所有的软件开发任务,在软件上线和开发的关
键阶段需要团队的成员没日没夜的加班,还需要为测试出的BUG和不能按时 提交的软件模块功能而心怀忐忑,有的时候如果你不幸加入现场开发的团队 你则需要背井离乡告别你的女友,进行封闭开发,你平时除了编码之外就是 吃饭和睡觉(有钱的公司甚至请个保姆为你做饭,以让你节省出更多的时 间来投入到工作中,让你一直在那种累了就休息,不累就立即工作的状态) 更可怕的是,会让你接触的人际关系非常单一,除了有限的技术人员之外 你几乎见不到做其他行业工作和职位的人,你的朋友圈子小且单一,甚至破坏 你原有的爱情(想象一下,你在外地做现场开发2个月以上,却从没跟 女友见过一面的话,你的女友是不是会对你呲牙裂嘴)。 也许你拿到了所谓的白领的工资,但你却从此失去享受生活的自由,如果你想 做技术人员尤其是开发人员,我想你很快就会理解,你多么想在一个地方长 期待一段时间,认识一些朋友,多一些生活时间的愿望。 比之于我们的生活和人际关系及工作,那些从事售前和市场开发的朋友,却 有比我们多的多的工作之外的时间,甚至他们工作的时间有的时候是和生活 的时间是可以兼顾的,他们可以通过市场开发,认识各个行业的人士,可以 认识各种各样的朋友,他们比我们坦率说更有发财和发展的机会,只要他们 跟我们一样勤奋。(有一种勤奋的普通人,如果给他换个地方,他马上会 成为一个勤奋且出众的人。)
二。在学习技术的时候千万不要认为如果做到技术最强,就可以成为100%受尊重的人。
有一次一个人在面试项目经理的时候说了这么一段话:我只用最听话 的人,按照我的要求做只要是听话就要,如果不听话不管他技术再好也不要 。随后这个人得到了试用机会,如果没意外的话,他一定会是下一个项目 经理的继任者。 朋友们你知道吗?不管你技术有多强,你也不可能自由的腾出时间象别人 那样研究一下LINUX源码,甚至写一个LINUX样的杰作来表现你的才能。 你需要做的就是按照要求写代码,写代码的含义就是都规定好,你按照规定 写,你很快就会发现你昨天写的代码,跟今天写的代码有很多类似,等你写 过一段时间的代码,你将领略:复制,拷贝,粘贴那样的技术对你来说是何 等重要。(如果你没有做过1年以上的真正意义上的开发不要反驳我)。 如果你幸运的能够听到市场人员的谈话,或是领导们的谈话,你会隐约觉得 他们都在把技术人员当作编码的机器来看,你的价值并没有你想象的那么 重要。而在你所在的团队内部,你可能正在为一个技术问题的讨论再跟同事 搞内耗,因为他不服你,你也不服他,你们都认为自己的对,其实你们两个 都对,而争论的目的就是为了在关键场合证明一下自己比对方技术好,比 对方强。(在一个项目开发中,没有人愿意长期听别人的,总想换个位置 领导别人。)
三。你更不要认为,如果我技术够好,我就自己创业,自己有创业的资本,因为自己是搞技术的。
如果你那样认为,真的是大错特错了,你可以做个调查在非技术人群中,没有几个人知道 C#与JAVA的,更谈不上来欣赏你的技术是好还是不好。 一句话,技术仅仅是一个工具,善于运用这个工具为别人干活的人,却往往不太擅长用这 个工具来为自己创业,因为这是两个概念,训练的技能也是完全不同的。
创业最开始的时候,你的人际关系,你处理人际关系的能力,你对社会潜规则的认识,还有 你明白不明白别人的心,你会不会说让人喜欢的话,还有你对自己所提供的服务的策划和 推销等等,也许有一万,一百万个值得我们重视的问题,但你会发现技术却很少有可能包含 在这一万或一百万之内,如果你创业到了一个快成功的阶段,你会这样告诉自己:我干吗要 亲自做技术,我聘一个人不就行了,这时候你才真正会理解技术的作用,和你以前做技术人员 的作用。
基于上面的讨论,我奉劝那些学习技术的朋友,千万不要拿科举考试样的心态去学习技术,对技术 的学习几近的痴迷,想掌握所有所有的技术,以让自己成为技术领域的权威和专家,以在必要的时候 或是心里不畅快的时候到网上对着菜鸟说自己是前辈。 技术仅仅是一个工具,是你在人生一个阶段生存的工具,你可以一辈子喜欢他,但最好不要一辈子 靠它生存。
掌握技术的唯一目的就是拿它找工作(如果你不想把技术当作你第二生命的话),就是干活。所以你在学习的时候千万不要去做那些所谓的技术习题或是研究那些帽泡算法,最大数算法了,什么叫干活? 就是做一个东西让别人用,别人用了,可以提高他们的工作效率,想象吧,你做1万道技术习题 有什么用?只会让人觉得酸腐,还是在学习的时候,多培养些自己务实的态度吧,比如研究一下当地市场 目前有哪些软件公司用人,自己离他们的要求到底有多远,自己具体应该怎么做才可以达到他们的要求。 等你分析完这些,你就会发现,找工作成功,技术的贡献率其实并没有你原来想象的那么高。
不管你是学习技术为了找工作还是创业,你都要对技术本身有个清醒的认识,在中国不会出现BILL GATES,因为,中国目前还不是十分的尊重技术人才,还仅仅的停留在把软件技术人才当作人才机器来用的 尴尬境地。(如果你不理解,一种可能是你目前仅仅从事过技术工作,你的朋友圈子里技术类的朋友占了大多数,一种可能是你还没有工作,但喜欢读比尔。盖茨的传记)。 &
本文标题:
本页链接:为什么程序员充满了抱怨,还是国内所有行业都一样.
[问题点数:20分,结帖人a]
为什么程序员充满了抱怨,还是国内所有行业都一样.
[问题点数:20分,结帖人a]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关推荐:
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
2012年12月 移动平台大版内专家分月排行榜第三
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。中国大部分程序员的通病
阅读:1010次&&&时间: 00:00:00&&
中国大部分程序员的通病&&&&&& 出处&&&&
& &&& 中国的大部分程序员都有一个通病不知大家有没有感觉到:眼高,手低,知识面宽,深度浅;有自己的理想和目标,但实施的决心太小,还总闲工资太少,觉得老板太扣。于是总是“跳呀跳”。(也许会让一些人骂,骂就骂吧,不过这是事实,当然,我说的那些程序员,是指一些人,不是所有的程序员们,由其是那些为中国软件产业做出贡献的人们,我感谢他们)。&&& 人说,到国外作软件,中国的程序员最吃香,由其在国内干了几年的。为什么?中国的程序员懂得很多很多,而且,很能吃苦,在下班后还在学习和工作(当然,加班要给加班工资的),还可以节省培训费用(每天都在自我培训------不停的学习),能创造较大的利润空间。&&& 为什么,同样是中国的程序员,在国内就不行呢?&&& 有社会方面的原因,也有中国国情和长期形成的一种人才应用的问题。但最大的问题还是在程序员们。&&& 君不见,国内的程序员们,在工作时间内,有多少时间给了工作(当然,我说的工作,不是人在单位就算工作,而是真正的工作,在为单位创造利润和价值。)。做程序员本身工作压力就大,这不假,但在国外工作的程序员的压力又有谁能体会呢,他们的工资是高一些,但他们的工作压力和工作时要有的工作效率,要比国内大几倍,甚至说大几十倍,都不算夸张的。&&& 如果国内的程序员们,同样。也拿出与国外工作的程序员一样的精力和职业态度,那中国的软件帝国也会升起的。&&& 我在国外工作的一个朋友说:他们每天上班时间,几乎没有说闲话的工夫;下班后为项目还要学习新东西。想学点自己的东西,没那时间。老外就是,一分钱要产生一分钱的效益。给你十元钱的工资,你就不能只做九元钱的活。想换工作,那你就得先辞职,才有时间去找新工作。&&& 听了他的话,我们国内又是个什么情况?我们都身临其境,不用我说,大家心里都明白着呢!!!&&& 眼高,手低。都觉得自己是块料,都想做项目经理级的人物,都觉得自己可以做系统分析员,那程序谁来编。都觉得自己很“牛”。可象牛一样不记得失,肯塌心做事的人有几个。牛“牛气”是有本钱的,他们吃的是草,流出来的可是最有营养的“奶”,干的可是最累的活。你做了吗?你有这些本钱吗?如果你有,你可以“牛气、牛气”,没有人说你的。&&& 我曾经,也是一个这样的人。牛,牛得很。可做了六七年IT,也没有做出点自己的东西,有什么可牛的。有什么理由,把眼珠放到头顶上去呢。充其量,也就是对别人做出的东西,用的比另一些人熟练而已;接触的东西比一些人多一些而已;别人不能解决的问题,我能解决而已;用别人做出的东西为某些人服务了一下而已。现在,吃得比别人好,喝的比别强,在公司里,老板说话也要看三分。可我又做出了点什么让自己满意的东西?没有。“没有”,就没有什么可牛的。&&& 现在,我想通了,看透了。我也要让自己有“牛气”的资本。&&& 上面的东西,只是我个人的一点看法,说话没有把门的,如果触着那位的“心”了,请原谅,我非有心的。我只是想让大家实实在在的干点儿事。但也不是说,人人都去做研究。研究出来了,还得有人用吧。现在讲的就是服务,那就好好用别人的东西为人民服务吧!这也是一种幸福。你会在为别人服务中,体会到你的价值和生活的意义的。&对该文的评论& &&&&& chinaeagle( 9:02:48)& 给浮躁的软件业同仁& wokwok& 发表于
20:58:40& --------------------------------------------------------------------------------中国有很多小朋友,他们18,9岁或21,2岁,通过自学也写了不少代码,他们有的代码写的很漂亮,一些技术细节相当出众,也很有钻研精神,但是他们被一些错误的认识和观点左右,缺乏对系统,对程序的整体理解能力,这些人,一个网上的朋友说得很好,他们实际fans,压根没有资格称为程序员,但是据我所知,不少小网络公司的Cfans,拿着吓人的工资,做着吓人的项目,项目的结局通常也很吓人。程序员基本素质:作一个真正合格的程序员,或者说就是可以真正合格完成一些代码工作的程序员,应该具有的素质。1:团队精神和协作能力把它作为基本素质,并不是不重要,恰恰相反,这是程序员应该具备的最基本的,也是最重要的安身立命之本。把高水平程序员说成独行侠的都是在呓语,任何个人的力量都是有限的,即便如linus这样的天才,也需要通过组成强大的团队来创造奇迹,那些遍布全球的为linux写核心的高手们,没有协作精神是不可想象的。独行侠可以作一些赚钱的小软件发点小财,但是一旦进入一些大系统的研发团队,进入商业化和产品化的开发任务,缺乏这种素质的人就完全不合格了。2:文档习惯说高水平程序员从来不写文档的肯定是乳臭未干的毛孩子,良好的文档是正规研发流程中非常重要的环节,作为代码程序员,30%的工作时间写技术文档是很正常的,而作为高级程序员和系统分析员,这个比例还要高很多。缺乏文档,一个软件系统就缺乏生命力,在未来的查错,升级以及模块的复用时就都会遇到极大的麻烦。3:规范化,标准化的代码编写习惯作为一些外国知名软件公司的规矩,代码的变量命名,代码内注释格式,甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同技术人员之间的协作。fans叫嚣高水平程序员写的代码旁人从来看不懂,这种叫嚣只能证明他们自己压根不配自称程序员。代码具有良好的可读性,是程序员基本的素质需求。再看看整个linux的搭建,没有规范化和标准化的代码习惯,全球的研发协作是绝对不可想象的。4:需求理解能力程序员需要理解一个模块的需求,很多小朋友写程序往往只关注一个功能需求,他们把性能指标全部归结到硬件,操作系统和开发环境上,而忽视了本身代码的性能考虑,有人曾经放言说写一个广 告交换程序很简单,这种人从来不知道在百万甚至千万数量级的访问情况下的性能指标是如何实现的,对于这样的程序员,你给他深蓝那套系统,他也做不出太极链的并访能力。性能需求指标中,稳定性,并访支撑能力以及安全性都很重要,作为程序员需要评估该模块在系统运营中所处的环境,将要受到的负荷压力以及各种潜在的危险和恶意攻击的可能性。就这一点,一个成熟的程序员至少需要2到3年的项目研发和跟踪经验才有可能有心得。5:复用性,模块化思维能力经常可以听到一些程序员有这样的抱怨,写了几年程序,变成了熟练工,每天都是重复写一些没有任何新意的代码,这其实是中国软件人才最大浪费的地方,一些重复性工作变成了熟练程序员的主要工作,而这些,其实是完全可以避免的。复用性设计,模块化思维就是要程序员在完成任何一个功能模块或函数的时候,要多想一些,不要局限在完成当前任务的简单思路上,想想看该模块是否可以脱离这个系统存在,是否可以通过简单的修改参数的方式在其他系统和应用环境下直接引用,这样就能极大避免重复性的开发工作,如果一个软件研发单位和工作组能够在每一次研发过程中都考虑到这些问题,那么程序员就不会在重复性的工作中耽误太多时间,就会有更多时间和精力投入到创新的代码工作中去。一些好的程序模块代码,即便是70年代写成的,拿到现在放到一些系统里面作为功能模块都能适合的很好,而现在我看到的是,很多小公司软件一升级或改进就动辄全部代码重写,大部分重复性工作无谓的浪费了时间和精力。6:测试习惯作为一些商业化正规化的开发而言,专职的测试工程师是不可少的,但是并不是说有了专职的测试工程师程序员就可以不进行自测;软件研发作为一项工程而言,一个很重要的特点就是问题发现的越早,解决的代价就越低,程序员在每段代码,每个子模块完成后进行认真的测试,就可以尽量将一些潜在的问题最早的发现和解决,这样对整体系统建设的效率和可靠性就有了最大的保证。测试工作实际上需要考虑两方面,一方面是正常调用的测试,也就是看程序是否能在正常调用下完成基本功能,这是最基本的测试职责,可惜在很多公司这成了唯一的测试任务,实际上还差的远那;第二方面就是异常调用的测试,比如高压力负荷下的稳定性测试,用户潜在的异常输入情况下的测试,整体系统局部故障情况下该模块受影响状况的测试,频发的异常请求阻塞资源时的模块稳定测试等等。当然并不是程序员要对自己的每段代码都需要进行这种完整测试,但是程序员必须清醒认识自己的代码任务在整体项目中的地位和各种性能需求,有针对性的进行相关测试并尽早发现和解决问题,当然这需要上面提到需求理解能力。7:学习和总结的能力程序员是人才很容易被淘汰,很容易落伍的职业,因为一种技术可能仅仅在三两年内具有领先性,程序员如果想安身立命,就必须不断跟进新的技术,学习新的技能。善于学习,对于任何职业而言,都是前进所必需的动力,对于程序员,这种要求就更加高了。但是学习也要找对目标,一些小coding有些codingTO就是这样的coding上只是一些Cfans们,他们也津津乐道于他们的学习能力,一会学会了asp,一会儿学会了php,一会儿学会了jsp,他们把这个作为炫耀的资本,盲目的追逐一些肤浅的,表面的东西和名词,做网络程序不懂通讯传输协议,做应用程序不懂中断向量处理,这样的技术人员,不管掌握了多少所谓的新语言,永远不会有质的提高。善于总结,也是学习能力的一种体现,每次完 成一个研发任务,完成一段代码,都应当有目的的跟踪该程序的应用状况和用户反馈,随时总结,找到自己的不足,这样逐步提高,一个程序员才可能成长起来。一个不具备成长性的程序员,即便眼前看是个高手,建议也不要选用,因为他落伍的时候马上就到了。具备以上全部素质的人,应当说是够格的程序员了,请注意以上的各种素质都不是由IQ决定的,也不是大学某些课本里可以学习到的,需要的仅仅是程序员对自己工作的认识,是一种意识上的问题。那么作为高级程序员,以至于系统分析员,也就是对于一个程序项目的设计者而言,除了应该具备上述全部素质之外,还需要具备以下素质:第一,需求分析能力对于程序员而言,理解需求就可以完成合格的代码,但是对于研发项目的组织和管理者,他们不但要理解客户需求,更多时候还要自行制定一些需求,为什么这么说呢?一般而言,进行研发任务,也许是客户提出需求,也许是市场和营销部门提出的需求,这时候对于研发部门,他们看到的不是一个完整的需求,通常而言,该需求仅仅是一些功能上的要求,或者更正规些,可能获得一个完整的用户视图;但是这都不够,因为客户由于非技术因素多一些,他们可能很难提出完整和清晰,或者说专业性的性能需求,但是对于项目组织者和规划者,他必须能够清醒认识到这些需求的存在并在完成 需求分析报告的时候适当的提出,同时要完整和清晰的体现在设计说明书里面,以便于程序员编码时不会失去这些准则。程序设计者必须正确理解用户需求所处的环境,并针对性做出需求的分析,举例而言,同样一个软件通过ASP租用方式发布和通过License方式发布,性能需求可能就是有区别的,前者强调的是更好的支撑能力和稳定性,而后者则可能更强调在各种平台下的普适性和安装使用的简捷性。第二,项目设计方法和流程处理能力程序设计者必须能够掌握不少于两到三种的项目设计方法(比如自顶至下的设计方法,比如快速原型法等等),并能够根据项目需求和资源搭配来选择合适的设计方法进行项 目的整体设计。设计方法上选择不当,就会耽误研发周期,浪费研发资源,甚至影响研发效果。一个程序设计者还需要把很多功夫用在流程图的设计和处理上,他需要做数据流图以确立数据词典;他需要加工逻辑流图以形成整体的系统处理流程。一个流程有问题的系统,就算代码多漂亮,每个模块多精致,也不会成为一个好的系统。当然,做好流程分析并选择好项目设计方法,都需要在需求分析能力上具有足够的把握。第三,复用设计和模块化分解能力这个似乎又是老调重谈,前面基本素质上不是已经说明了这个问题吗?作为一个从事模块任务的程序员,他需要对他所面对的特定功能模块的 复用性进行考虑,而作为一个系统分析人员,他要面对的问题复杂的多,需要对整体系统按照一种模块化的分析能力分解为很多可复用的功能模块和函数,并针对每一模块形成一个独立的设计需求。举个例子,好比是汽车生产,最早每辆汽车都是独立安装的,每个部件都是量身定做的,但是后来不一样了,机器化大生产了,一个汽车厂开始通过流水线来生产汽车,独立部件开始具有一定的复用性,在后来标准化成为大趋势,不同型号,品牌甚至不同厂商的汽车部件也可以进行方便的换装和升级,这时候,汽车生产的效率达到最大化。软件工程也是同样的道理,一个成熟的软件行业,在一些相关项目和系统中,不同的部件是可以随意换装的,比如微软的许多桌面软件,在很多操作模块(如打开文件,保存文件等等)都是复用的同一套功能模块,而这些接口又通过一些类库提供给了桌面应用程序开发者方便挂接,这就是复用化的模块设计明显的一个佐证。将一个大型的,错综复杂的应用系统分解成一些相对独立的,具有高度复用性的,并能仅仅依靠几个参数完成数据联系的模块组合,是作为高级程序员和系统分析员一项最重要的工作,合适的项目设计方法,清晰的流程图,是实现这一目标的重要保证。第四,整体项目评估能力作为系统设计人员,必须能够从全局出发,对项目又整体的清醒认识,比如公司的资源配置是否合理和到位,比如工程进度安排是否能最大化体现效率又不至于无法按期完成。评估项 目整体和各个模块的工作量,评估项目所需的资源,评估项目可能遇到的困难,都需要大量的经验积累,换言之,这是一种不断总结的累计才能达到的境界。在西方一些软件系统设计的带头人都是很年长的,比如4,50岁,甚至更老,他们在编码方面已经远远不如年轻人那样活络,但是就项目评估而言,他们几十年的经验积累就是最重要和宝贵的财富。中国缺这么一代程序员,主要还不是缺那种年纪的程序员,而是那种年纪的程序员基本上都是研究单位作出来的,都不是从专业的产品化软件研发作出来的,他们没有能积累那种产品化研发的经验,这也是没有办法的事情。第五,团队组织管理能力完成一个项目工程,需要团队的齐心协力,作为项目设计者或研发的主管人,就应当有能力最大化发挥团队的整体力量,技术管理由于其专业性质,不大同于一般的人事管理,因为这里面设计了一些技术性的指标和因素。首先是工作的量化,没有量化就很难做到合适的绩效考核,而程序量化又不是简单的代码行数可以计算的,因此要求技术管理人员需要能真正评估一个模块的复杂性和工作量。其次是对团队协作模式的调整,一般而言,程序开发的协作通常分为小组进行,小组有主程序员方式的,也有民主方式的,根据程序员之间的能力水平差距,以及根据项目研发的需求,选择合适的组队方式,并能将责权和成员的工作任务紧密结合,这样才能最大发挥组队的效率。一个代码水平高的人,未必能成为一个合格的项目研发主管,这方面的能力欠缺往往是容易被忽视的。综上可以看到,作为一个主管研发的负责人,一个项目设计者,所需要具备的素质和能力并不是程序代码编写的能力,当然一般情况下,一个程序员通过不断的总结提高达到了这种素质的时候,他所具有的代码编写能力也已经相当不简单了,但是请注意这里面的因果关系,一个高水平的项目设计者通常已经是代码编写相当优秀的人了,但是并不是一个代码相当优秀的程序员就可以胜任项目设计的工作,这里面存在的也不是智商和课本的问题,还是在于一个程序员在积累经验,逐步提升的时候没有意识到应当思考哪方面的东西,没有有意识的就项目的组织和复用设计进行揣摩,没有经常性的文档习惯和总结习惯, 不改变这些,我们的合格的项目设计者还是非常欠缺。另外,为防止有无聊的人和我较真,补充一点,本文针对目标是作商业化的软件项目和工程,那些科研机构的编程高手,比如算法高手,比如图象处理高手,他们的工作是研究课题而非直接完成商业软件(当然最终间接成为商业产品,比如微软研究院在作的研究课题),因此他们强调的素质可能是另外的东西,这些人(专家),并不能说是程序员,不能用程序员的标准去衡量。最后补充一点东西,一个软件项目研发的设计流程是怎样的呢?以通常标准的设计方法为例,(不过笔者喜欢快速原型法)。第一个步骤是市场调研,技术和市场要结合才能体现最大价值。第二个步骤是需求分析,这个阶段需要出三样东西,用户视图,数据词典和用户操作手册。用户视图是该软件用户(包括终端用户和管理用户)所能看到的页面样式,这里面包含了很多操作方面的流程和条件。数据词典是指明数据逻辑关系并加以整理的东东,完成了数据词典,数据库的设计就完成了一半多。用户操作手册是指明了操作流程的说明书。请注意,用户操作流程和用户视图是由需求决定的,因此应该在软件设计之前完成,完成这些,就为程序研发提供了约束和准绳,很遗憾太多公司都不是这样做的,因果颠倒,顺序不分,开发工作和实际需求往往因此 产生隔阂脱节的现象。需求分析,除了以上工作,笔者以为作为项目设计者应当完整的做出项目的性能需求说明书,因为往往性能需求只有懂技术的人才可能理解,这就需要技术专家和需求方(客户或公司市场部门)能够有真正的沟通和了解。第三个步骤是概要设计,将系统功能模块初步划分,并给出合理的研发流程和资源要求。作为快速原型设计方法,完成概要设计就可以进入编码阶段了,通常采用这种方法是因为涉及的研发任务属于新领域,技术主管人员一上来无法给出明确的详细设计说明书,但是并不是说详细设计说明书不重要,事实上快速原型法在完成原型代码后,根据评测结果和经验教训的总结,还要重新进行详细设计的步骤。第四个步骤是详细设计,这是考验技术专家设计思维的重 要关卡,详细设计说明书应当把具体的模块以最‘干净’的方式(黑箱结构)提供给编码者,使得系统整体模块化达到最大;一份好的详细设计说明书,可以使编码的复杂性减低到最低,实际上,严格的讲详细设计说明书应当把每个函数的每个参数的定义都精精细细的提供出来,从需求分析到概要设计到完成详细设计说明书,一个软件项目就应当说完成了一半了。换言之,一个大型软件系统在完成了一半的时候,其实还没有开始一行代码工作。那些把作软件的程序员简单理解为写代码的,就从根子上犯了错误了。第五个步骤是编码,在规范化的研发流程中,编码工作在整个项目流程里最多不会超过1/2,通常在1/3的时间,所谓磨刀不误砍柴功,设计过程完成的好,编码效率就会极大提高,编码时不同模块之间的进度协调和协作是最需要小心的,也许一个小模块的问题就可能影响了整体进度,让很多程序员因此被迫停下工作等待,这种问题在很多研发过程中都出现过。编码时的相互沟通和应急的解决手段都是相当重要的,对于程序员而言,bug永远存在,你必须永远面对这个问题,大名鼎鼎的微软,可曾有连续三个月不发补丁的时候吗?从来没有!第六个步骤是测试测试有很多种:按照测试执行方,可以分为内部测试和外部测试;按照测试范围,可以分为模块测试和整体联调;按照测试条 件,可以分为正常操作情况测试和异常情况测试;按照测试的输入范围,可以分为全覆盖测试和抽样测试。以上都很好理解,不再解释。总之,测试同样是项目研发中一个相当重要的步骤,对于一个大型软件,3个月到1年的外部测试都是正常的,因为永远都会又不可预料的问题存在。完成测试后,完成验收并完成最后的一些帮助文档,整体项目才算告一段落,当然日后少不了升级,修补等等工作,只要不是想通过一锤子买卖骗钱,就要不停的跟踪软件的运营状况并持续修补升级,知道这个软件被彻底淘汰为止。&写这些步骤算不上卖弄什么,因为实话讲我手边是一本《软件工程》,在大学里这是计算机专业的必修课程,但是我知道很多程序员似乎从来都只是热衷于什么《30天精通VC》之类的,他们有些和我一样游击队出身,没有正规学过这个专业,还有一些则早就在混够学分后就把这些真正有用的东西还给了老师。fans乱嚷嚷,混淆视听,实际上真正的技术专家很少在网上乱发帖子的,如笔者这样不知天高地厚的,其实实在是算不上什么高手,只不过看不惯这种对技术,对程序员的误解和胡说,只好挺身而出,做拨乱反正之言,也希望那些还fans们能认真想想,走到正途上,毕竟那些聪明的头脑还远远没有发挥应有的价值。沉迷于一些错误人士的coding*****************************从程序员升级到工程师大多数象我这样对软件有浓厚兴趣的人,毕业后义无反顾地走进了企业,开始了程序员的生涯。那时,我们迷恋“大全”、“秘籍”一类的书籍,心中只有代码。当我看到一行行枯燥的代码变成了能够打电话的设备,变成了屏幕上漂亮的表格,变成了动听的音乐,成就感油然而生。我觉得自己也是一个出色的程序员了。在用户的机房中苦熬三昼夜解决软件的bug,也成了一种可以夸耀的资历。五年前的某一天,我把曾经让我兴奋自豪的大量代码和少得可怜的文档移交之后,来到了华为。这里有更多的年轻人,我如鱼得水,可以充分发挥自己的想象力。依然是代码,依然是匆匆地在纸上记下稍纵即逝的灵感(我们把它称作文档),依然是无休止地和bug作斗争。当有一天,一个新来 的同事拿着署着我的大名的文档,小心翼翼地来问我时,我发现自己好象有点不认识它了。我心里有点沮丧,再看看代码,发现文档上记录的一些灵感已面目全非。我当时不知道那位新来的同事感受如何,但我从那时起,好象意识到什么。现在来看,那时的很多事情都是事倍功半。去年年底,公司派我到印度从事项目开发,学习印度的软件开发管理方法。一种久违的冲动在心底升起。印度,我已去过两次,虽说是走马观花,但是,印象还是比较深刻。我在访问过程中和印度的工程师交流过,他们言谈中透着自信。他们给我讲解正在做的软件的测试环境,给我看他们写的单元测试文档。当我看到一个软件模块的单元测试用例有三百多页时,我觉得心里很是沉重。当我第三次踏上这片土地时,我又见到了熟悉的人们,明亮的眼睛,温和的笑容,随意的穿着,风驰电掣的摩托,还有大学校园中穿着拖鞋,手抱书本的年轻人。  我也见到了我的项目经理,一个个子较高,瘦瘦的年轻人,据说刚从美国回来,已工作了五、六年。我听了心里很高兴,这回要一招一式地学两手。需求分析的时间是一个月,项目经理和我们(实际上代表客户 )讨论了proposal中的内容,确定每一项都是需要的。然后他把模块大致划分了一下,开始进入计划中的学习阶段。每个人在学习阶段要写出功能描述的胶片,给其他人讲解,不知不觉中,项目组的所有人对项目有了整体的了解。  他还安排了一些培训,如他们公司的软件开发模型、项目组中各角色的定义,以后及时的培训不断,只要项目组中有需求,他总是把qa或相关的人请来,培训很专业。需求分析完成后提交了一份四十多页的文档,当我看到这份英文文档中我写的部分整整齐齐地列在其中时,我的感觉很复杂,有些喜悦,但更多的是苦涩,我以前怎么就从来没有这样做过需求分析呢。在我写文档的过程中,qa给我们培训过srs的写作模板,后来我还是不放心,让他们一个有经验的工程师写了一段,我们再琢磨着照着写。这份srs虽然是多个人合写,但风格一致,内容详实。更为可贵的是,一直到最后,这份需求分析的内容都没有改过,以至于我们没有机会走一下他们的需求更改流程。需求分析是项目的第一阶段,第二阶段的开发时间要根据需求分析的结果来确定。当对方的首席技术官(相当于我们业务部的总体组长)来和我们讨论计划时,他们已列出了对每个 模块的代码行数的预测,可能存在的风险。根据他们公司的生产率--300行/人月,他得出了项目第二阶段需要多少周。我们当时就提出了异议:1)公司对该项目需求很急;2)每月300行是否太少;3)我们还有下载的源代码参考。他解释说,300行/人月是使得项目能达到他们质量标准的经验数据,考虑到有源代码参考,生产率最多不能超过350行/人月。当他问我们公司的生产率时,我脑袋里转了三个圈,没敢多说,大概六、七百行吧。他沉默了一会儿,然后坚定地说,我们这个计划是建立在确保质量的基础上的,我想你们到印度来开发软件,首先看中的应该是我们印度公司的质量保证。我知道你们不缺乏软件开发人员,你们为什么不选择下载的软件呢。几句话说到了我的痛处,现在国内的弟兄们还在为使用下载软件移植的产品四处奔波呢!  随后的开发活动有条不紊,我们老老实实地跟着做。系统测试计划、用例,概要设计,集成测试计划、用例,详细设计,单元测试计划、用例,编码,单元测试,集成测试,系统测试。一个完整的v模型开发过程,其中每个过程都有review。当我们对一些设计的方法不太明白时,项目经理给我们发来了相关的资料,我不知道他当时是怎么想的,一些基本的分析、设计方法是十年,甚至二十年前的软件工程书中就讲到的,印度每个计算机专业的人员都是必修这些内容的。而我们除了对一些具体协议的代码很熟之外,对这些常用的方法似乎一无所知。我感到一些羞愧,进城直奔书店,把他给我开列的书找了出来,晚上躺在床上,仔细研读,我仿佛突然又遇到了能给我指点迷津的良师益友。现在印度所已形成了强烈的学习风气。我回来后也推销了700多本书,这些书教我们如何用工程化的方法开发软件,是成为一个软件工程师必读的资料。  我们的项目经理的计划控制能力很强,当有什么影响到项目计划的事情发生时,如人员辞职、实验室搬家、某一模块预测不准(该模块是我们预测的),他总是采取必要的措施,减少延期,调整计划。刚开始,我们对他们每天上午11点,下午4点下楼喝咖啡还有点意见,后来也跟着喝去了,原来,喝咖啡时的交流非常丰富,从项目管理到设计方法,从技术发展到风土人情,无所不包,对我们互相之间的理解,对团队的气氛很有帮助。我们项目的qa也在适当的时候出现在我们的面前,我们对她的工作只有一些感性认识。她每次参加会议时,手里时常拿着一个check list,项目经理准备相应的资料,回答一些问题,她打着勾,或写着项目经理的解释。她给我们做培训时也很耐心,体现出很好的职业素养,我至今还在怀念她给我们的帮助。  我从事软件开发已有九个年头了,可我现在仍然不能说自己是个合格的软件工程师,更不用谈什么合格的管理者。我看到一份报道说,瑞士洛桑一权威机构把中国的科技综合竞争力从原来的第十三位调到二十多位,原因是他们调整了一些评估标准,其中有一条是中国合格工程师的可获得性非常低。想着弟兄们熬红的双眼,四处奔波升级的疲惫身影,我有一个强烈的愿望:快把我们自己升级成合格的工程师吧网上现在也很浮躁,一些codingoding& &&&&&& Keeper-8 8:38:20)& 在这篇作者自以为有理其实满是漏洞的文章里,向大家展示了一个丑恶的中国软件小作坊里小老板的形象。---这一点相信很多在中小软件公司干过的程序员都或多或少地体验过。我感到深深的悲哀。。。。。。我觉得程序员远没有取得与其贡献相对应的位置---无论是物质上还是精神上我们是这个社会上并不为人注目的一角,别人对IT的理解就是---CEO&MONEY也许只有我们自己能理解自己。。。。。。跳槽---应是争议最大的问题---为什么总有人批评程序员应有的选择,而包容小老板卑劣的苛刻呢??悲哀呀,悲哀。。。。。。&&&&&& formated( 5:13:06)& 现在是临晨4点,我还在工作,我的工资只有2500但我还在干,因为我知道公司正处在原始积累的时期,这段时期必须要靠剥削才能够顺利度过,否则就是死亡,而中国的软件企业正处在这个时期,我们又什么好说的呢?我觉得能学就学,能混就混,不断进取,寻找出路才是我们程序员在这个时期的做人原则。&&&&&& ftj237( 22:54:39)& 作者写的是自己吧,不要用自己的体验来说中国大部分程序员,你有资格吗?&&&&&& c2-10-7 22:53:36)& 看到很多做程序员的兄弟,大多都是弱不禁风,病若黛玉。其中也包括我兄弟们何必为别人拼死拼活,我们得到了什么。。&&&&&& c2-10-7 22:53:18)& 看到很多做程序员的兄弟,大多都是弱不禁风,病若黛玉。其中也包括我兄弟们何必为别人拼死拼活,我们得到了什么。。&&&&&& janssenkm( 22:14:46)& 把公司名称贴出来!以后这个地区的找工作就坚决不去那里!!!!!!!!!!!!!!!!!!!!!!!!!!!!1&&&&&& xiazhihan( 18:32:21)& 我觉得现在真正缺乏的管理人才&&&&&& yxd770( 16:22:29)& 事实自有公论,在人,在景!&&&&&& microsoft_windows( 4:11:34)& 是想告诉我们一个方面:中国有的程序员敬业精神不足。但是由于过于激动,文笔疏忽,措辞不当,可以理解,另外它没有涉及到整个环境的所有方面,因此和一些朋友有所冲突作者所说到的敬业精神,是在程序员当中存在的问题,请存在这方面问题的朋友注意改正了,如果你并不存在这方面的问题,这篇文章对于你来说太菜鸟了,你已经合格了,就不用多看了请各位想一想,如果你和一个没有责任心没有敬业心的伙伴一起开发一个项目,那是多么的痛苦,因此,为了我们走到哪里都能有一个中意,愉快的工作环境,我们希望程序员们要多敬业。而待遇则是最后的问题,我们的工作开心了,工作完成了,如果待遇出现问题,那么我们可以再讨伐反正,工作过程是鱼,工作结果是熊掌,如果鱼和熊掌不能兼得,那我们少说也要拿到其一才得&&&&&& tigerrabbit( 22:26:42)& 做程序员本身工作压力就大,这不假,但在国外工作的程序员的压力又有谁能体会呢,他们的工资是高一些,但他们的工作压力和工作时要有的工作效率,要比国内大几倍,甚至说大几十倍,都不算夸张的.?????????????????????????????????????????????????where& are you now,kld3000? can you tell me which country? if you cannot, shut up your ass hole!i am in finland, just 5 hours is enough for work!&&&&&& daiguan( 22:09:03)& 老板以为写程序和做包子一样,很多老板甚至连电脑都不会用,当然它无法理解延期的问题了,所以,奉劝各位一句,一看是那种老板,就混日子吧,不要想着精益求精,否则谁的日子都不好过。研究技术回家慢慢看去,作者说了,老板给10元钱就要做10元的活,我赞成,同理,老板给1毛钱也就做1毛的活,符合经济学原理的,大家要响应号召哦,不要想着以后怎么样,一起创业的夫妻店还有分家的,你算老几啊,终上所述,中国程序员的通病,太幼稚。&&&&&& starchange( 21:11:42)& 我一直很想做个程序员。我现在正要考高程。可是觉得好难的。好伤心啊。找工作都没有信心了&&&&&& ffossil( 20:51:44)& 自进公司搞开发,偶就一直强调团队开发、项目管理、协作交流,到头来还是一个人做一个项目,结果项目死了一个又一个,公司反正谁做坏了就裁谁,然后再找一个,实在不行就转行做其他的产品,在重新开始骗客户说什么IT公司高科技、科学管理,从来没见到好好执行的,即使做了点什么也都是表面工作,成天招摇撞骗,这种公司希望早关门早好。要不是签了合同,早一走了之,现在就是不按时完成工作,能拖就拖,争取早点出局&&&&&& Iforgot( 18:24:28)& 哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈!老兄!......&&&&&& 2-10-6 16:33:41)& 很高兴看到这么多讨论,这的的确确是个值得思考和探讨得问题。目前,在多数情况下,不管是普通程序员还是大老板小老板,对软件人员的工作情况都不尽满意。老板看到的是软件开发周期一拖再拖,软件质量差强人意;软件人员看到的是每天的超时工作,付出努力不被理解和辛苦工作不被承认。这涉及到国内社会对软件产业的理解问题也涉及到国内软件企业的管理问题。就我个人的见识和论辩能力,自知不能将这个问题探讨明白,希望看到更多同仁们的理性思考。&&&&&& Redwings( 20:19:03)& 自己都不能自圆其说,你一方面说国内的程序员差, 另一方面又说国内的程序员到了国外就变得非常好,那么问题在哪里呢?程序员----人没有变,地方变了,环境变了,管理变了... 真不明白你是怎么归纳的,弄来弄去说是程序员的错!注意你的说法:国内的程序员到了国外变好了,哈哈。&&&&&& mastercy( 16:03:54)& 你很牛啊!做过多少东西啊?很多吧?怎么会不了解中国程序员的实际情况呢?我看你肯定是某一个公司的小老板,是吧?&&&&&& linyudie( 12:57:28)& 呜呜,呜呜,好痛苦哦,呜呜&&&&&& WarFather( 12:19:56)& 现在的CSDN光只会体老板说话,什么时候也为打工仔找想?&&&&&& zhao_as( 22:42:20)& 做程序员不就凭着对代码的爱好吗?对程序的痴迷吗?也许我是幼稚了一点。可是,没有人逼你作程序员啊。我的工资很少,现在才1500,可我还是感觉挺好,毕竟,我可以做程序啊。给我3000,让我做别的,我是不会干的。选择了这一条路,你怨什么啊,难道你不知道这根本就不是发财的路吗。苦吗?不苦如何有乐趣。除了待遇,就没有别的吗?&&&&&& lgj-4 22:38:19)& 哦 好 她人呢 ?&&&&&& boyz2men( 22:01:23)& 知道迪特率汽车工人那多少么 6.8万不包括福利为什么 他们有工会为自己撑腰 我们有什么 只有一个大老板走到那里都是低工资 干得是万金油的活 团结就是力量 所以不许集会结社 否则就是xxx情况会越来越糟的 世道如此 &&&&&& rh( 21:00:03)& "眼高,手低,知识面宽,深度浅;有自己的理想和目标,但实施的决心太小..."惭愧,说得不正是我么?&&&&&& son( 19:40:07)& 我发现中国人怎末就觉得自己不行那?我现在在日本和国内工作强度差不多我没觉得日本的软件公司比中国强多少中国人(类似作者的)相信自己吧别再自卑了找缺点是为了进步不是为自杀找理由程序员就应当一天工作24小时吗?&&&&&& silence( 16:40:27)& 呵呵! 看来以后有什么想法还是不要说的好.有时候每个人只有体会到了,才可以明白别人说的道理.中国软件业的发展自有它的趋势,一个人太渺小了!&&&&&& whitehare( 16:31:55)& 说白了中国企业的管理水平太差,用人机制太差,人才开发培养工作没好好做,如果说程序员上班时间没有创造财富,那为何一到外资企业或国外旧会发挥出来。&那就难怪程序员了,那是中国人管理水平急需提高&&&&&& caoco( 16:28:21)& 为什么老是说员工不团结,不负责任的问题,为何老是说员工有问题,难道老板就没有责任。我在三家公司呆过,第一家:这家公司在大连,是刚毕业是去的。在招聘会上,我问过老板工薪问题,他告诉我年薪三万。我想还行,月薪两千多元,于是把户口学校转过去了。后来签合同时,试用给900大元,三个月后给1500。我想试用,少就少点吧。但是心里还是不舒服的,三个月后。依然给那些,说我不行,话又说回来,不行你可以解雇我,干吗那样,后来我辞职了。他们要我赔钱8000,如果按合同,以及在签定合同时的公司规章制度,他们要赔我钱,在我不同意时,他们和他们的代理律师研究了一晚上,将原来的规章制度修改了。因为我没找到原来的规章制度,被迫拿了6000元,他们总共发给我多少钱??我不知道这是我的原因还是公司的原因。这家公司以承包日商转包的软件开发生活。第二家:这家公司是武汉在广州的分公司,说是分公司,挂个名,刚进公司时老板向我们展现公司的美好未来。我们的工资比同期的其他的软件公司人员少1000多,想着自己可以努力当元老(广州公司是新开的)我们可以说四个月来连续加班,回家睡在床上想的是如何用代码实现功能。老板告诉我们加班没有加班费。以后看看能不能给点补修,工资采用技效考核。有一天我们突然看到我们在加班上有点问题。我们每天的加班,老板每周算一次。他告诉行政助理,他签名时算,否则不算。但他告诉我们全算。(这不是玩人吗,我最生气的事就是被别人骗,不把我当人,当猴耍)。在我们的加班加点的努力下。我们将工作作的很好。按照技效考核我们的工资可以上浮30%,结果总公司一句话考核作废。现在他们的目的就看出来了,如果作不好减工资,作好了就那样。还有这边吃盐,打酱油的钱,都要有总公司来批。就是这钱,还迟迟不给,公司还时常向个人借钱。两年前进公司的那帮人全部走完。后来一家公司,让我过去,我也走了。我要说的是连饭你都吃不上如何来好好的工作,作为老板你应该让你的员工心里平衡。我就是看不惯,在发工资是不让大家互相知道对方的工资,一份辛苦一份收入,我劳我得,应该体现公平&&&&&& whitehare( 16:26:57)& 说白了中国企业的管理水平太差,用人机制太差,人才开发培养工作没好好做,如果说程序员上班时间没有创造财富,那为何一到外资企业或国外旧会发挥出来。&那就难怪程序员了,那是中国人管理水平急需提高&&&&&& whitehare( 16:25:56)& 说白了中国企业的管理水平太差,用人机制太差,人才开发培养工作没好好做,如果说程序员上班时间没有创造财富,那为何一到外资企业或国外旧会发挥出来。&那就难怪程序员了,那是中国人管理水平急需提高&&&&&& flymeng( 16:25:52)& 唉,别说了,我不是你写的那种。我以前的那个公司,老板现在开上洋车,住上了百万豪灾了,我整整为了他干了三年,三年中我为他争了多少钱可能他最清楚,知道他怎么说的吗,兄弟们好好干,我一定不会亏待你们,我要给你们股份,我要让你们中的一些人不要说成为百万富翁也要有个几十万的,房子没有问题。。。。。。。可是我到现在才发现我太幼稚了,我除了留下了一个病肉的身体几乎一无所有,前段时间我要走了,他还欠我一个多月的工资没有给,然后我走后的一次会上他又说弟兄们好干吧,我们要卖几套房子,要让骨干住上房子,TMD,中国多几个这样的老板,试问怎么样成为软件大国&&&&&& whitehare( 16:25:45)& 说白了中国企业的管理水平太差,用人机制太差,人才开发培养工作没好好做,如果说程序员上班时间没有创造财富,那为何一到外资企业或国外旧会发挥出来。&那就难怪程序员了,那是中国人管理水平急需提高&&&&&& kathywp( 11:52:00)& 应如是住,如是降服其心!&&&&&& g_zhao( 11:41:31)& 关注&&&&&& _wmain( 10:54:36)& 这个是个老板写的吧,要不就是一直在什么三四流企业里混的。我呆过2个创业公司,一个比较大的外企,好像都没看到这种有通病的中国程序员。顺便说一下,个人觉得“中国的..."是个比较严肃的话题,要研究讨论的话最好有比较严谨和扎实的论据。&&&&&& f190( 4:49:36)& “中国大部分程序员”的通病?老兄,我请问你,中国现在有多少程序员你见到了多少个?怎么个大部分?“我在国外的一个朋友说”,说什么啊。要是你那个在国外的朋友说,国外的程序员过了25岁就集体自杀,你也会这样要求中国的程序员吧?你自己出来看看,然后再拿出自己的观点也不迟。国外并非天堂 建议你多学习,少看好莱坞电影&&&&&& -4 0:48:28)& 不是程序员的错说得没错,但是中国的老板跟外国的老板一样吗?不一样!中国的公司会定期的给每个程序员去培训吗?不会!只有有专业的老板才会有才会容得下更多专业的程序员,别说自己不力不从心,实在是没有一个好的气氛又怎么能学好东西呢?&&&&&& -4 0:47:14)& 转贴:楼主兄弟, 我不知道你有多了不起楼主兄弟, 我不知道你有多了不起,你开发了哪些了不起的软件,难道开发出了软件就牛吗?你何不问问在中国是老板累还是打工的累,是老板赚的钱多还是打工的赚的钱多,有人说中国的程序员先是为了生存再为了做软件,中国程序员的生存条件如何你知道吗?有些人刚解决温饱问题,还没奔到小康就想着做什么了不起的软件,你可知道此时当老板的都已是腰有亿万了,为谁做软件?为老板赚钱做还是为了自己奔小康,中国有多少软件公司的老板敢说:兄弟姐妹们,来吧,为了我们一起奔小康,努力吧,让我们有了小康后再给老百姓多做几个好的软件.&&&&& 跳槽也是为了生存,换了你你会跳得更快!&&&&&& -4 0:43:54)& 你是挺牛的,怎么怎么样了,是吧!干几年,赚了点钱,就觉得自己走对路了,是吧,就敢在这里评论中国的程序员了,洋奴才,从洋媚外,跑这来装来了,来装成功人士来了是吧!你跌过几次跟头呀!我不对你人,我就事论事,我就觉得你再装!做人要怎样?我们这些人就你知道!你很傲,现实中你是什么样我不知道,单说做人,你凭什么这么讲话!程序员多了,吃的苦你都没听过!什么人成功你可能都没见过吧,要不怎么没学到点什么呢?现在还在教育别人,好为人师,人和人相处,没有谁比谁高,你凭什么拿自己的标准要求别人,你再成功我也看不上你!如果你是个汉子,就认个错,在这里来个悔过书,说说自己走过的弯路,我就服你了!我先悔过,我以前和他(作者)一样,在很多老板的帮助下,在很多同事的点拨下,我现在已悔过自新,我看到了光明,我知道人行天地间要懂天道,行人事!我会努力的!尊重别人就是尊重自己!不拿自己的眼光来看别人!不拿自己的标准要求别人!用自己的努力成果来证明自己!先做完在说!&&&&&& -4 0:27:00)& 你是挺牛的,怎么怎么样了,是吧!&&&&&& -4 0:26:05)& 作者真能装!&&&&&& tfp( 0:04:47)& you are right , i have a dream i will design a compier , if i can ,&&& ...........................&&&&&& Ringfo( 23:37:00)& 有一部分情况还是属实的&&&&&& RSide( 21:02:17)& 或许是啊,我就想自己干,其他人做不好啊,那怎么办?&&&&&& seiya_13( 20:47:13)& 一个人能作出什么东西来呢?如果仅仅因为作出了一点自己的东西就觉得牛的话,好像太虚荣的一点,这难道就是楼主反省之后的结果吗?&&&&&& magu( 17:08:10)& 程序员需要休息!累啊!&&&&&& mingkei( 16:59:25)& 作者好像不知道国内的程序员工作时间有多长,还没有加班费,每天不停的工作还拿着非常少的收入。Do you know what is the wages of an Indian programmer in India? Do you know the programmer in HK used to work how many hours per week? 还没有加班费! The 1-2 years experience programmer in HK has about HK$8-10K and they need to work 55-60 hours per week! Do you know how much they need to pay for rent, food and transport?&&&&&& Eastunfail( 15:54:09)& 是啊,怎么Post出那么多的东西?&&&&&& yangfl( 14:55:33)& 这个论坛编写的好像有点问题,Post出来这么多&&&&&& yangfl( 14:48:47)& 说的很符合实际。不过从走入这个行业的时候,我就发现了自己也存在这个问题,或长或短每个时期我都要反省一下自己,是不是眼高手低,太牛气,对自己期望值过高、虚荣心过盛等等。好在发现思想偏差后及时端正了过来,使现在自己在摆正自己方面做的合格。谦虚使人进步。我认为自己的成果都来自于谦虚以及踏实、不浮躁、对虚荣心的淡化。我总是觉得这个问题已经不是什么软件工程的问题了,它是一个精神境界的问题,说白了就是修养。可是看一看很多我共事过的程序员,以及我面试的程序员,很多人恰恰是作者所说的样子。他们都是知识面非常广泛,每个知识的认识程度非常的肤浅的人,最要命的是,有的不知道则罢,却十分不愿听取别人的道理,也不愿意深入学习。他们追赶技术潮流就像追赶时尚一样,时尚技术的风头来了就潦草的学习个一知半解,风头一过立刻把它们像旧报纸一样扔到一边,继续追赶新潮流。面对这样的程序员我自己也感到比较无奈。根据我的体验,外国人比大批的国内人踏实的判断很客观。我们在开发中不断的会涉及到出自国外的开发资源,发现他们的开发态度的确很认真,哪怕是公开源代码免费软件的开发人员的敬业程度都能够从软件本身中体现出来。不过有一点也得强调,国内的软件开发人员面临着相当恶劣的人文和技术环境。不仅是工资方面,而且是受重视方面和受尊重方面。劳动强度很大,工资不太多。另一方面,中国程序员面临着相当不好的市场情况。中国有着相对过剩的程序员和相对太少的运转健康的企业。大型企业都是外资或“官僚资本”,他们只相信国外的软件产品,或必须通过“关系”打入才能争取成为软件公司的客户;中型企业是软件业的最重要土壤,却一片萧条,小型企业多如牛毛,然而没有成长到需要软件的程度,或买不起软件,它们需要继续成长。&&&&&& kaku_you( 13:53:46)& 你说的那是中国人的毛病而不是什么程序员特有的东西,而且作者似乎有点 [觉得自己牛可以在别人头上拉屎-〉被打击-〉发现是别人在自己头上拉屎-〉努力-〉争取能真正在别人头上拉屎]的味道,说了半天还是没什么变化嘛。简单的说我们中国人普遍的毛病中的两条,就是没有敬业精神和责任心。&&&&&& Volition2k( 13:36:11)& 程序员也是人,不是机器。&&&&&& EdBoy( 11:39:19)& 说得有些道理,看来我自己也需要考虑考虑,谢谢你!&&&&&& hash_boy( 10:00:56)& 作者好像不知道国内的程序员工作时间有多长,还没有加班费,每天不停的工作还拿着非常少的收入。&&&&&& ozzzzzz( 8:39:57)& 奇谈怪论 似乎道理国外自然就改变了& 这是方法的问题 是我们自己不重视软件工程的必然结果 作者这样的人做和这么就这个道理都不明白 真是白混了&&&&&& crazybit( 0:14:41)& 还有缺乏团队精神,越是牛的人越想什么都自己干。标题&&&& 为什么样要做一个程序员&&& kld3000(收藏) & 关键字&&&& 程序员 & &&&&& 提到这个问题似乎会让人觉得太简单、太幼稚。看看现在程序员舒适的工作环境、丰厚的薪水、过着“快乐”的白领生活,一切仿佛都不言自明。其实这是看到了程序员的一面。我们的另一面则不为大众关注:没日没夜的工作,通宵加班是家常便饭;整天和键盘打交道,把自已的代码必业必去几十甚至上百遍,目的只是为了想 住一个小小的bug......这种枯燥的生活又有多小人能切身体会?没有对软件事业本身的执著、对源代码近乎朝圣般的痴迷,这一切都是普通人不能忍受的。但是当你程序完全通过了测试,成为一个合格的产品。这个时候的喜悦,又是如此强烈地激荡在你胸中,也只有真正热爱编程的人,才会感到其中真正的快乐。所以如果有人问你为什么要做一个程序员,那就告诉他:我有足够的勇气面对每一次调试失败、有坚定意志和信心来写好每一行代码。这是我的热爱,编程就是一种乐趣!学编程是先学什么?&&&& 对于广大编程初学者来说,存在着这样普通的认识:学习程序设计选择编程语言很重要,开口闭口就是Visual Basic Visual C++ Delphi Power Builder等一些现在比较流行的开发工具。经常看见有初学者问:我学C/C++,究竟是学Visual C++好,还是学Borland c++ Bulider好呢?或者就是要求在Visual Basic 和Dephi 之间作出选择。学习程序设计和学习程序语言究竟是怎么取舍呢?就此我们打个简单的比方;&&&& 学习程序设计就好比学习射击,而程序设计就对应射击中的气枪、手枪、步枪等各种枪械。学习射击必须学好射击,再学好其他的,自然事半功倍。学习程序设计也是一样,必然要从学习一门语言本身,还要学会编程的思想,这是所有程序设计语言的基础。程序设计语言,是“一法通,万法皆通”的。&&&& 建议:学习程序设计不必苛求一定要从某一种语言入手,可以在 Visual Basic Dephi Borland C++ Builder 或者DOS下的Pascal 、Turbo c中间选择自已比较容易接受一种进行学习。从中主要学习的是编程本身的思想,学习的用程序设计的眼光来看待问题。或许,学习的效果不能马上看,但是可以学到扎实的基本功,而这对于将来的进一步发展是有很大好处的。这些基本功包括:&&&& 一、强化逻辑分析和建立数学模型的能力编程的目的确良什么?是要解决现实的问题。而现实的问题是用自然语言描述的,目前的计算机对其无法理解。我们要做的就是必须用计算机能理解的方式将问题“告诉”计算机。也就需要我们对现实问题进行逻辑分析,建立合适的数学模型,然后以程序和数据的形式输入计算机,让计算机帮我们来分析解决。&&&& 二、数据结构和算法知识程序设计发展到现在,已经有了一套比较普通、完整的数学模型(我们称之为数据结构)和对应这些数学模型的处理方法(也就是算法)。目前的程序就是以此为基础的。在程序员中间流传着一句经验之谈:“好的数据结构是程序的一 半”&&& 三、丰富的实践经验程序设计本身就是一门实践性很强的学科。一个只存在于纸上的程序如同没有翅膀的鸟永远不能飞翔在现实的天空。任由代码写得再巧妙,风格再优美,也只是一张纸上的一连串字符而已。就好比是一份作文练习,或许写得好,但是不交给老师去批阅,和一张白纸又有什么区别呢?在这里,程度就是作文,而计算机就是老师。只有把“作文”交给“老师”,通过调试程度才能印证自已的构想是否正确,或者看到什么缺陷。当然也少不了要多和同行交流,尤其是随着互联网的普及,在网上我们也可以看到别人编写的例子和源程序程序,作为现代的程序员,这也是千万不可错过的好机会。&&&&& 最后,作为一个程序员有一点小要求:那就是身体素质要好,能熬夜才行。 &&&作者相关文章: 中国大部分程序员的通病(转贴) 真正的程序员(收藏) &其它相关文章:程序员考试补课笔记-第二十一天(完)(原作) 程序员考试补课笔记-第二十天(原作) 程序员考试补课笔记-第十九天(原作) 程序员考试补课笔记-第十八天(原作) 程序员考试补课笔记-第十七天(原作) &&对该文的评论& &&&&& ybbqy( 18:04:39)& 这文章太过时了.讨论学什么编程语言的的落后时代已经过去了一年了.&&&&&& ycjnx( 17:25:59)& 只因为:我喜欢!he,he&&&&&& cm4ever( 20:59:45)& 颇独特,从另一个角度分析。&&&&&& ckwan( 17:43:57)& ps: 这篇文章错字连连,连题目都有问题。这说明了什么?&&&&&& ckwan( 17:36:14)& Well, 做程序员就得熬夜?谁说的?!给个要熬夜的理由我先!&&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
Copyright &
All Rights Reserved}

我要回帖

更多关于 程序员 加班 知乎 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信