程序员的价值所在?什么样的程序员才是一个好的程序员?
程序员应该有什么样的道德取向和价值取向呢?
欢迎大家来讨论。定义一个大家可以公认的一些东东。
能吃苦,但是吃了苦,我们也应该能够拿到相应的报酬,不能说只懂得吃苦。
这个社会是双向付出的,程序员付出了,公司也应该能够拿出一些,但是怎样做才能让大家感到舒服,感到愿意为这家公司拼命,愿意吃苦呢?
敏捷的头脑,如何才是敏捷?做到哪些方面,在什么情况下才可以表现出来?
多个角度考虑问题,都可能有哪些角度,在不同的场合下会有哪些角度?软件开发过程中我们应该如何去思考,如何来站位呢?
程序员的工作和其他行业一样,一样建设社会主义祖国!为建设共产主义添砖加瓦!
优秀的程序员应具有以下品性:
第一,要能吃苦。熬夜,加班,吃方便面是一种苦;另一种苦是,做程序员工资不会很高。
第二,要有天赋。
第三,是信念。“失败时要能坚持。像我就写了很多失败的软件。”
第四,要爱这一行。
第五,是团结。“现在程序都很庞大,以光盘为单位。没有合作精神,一个人做不出什么好软件。”
第六,要逢上机遇。
强烈反对Jetwong的第一条,算然我以前也常熬夜、吃泡面,编了几年程序后逐渐明白,想要做一名优秀的程序员,切忌不要熬夜,饮食也要有规律,身体才是革命的本钱!
说到加班,我的经验就是“下班后尽量不要为完成工作而加班”,现在每天下班后的几个小时我一般会在公司看看书,学习一些新的东西,避免成为“井底之蛙”。多学些技术后再去编程,总比昏天黑地的盲目编程好得多。
我完成一个任务的过程是:首先上网查找一下是否有人做过了,如果有source就down下来研究,在它的基础之上完成一个更优秀的。没有得话在自己做。
如果你只想做一个coder 那么你就无私奉献好了 如果你想发展那么你最好作一个商人 不去奉献任何东西 在一个项目组织中 奉献往往就是风险的同义词
而且奉献往往是对一些无耻和不合格的最大姑息
我个人认为:不需要无私的奉献,当然,如果这种奉献付出的很少,比如想在公交车上给老人让座,或者其他的一些对自己来说损失比较小的,可以考虑这种奉献方式。其实,目前在上海很多人连这个都做不到。呵呵,有点惨!其他城市。我都能看到的普遍现象。
任何一个人要生存,都要在付出的同时索取一定的回报。这肯定不是等价的,但是,应该是物有所值的。毕竟资本家是要挣钱的,他们挣的钱就是从我们身上得到的。不管是单个的私人资本家,还是国家出面的资本家,国家也要求自己的产值是有所增加的,而且增加的幅度要达到一定的程度。这个资本家的操作方式也是相同的。
其实相对其他行业一两千的工资,我们拿得已经不少了,现在IT又不太景气,干好手上的事情,老是跟别人比会很郁闷的。这年头加班加点的不止是IT,只是it技术升级换代比较频繁,拖的人很累而已
:)
我觉得“付出的同时索取一定的回报”很正确,但怎样衡量付出和索取的是差不多的呢?
在大学里,我是学化工的,在化工厂呆过。同样是大学本科毕业,做程序员比起在化工厂,我觉得已经是非常幸运了。工资不说,就工作环境来说至少程序员没有危险,不需要呼吸那些有毒气体;做程序员还可以发挥一些自己的创造能力,而在化工厂不行,程序员做错了可以改,而在化工厂你如果随便改变工艺或配方,那你就惨了(实验室的除外)!不可预测性太大。
所的老板都一样,都希望最大限度地榨取利润。无非有些老板做法可以接受一点,有些不能接受一点。
我觉得老板不可能把你的利益放在第一位。劳动力也可以认为是商品。老板买你的劳动力就象你上街买东西一样,价格可以协商,协商不成你就只能决定决定买还是不买(或卖还是不卖),没有理由埋怨对方不配合你。当然,劳动力和一般商品是有区别的,价值可以靠你自己来提升,老板只要觉得你给他创造的价值比他给你的工资高,那么你的工资就有协商的余地(不排除有些老板是猪头,那就走人)。
1.坚持自己做人的原则(比如老板是那种坑蒙拐骗的人时,坚决走人)
2.对外,不违反自己做人的原则的情况下,公司利益第一
3.对老板,多沟通,索取自己应得的利益
程序员能做的就这些,而公司怎么做,程序员可做不了主。
总结一下自己,悲兮!借用一句话来解释:会干活的,拿的钱不会多,这叫蓝领。会吹牛的,才会拿大钱,这叫白领。
奉劝所有希望拿高薪的同行,要在自己身上找原因(选错了老板?和老板沟通不够?自己只值这么多?)。在别人身上找出再多的理由也于事无补!
像最奸的商人一样赚钱,像最优秀的理论家一样发明技术。
需要奉献,干吗不奉献? 但是不作任何无偿的奉献.
另一方面,不要把眼光就看着钱,
cxgtommy说得对着呢,比其它行业程序猿已经拿得够高了.
但是你要靠这个工资发财致富?那还是算了.你前面千百万人已经都尝试过了
对老板来说,只有免费,能最快出活的程序猿才是最好的程序猿.
只是对你自己来说,
"程序员的价值所在?什么样的程序员才是一个好的程序员?"
还是自己想吧!
呵呵,从Wonder兄口中说出来的,我们都成了“猿”了。:-P
奉献,和风险,呵呵,好像意义很接近!在我们程序员做奉献的时候,往往也要看到单纯奉献的结果是有风险的,可能你的到了技术和知识的积累,也许除此之外,你还可以得到一些财富,但是,究竟有多少?谁也说不清楚。
按照一个大概的比例,一般来说,你创造了一百万的价值,你可以考虑是否能够拿到十万,如果拿到了,说明你的老板很重视你,如果拿到更多的,但肯定不会超过二十万的,那说明他向要提拔你。如果更少,少于五万,便要考虑是否自己真得值这个价钱了,是否真的给老板挣了一百万?
为什么你创造了价值100万的东西要交给老板拿10万工资而不自己卖掉直接拿100万呢?
因为这个东西在你自己的手里值不到10万。
老板给你多少工资应该不是看你给他创造了多少价值,而是他最少可以花多少钱买到可以给他做出这个东西的劳动力。
程序员的悲哀:用自己写的东西来淘汰自己
当出现一个非常GOOD的智能自动编码机器人的时候,俺们程序员才有可能轻松(全下岗了;)
1.为公司创造价值、实现自己的价值
2.能适应整体环境,和其它团队成员,公司整体能溶于一处
代码写的好而且快,水平高,能解决了实际问题
上进心强,想挣高薪
其实,最难衡量的是我们到底创造了多少价值,而不是我们值多少的问题。
如果能够比较精确的衡量出来我们创造了多少价值的话,我想:老板给我们多少,老板应该是很清楚的。
其实,任何一个创造性行业都是在自己淘汰自己:
用自己新开发的东西淘汰自己过去的劳动。
用自己新的想法淘汰自己老的看法,
用别人新的观点更新自己旧的认识。
不是么?
如果不是这样的,那我们这个社会也就无从进步了。我们的价值何在呢?
创造,除了简单的创造价值之外,还要创造新的生产方式和模式,这些都是新的,是必须不断更新的。
民工的价值所在?什么样的民工才是一个好的民工?
答案是一样的。
>>程序员的价值所在?什么样的程序员才是一个好的程序员?
人的价值是什么?最大限度的创造价值。程序员也不例外,不管站在资本方还是个人角度。
至于好的程序员的定义,跟上一个问题不同,所处的角度不同,答案迥异,而且这也随人们对★程序员★三字的理解不同而不同,很难有一致性。人们对Coder和Programmer以及已经涉及到管理的软件工作者,标准是有很大差异的。
qingrun兄是否应该对程序员的定义有所限定?:-)
以下观点来自软件工程专家网,作者曹政,发表于15/04/2002。
他人之功,不敢据为己有。
程序员是一种技术工作,在IT的发展中有相当重要的地位,从底层硬件通讯协议的建立,到数据传输层的处理,到操作系统的建设,到数据库平台的建设,一直到应用层上各种数据营销平台的搭建,程序员在里面都扮演着举足轻重的角色并为IT事业的发展做出了巨大的贡献。
中国有很多精于编码的人,但是中国软件行业,尤其是网络应用开发方面误区很大,很难形成有规模的软件开发力量和产品能力,不但比美国差距甚远,和印度相比也是颇有不如。这些问题不是在于中国程序员的智商和工作努力状况,也不是在于国家和民间对开发的投入程度,而是很大程度上,有一些对技术,对程序开发,对项目设计方面的思想误区,这些误区,导致了软件行业的产品化能力不足,缺乏规模化和大型复用系统研发能力,可以说,改变认识误区,是解决软件行业小作坊模式和个体英雄模式所带来的局限性的重要工作。
中国有很多小朋友,他们18,9岁或21,2岁,通过自学也写了不少代码,他们有的代码写的很漂亮,一些技术细节相当出众,也很有钻研精神,但是他们被一些错误的认识和观点左右,缺乏对系统,对程序的整体理解能力,这些人,一个网上的朋友说得很好,他们实际上只是一些Coding fans,压根没有资格称为程序员,但是据我所知,不少小网络公司的CTO就是这样的coding fans,拿着吓人的工资,做着吓人的项目,项目的结局通常也很吓人。
作一个真正合格的程序员,或者说就是可以真正合格完成一些代码工作的程序员,应该具有的素质。
1:团队精神和协作能力
把它作为基本素质,并不是不重要,恰恰相反,这是程序员应该具备的最基本的,也是最重要的安身立命之本。把高水平程序员说成独行侠的都是在呓语,任何个人的力量都是有限的,即便如linus这样的天才,也需要通过组成强大的团队来创造奇迹,那些遍布全球的为linux写核心的高手们,没有协作精神是不可想象的。独行侠可以作一些赚钱的小软件发点小财,但是一旦进入一些大系统的研发团队,进入商业化和产品化的开发任务,缺乏这种素质的人就完全不合格了。
2:文档习惯
说高水平程序员从来不写文档的肯定是乳臭未干的毛孩子,良好的文档是正规研发流程中非常重要的环节,作为代码程序员,30%的工作时间写技术文档是很正常的,而作为高级程序员和系统分析员,这个比例还要高很多。
缺乏文档,一个软件系统就缺乏生命力,在未来的查错,升级以及模块的复用时就都会遇到极大的麻烦。
3:规范化,标准化的代码编写习惯
作为一些外国知名软件公司的规矩,代码的变量命名,代码内注释格式,甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同技术人员之间的协作。
有些coding fans叫嚣高水平程序员写的代码旁人从来看不懂,这种叫嚣只能证明他们自己压根不配自称程序员。代码具有良好的可读性,是程序员基本的素质需求。
再看看整个linux的搭建,没有规范化和标准化的代码习惯,全球的研发协作是绝对不可想象的。
4:需求理解能力
程序员需要理解一个模块的需求,很多小朋友写程序往往只关注一个功能需求,他们把性能指标全部归结到硬件,操作系统和开发环境上,而忽视了本身代码的性能考虑,有人曾经放言说写一个广告交换程序很简单,这种人从来不知道在百万甚至千万数量级的访问情况下的性能指标是如何实现的,对于这样的程序员,你给他深蓝那套系统,他也做不出太极链的并访能力。性能需求指标中,稳定性,并访支撑能力以及安全性都很重要,作为程序员需要评估该模块在系统运营中所处的环境,将要受到的负荷压力以及各种潜在的危险和恶意攻击的可能性。就这一点,一个成熟的程序员至少需要2到3年的项目研发和跟踪经验才有可能有心得。
5:复用性,模块化思维能力
经常可以听到一些程序员有这样的抱怨,写了几年程序,变成了熟练工,每天都是重复写一些没有任何新意的代码,这其实是中国软件人才最大浪费的地方,一些重复性工作变成了熟练程序员的主要工作,而这些,其实是完全可以避免的。
复用性设计,模块化思维就是要程序员在完成任何一个功能模块或函数的时候,要多想一些,不要局限在完成当前任务的简单思路上,想想看该模块是否可以脱离这个系统存在,是否可以通过简单的修改参数的方式在其他系统和应用环境下直接引用,这样就能极大避免重复性的开发工作,如果一个软件研发单位和工作组能够在每一次研发过程中都考虑到这些问题,那么程序员就不会在重复性的工作中耽误太多时间,就会有更多时间和精力投入到创新的代码工作中去。
一些好的程序模块代码,即便是70年代写成的,拿到现在放到一些系统里面作为功能模块都能适合的很好,而现在我看到的是,很多小公司软件一升级或改进就动辄全部代码重写,大部分重复性工作无谓的浪费了时间和精力。
6:测试习惯
作为一些商业化正规化的开发而言,专职的测试工程师是不可少的,但是并不是说有了专职的测试工程师程序员就可以不进行自测;软件研发作为一项工程而言,一个很重要的特点就是问题发现的越早,解决的代价就越低,程序员在每段代码,每个子模块完成后进行认真的测试,就可以尽量将一些潜在的问题最早的发现和解决,这样对整体系统建设的效率和可靠性就有了最大的保证。
测试工作实际上需要考虑两方面,一方面是正常调用的测试,也就是看程序是否能在正常调用下完成基本功能,这是最基本的测试职责,可惜在很多公司这成了唯一的测试任务,实际上还差的远那;第二方面就是异常调用的测试,比如高压力负荷下的稳定性测试,用户潜在的异常输入情况下的测试,整体系统局部故障情况下该模块受影响状况的测试,频发的异常请求阻塞资源时的模块稳定测试等等。当然并不是程序员要对自己的每段代码都需要进行这种完整测试,但是程序员必须清醒认识自己的代码任务在整体项目中的地位和各种性能需求,有针对性的进行相关测试并尽早发现和解决问题,当然这需要上面提到的需求理解能力。
7:学习和总结的能力
程序员是人才很容易被淘汰,很容易落伍的职业,因为一种技术可能仅仅在三两年内具有领先性,程序员如果想安身立命,就必须不断跟进新的技术,学习新的技能。
善于学习,对于任何职业而言,都是前进所必需的动力,对于程序员,这种要求就更加高了。
但是学习也要找对目标,一些小coding fans们,他们也津津乐道于他们的学习能力,一会学会了asp,一会儿学会了php,一会儿学会了jsp,他们把这个作为炫耀的资本,盲目的追逐一些肤浅的,表面的东西和名词,做网络程序不懂通讯传输协议,做应用程序不懂中断向量处理,这样的技术人员,不管掌握了多少所谓的新语言,永远不会有质的提高。
善于总结,也是学习能力的一种体现,每次完成一个研发任务,完成一段代码,都应当有目的的跟踪该程序的应用状况和用户反馈,随时总结,找到自己的不足,这样逐步提高,一个程序员才可能成长起来。
一个不具备成长性的程序员,即便眼前看是个高手,建议也不要选用,因为他落伍的时候马上就到了。
具备以上全部素质的人,应当说是够格的程序员了,请注意以上的各种素质都不是由IQ决定的,也不是大学某些课本里可以学习到的,需要的仅仅是程序员对自己工作的认识,是一种意识上的问题。
差的程序员把简单的事用复杂的方法做出
好的程序员把复杂的事用简单的方法做出
好的程序员的程序一般容易读懂
差的程序员的程序一般读不懂
好的程序员,必须有好的程序思想。同时在编码的过程中对未来软件安装调试的过程中所会出现的问题有很好的预见性!
看看上面的许多人都在埋怨老板,说什么老板是太苛刻之类的话,我觉得言之不妥!大家试想一下,如果你作老板,你拿出自己辛苦挣来的钱(或许有些人钱来得很容易,单比仅是少数),你会怎么做?说句良心话如果这些老板们我们这些初出茅庐的人在哪混饭?当然有些老板是很不够意思,那你完全可以走人,你能忍受说明你在公司还是获得了好处的,或者就是你的能力不行,不敢敲槽,对于老板的不公也敢怒不敢言。我想如果你的能力很强,没有一个老板会亏待你的,除非他是傻子。不要老是抱怨别人,要知道这个世界没有绝对的公平,一切要靠自己去争取!
我是从程序员做过来的,现在觉得程序员只是一种职业罢了,正是因为现在这个行业相对其他行业来说工作环境比较好,收入还可以,才有这么多人冲进来。要是有个更高收入的工作放在你面前,你也能做,我想你肯定会毫不犹豫地扑过去。
想指望做程序员发财,那是不可能的。95%的人都是平庸的,如果你一定要认为自己是另外的5%,你可以去撞一撞,不要说没有努力才可悲,不能正确人事自己才是真正的可悲。
不要看不起那些土老板,也许人家情商比你高得多,而且在赚钱上情商比智商重要多了。要不你去襄阳路逛逛,感叹一下。
说白了,就是一商品,别人付出钱进行购买行为。
不好意思,自己的感受,多语了。
好的程序员第一要听话,叫你干这个就不要干那个,而是要千方百计干好这个。
第二,要学会沟通,要懂得配合别人来工作。不能以自己为中心,要知道一个软件是一个系统的工程。老生常谈阿,老生常谈。。。。。
好的程序员!1要听老板的话。2要能根据系统说明书写出漂亮的代码。3要能过虚心听别人的意见,至少要听项目开发小组领导的话。4我觉得能做到程序员的份上,至少都是很聪明的(不好意思,我不是说自己)。能够解决协作关系。5如果你能用系统分析员的思想来做一个程序员的话,那么中国的软件也就有希望了。
我觉得程序员这行和其他行业比,并没有什么太特殊的地方。
这个职业的主要优点是作为一个programmer, 你总能比较
容易的接触到大量的信息,只要肯钻研,总能不停的学到新东西。
并且能和非常聪明的头脑交流。
至于素质,各位说的应该都有道理,我觉得还有一点很重要,要有
一种“我为人人,人人为我”的精神,这样,在这个竞争和创造
此起彼伏的行业才能保持一种健康、平和的心态。
首先学会做人!
然后具有胜任程序员的软件开发能力!
如果你不做程序员这一行。。你还能做什么
你找出比做这一行的平均工资高的吗??
我们不要老是只想着一个方面。。
不要以为高智商就应拿高薪资(如果你以为作程序的都是高智商的)
高智商还有一个智力转化价格。
只有把你的智商转成有市场价值的东西才有资格拿高薪资
而不是在单方面一厢情愿地以为从事所谓的高技术就等于应拿高薪似的
这一点是不可取的。。
起码那些老板们是不会认同的!
嘿嘿,我认为好的程序员应该具备以下素质:
哲学家的头脑+数学家的思维+犹太商人的智慧
把小事做大--给别人看
把大事做小--给自己做
把无用的说成有用的--给老板看
把不好用的说成好用的--给客户看
这年头想要钱,卖命是不行的,重要在嘴。我做了三年苦力了,却不如人家会吹会吃会喝的。呵呵,什么好不好的程序员,能拿钱最多的才是好样的
radioxiao(红缨枪)兄:
实在话!真的是大实话!
不过,程序员么,至少我是因为兴趣才来做这一行的,所以,还是希望能做出自己的产品,能占有应该得到的市场,然后,再去考虑个人的收入。如果公司不行,我也只好隐忍,然后跳槽,无奈的程序员,悲哀的程序员!
程序员应该有什么样的道德取向和价值取向呢?
首先,作为一个社会的人应当有什么样的道德取向和价值取向呢?
第二,作为这个行业对行业的人应当有什么的特殊的要求和需求呢?
从道德方面来讲,肯定大家都希望能够遵循社会道德和行业道德,但是如果公司对你不仁,那也没必要对它很义。我们也都是平常人,不需要做圣人,也没必要去一遍又一遍的重复农夫和蛇的故事,或者东郭先生和狼的故事。如果公司不仁,当然也没失去做人的道德,大不了此处不留爷自有留爷处。对于如果想离开公司,对公司做出一些破坏报复的事情是万万不可的。
对于实现自己的价值这方面,我觉得最好是自己的价值追求能得到公司的认可和支持,呵呵,在现在的软件公司太难了。但是伯乐还是有的,只是少了一点而已,就看运气了。自己的价值体现不仅体现在工资,而且是在行业领域内的贡献和发展以及公司的贡献和发展。
认认真真工作,轻轻松松生活。
我做不到,但是我努力想做到。
写出好的程序,争取好的工作。
我做不到,但是我正在努力。
虽然我知道这是不可能实现的。
---这就是中国程序员之一,俺的悲哀。
我的观点,也许和楼主的标题不大相同。
中国的软件企业都有这样那样的问题,作为一个程序员,有责任(有没有义务我不知道),自觉学习新的知识、思想、模式,能够主动地改变不合理的地方。不但是在程序上,诸如组织、管理上,每个人都有义务去参与,都有义务去发现错误纠正错误。只有这种,个体的程序员的价值,才能慢慢的在一个好的环境中体现出来。
上面各位程序员前辈的观点我比较赞同,也有同感。我开发软件开发了2年半,开发了两个软件,第一个软件由于市场问题,用户量少,价格提不上去,现在已经停止开发和销售了;第二个软件前景也不乐观。我在软件开发上也付出了很多心血,但收效甚微,我郁闷过,也思考过。我认为软件开发确实是一项工程,我们每个人,特别是程序员,能做的也是应该做的就是把自己的本职工作做好,对于报酬,不要过于追求,我曾经也对自己的报酬抱怨过,但结果影响了自己的工作情绪,要知道,做程序员的人大多数对这一行还是喜欢的,所以我们在某种程度上,应该享受这种乐趣,把自己的工作做好,为社会创造出价值,向微软这样的公司学习。
将自己独有的智慧充分发挥出来,创造巨大的价值
才是活的有价值的程序员
程序员的价值就在于把自己心中的想法实现,并与大家分享