寸锐斋

不送不迎 真君子自来去 无晴无雨 大丈夫何逍遥

方剑斌ID:cunruizhai
205242次访问,排名311好友1人,关注者8
变化是唯一不变的。
cunruizhai的文章
原创 31 篇
翻译 0 篇
转载 0 篇
评论 557 篇
寸锐斋的公告
下载最新Firefox打败微软:
最近评论
zheng_:not "Redundency",is "Redundancy"
soonqian:也别整天什么大学生怎么找怎么找的!!!
上高一的时候看着初三是小孩
上大学看着高中是小孩
那工作了又看这大学生无知
大家都在无知中慢慢变成这样
别一棒子把所有大学生打死啊
jiayajun88:当一个架构师也想过,但我想那是个漫长而艰辛的过程,我眼下就是要先做一个合格的JAVA程序员!!!!
jiyanguo_2007:不管用什么方法,能做到行业的顶级就是高手
zxh13939036040:我喜欢上面说的!嘿嘿
文章分类
收藏
    相册
    灯下黑
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 程序员的灯下黑:重知识轻技术收藏

    新一篇: 程序员的灯下黑:没学会快乐 | 旧一篇: 软件人员绩效考核新思路

    电视《雍正王朝》讲了这么一个故事:大将军年羹尧奉命到青海平叛,清军因路途遥远,军耗巨大,因此力求速战速决。但叛军避开锋芒,东躲西藏,年羹尧没有办法找到叛军决战。这时,朝廷内外压力越来越大,年羹尧陷入困境。这是一位谋士对年说:我知道叛军在那里。年大喜。这位谋士指出,敌人就在不远处的一座皇封寺庙里。年不信,谋士不慌不忙地说:这就是灯下黑,离自己越近就越不可能意识到,但却是最可能的地方。果然,大军一出,大获全胜。

    我想讲一些关于程序员对自身认识的故事,这些故事都和灯下黑有关。只要正确认识自己,道理非常简单,但是,到处都可以看到灯下黑的故事。

     

    某程序员,有一天接到一个任务:公司的有一个产品的文件太大了,要求采用压缩算法,减少尺寸,最好能压缩20%

    程序员兴高采烈地接受了任务:以前没玩过压缩算法,这下可以学习新东西了!研究了几个月后,他觉得差不多了,就交给了项目经理。项目经理正等着呢,高兴坏了,拿着演示文件就去找产品经理。产品经理开始挺高兴,看完脸就拉下来了。打开文件,把所有的文件尺寸一算,很淡淡的说:“才压缩了10%,有什么用啊!”

    程序员愣住了,“不会吧!我看过的,压缩了 20%!”

    产品经理指着文件列表说:“你看,某文件是压缩了20%,可你的压缩算法增加了一个动态库文件,尺寸还不小,总共加起来,不就只减少了10%吗?”

     

    各位看官,这是不是软件公司里经常发生的情形?

    这种失败的成因当然是复杂的,有沟通管理方面的问题,也有程序员能力的问题。我今天想要说的是程序员认识方面的问题。

    继续故事:

    项目经理很没面子,回去就和程序员找原因。项目经理是老程序员了,直话直说;终于弄清楚的事情的本质:

    第一,这位程序员一个的时间读了很多关于压缩算法的书,会了不少算法。可是从来没比较过算法的优劣。这老兄觉得研究算法很有趣,乐此不彼,写了好几个实现。

    第二,这位老兄在最后几天才想起来20%的目标,也没太放在心上,看看差不多就拿出来了。

     

    这是典型的程序员的认识问题,重知识而轻技术。

     

    先从是么是知识,什么是技术说起。

    知识就是知道,你知道了某件事是怎么回事,就是有了知识。

    技术就是你能做出来,做得好叫技术好,做的不好叫技术差。

    怎么写操作系统?看完操作系统原理,再苦读完源代码,这叫有知识了。如果有本事把任务调度、内存管理、IO什么的都写出来,还能写得稳定,快速,可扩展,那是有技术。有知识和有技术可差远了。早年我在工厂实习,要挫一个圆孔,拿着内锉刀干了一天,只挫了一个椭圆;师父来了,三分钟,比冲床冲出来还圆!我是个好学徒,使用锉刀的知识全记住的,可以写一篇内圆挫使用大全。知识是有了,可没这个技术。

    程序员也一样。什么C++Java.net,什么STLStrutsSpring,就是门门都满分,这也就是有知识。算不算技术好呢?差远了。软件工程师界就专门出这种不会写程序的“高手”。我遇到一位老兄,精通Java知识,从虚拟机到各类框架,概念,无所不同,谈起Java来,没人说的过他。可是他的代码永远Bug最多,而且都是最简单的Bug,什么逻辑不对啊,功能没实现啊,UI不对啊。他的领导只有又好气又好笑。问下去,发现这老兄写了几个程序文件以后,就不感兴趣了,因为所用的技术没什么不知道的了。所以马马虎虎交差。

    说到底,写程序是个手艺活,就和古代的匠人一样,是要讲工艺的。比如一个玉匠,能打造栩栩如生的玉孔雀,那得打的好!要是一个玉匠说,这些手艺我都知道了,重复做东西没劲,将就着给客人做出来吧!那他还不吃西北风!

    可是,十几年来,程序员界有的是这样的人,还引发大规模争论。象什么C++Java之争啦,J2EE.Net之争啦。你看里边的帖子,不停有人赌这个阵营那个阵营,有发誓一辈子做C++的,有发誓打倒.Net。我还奇怪了,专门没人效忠机器码的,那不是最难最有“学问”吗?这都是在争论什么知识最重要。可是啊,很少有人谈谈怎么做好产品的。

     

    现在程序员最大的问题就是太看重知识,拼命追逐新玩意,而忽略了身边的够得着东西。好,什么C++Window API都知道了,东西也弄出来了,可是三天两头崩溃,还找不到原因?为什么?有没有看看代码,看看是不是某函数写了2000行,自己都看不懂?是不是全局变量乱用?是不是没考虑前后兼容性?没考虑冗余和故障恢复?

     

    末了再回到开头的故事:

    项目经理回去和程序员再重新设计,又多花了一个月,终于达到了目标。但因为这个部分是一个大项目的一部分,整个项目不得不延迟了一个月。

    年底考评的时候,项目经理给程序员打了一个及格;程序员不服,告到总经理那里。总经理说:“你知足吧,给你打及格已经看在你干的很辛苦的份上了,因为你没有按时完成,整个项目延迟了一个月,这帐都没找你算呢。”程序员颓然。

     

    发表于 @ 2006年08月10日 16:57:00|评论(loading...)|编辑

    评论

    #iDeas wHizz 发表于2006-08-11 09:41:00  IP: 218.79.136.*
    TrackBack来自《zz: 程序员的灯下黑:重知识轻技术》

    程序员的灯下黑:重知识轻技术
    #sokvsolun 发表于2006-08-12 15:59:00  IP: 211.100.21.*
    TrackBack来自《shiyan》

    yiban
    #MasterLRC 发表于2006-08-15 17:01:00  IP: 61.147.119.*
    TrackBack来自《互联网,程序员和浮躁》

    下午终于有一点时间和心情读了几篇blog文章,一篇转贴,一篇是关于外企在中力人力资源方面的问题。巧的是另外三篇竟然都是差不多的问题:关于程序员的理论和实践程序员的灯下黑:重知识轻技术工作7年了,到今天...
    #MasterLRC 发表于2006-08-15 17:03:00  IP: 61.147.119.*
    TrackBack来自《互联网,程序员和浮躁》

    下午终于有一点时间和心情读了几篇blog文章,一篇转贴,一篇是关于外企在中力人力资源方面的问题。巧的是另外三篇竟然都是差不多的问题:关于程序员的理论和实践程序员的灯下黑:重知识轻技术工作7年了,到今天...
    #Idleman 发表于2006-09-03 21:49:00  IP: 211.100.21.*
    TrackBack来自《阅读笔记 2006-08》

    阅读笔记 2006-06
    #项目实施部 发表于2006-10-13 01:13:00  IP: 219.239.7.*
    TrackBack来自《重知识轻技术[寸锐斋]》

    程序员的灯下黑:重知识轻技术
    电视《雍正王朝》讲了这么一个故事:大将军年羹尧奉命到青海平叛,清军因路途遥远,军耗巨大,因此力求速战速决。但叛军避开锋芒,东躲西藏,年羹尧...
    #Carol 发表于2006-08-11 08:44:00  IP: 65.110.3.*
    身边这样的人很多,这样的人适合面试不适合干活:)
    #brucesea 发表于2006-08-11 09:39:00  IP: 210.94.41.*
    程序员的思维方式有时的确很奇怪。
    可能是天天和代码打交道不和人打交道的结果吧。
    #Neil 发表于2006-08-11 08:54:00  IP: 61.154.14.*
    很有道理。我同意。
    #yan 发表于2006-08-11 09:00:00  IP: 219.239.35.*
    同意。想要作出一个完整的产品,完成一个完整的项目不是只有“知识”就够了的,需要细心,有耐心,遇到问题得钻,要为项目着想,最后这一切积累起来才会是你说的“技术”吧.
    #seeker 发表于2006-08-11 09:49:00  IP: 210.21.6.*
    是呀,你说的太对了,虽然我从来不和别人争论是j2ee好,还是.net好.但是,我发觉我还是犯了你里面说的一个错误,就是太看重知识了.呵呵,不过,这也反应了一个国内这个行业的一个整体的风气.因为有很多公司,在拿到一个项目的时候,只要是现在流行的技术,他都用上.他从来不考虑应该用什么.这从某一个程序上讲也给国内的程序员增加了更多负担呀...
    #suxiaoguai 发表于2006-08-11 09:58:00  IP: 219.134.2.*

    有的程序员员只适合忽悠人,不适合写项目。

    其实他们也不是写不好,只是不想写好。

    我很久就有你一样的感觉了,可跟你不一样,我不能写出这样的文章来来。

    这同样就是“知识”与“技术”的区别吧。

    写作,也是一门技术啊。
    #HOGNDONG 发表于2006-08-11 10:07:00  IP: 61.48.10.*
    我也说点吧。

    首先明确几个概念或者说问题吧。

    这里面提到了这么几个东西:
    人员角色:产品经理,项目经理,某程序员
    成果分类:项目,程序

    这样来看,若产品有问题那它的责任是“产品经理”而不应是“项目经理”,更不可能是“某程序员”

    也就是产品出问题首先是你“产品经理”有问题,得去负这个责任;项目出问题当然是“项目经理”负这个责任了,而程序出 问题肯定是得“程序员”负这个责任了。

    从上面这个例子所看,“产品经理”和“项目经理”在程序员交付这个时,他们还都不知道是做个什么,它会有些什么特性。 这显然问题已很明显了啊。

    再往如说吧,文中作者也说到了一些现实中的活的干法。那说就说说盖楼吧,不能说按这个模式来进行啊:“产品经理”说我 要盖个大楼,好的他把这个命令下达给“项目经理”,“项目经理”领命后找一个或若干个砖瓦匠,对他们说你们都听好了, 我要盖个大楼,两个月完工,我要看到东西,你们现在就去整吧,否则拿你们是问。

    呵呵,可笑不,我都想笑了。首先这个楼肯定是盖不起来的,当然被拿来是问的也成了那个“砖瓦匠”。

    原来能力由上到下“产品经理”,“项目经理”,“砖瓦匠”的一个梯度,现在却变成了“砖瓦匠”的能力是最大的了,因为 他们事关大楼能否盖起来,或盖成什么样,盖出什么质量。

    就这么多吧,问题已很清楚了,再说就多了。
    #bestread.cn 发表于2006-08-11 10:16:00  IP: 221.218.123.*
    #cunruizhai 发表于2006-08-11 10:27:00  IP: 61.191.27.*
    同意HOGNDONG和movingboy2关于责任的观点。责任不仅仅是程序员的,项目经理大有问题,PM也没有把事情定义清楚。但本文主题主要是针对程序员。

    另外,不认为产品经理、项目经理和程序员是个能力从大到小个关系。他们是平等的主体。

    删除了一些重复的帖子。CSDN的程序,唉。
    #tangl_99 发表于2006-08-11 11:14:00  IP: 218.88.41.*
    到底是知识与技术的差别还是理论知识和实践技术的差别?
    崇尚经验主义,实践主义,而忽略理论知识的指导,可能就连那10%都压缩不了。

    "什么C++,Java,.net,什么STL,Struts,Spring",这些也无非就是一些实践技术,实践工具而已。
    #brucesea 发表于2006-08-11 10:31:00  IP: 210.94.41.*
    到底是程序员的问题还是项目经理的问题,
    其实楼主只是虚构一个例子而已,可能例子欠妥,
    但你知道人家的意思就可以了,
    而且现实当中程序员也的确常常有此种问题。
    在这上面讨论没有太大意思。

    没把握总体思想就在细节狠下工夫,是不是也是程序员的思维方式呢。
    谁让写代码错一个字符也不行呀。
    #十八哥 发表于2006-08-11 10:35:00  IP: 202.106.86.*
    很多问题是在管理(技术管理)、设计方面出了问题,但是问题暴露出来是在程序员实现以后。
    承担责任却只有下面做事的人。
    不幸的是这样的问题几乎每天都在发生.....
    #antliu 发表于2006-08-11 11:42:00  IP: 58.49.232.*
    我从来不认为中国程序员缺乏的是技术,恰恰相反,他们缺乏的是知识。现在看来,软件业也缺乏知识,软件工程知识。
    #qgq 发表于2006-08-11 11:33:00  IP: 200.50.36.*
    看主题能够明白楼主想表达的意思,但楼主的文章确实有很多地方值得商榷,文章内容并不能站在一个公证的立场来阐释它的主题, 研究几个月啊,这几个月的时间项目经理没有做跟进么? 如是一个比较正规的公司最起码每周都要开个会,项目经理做一下跟进调查的, 我们这里要求程序员每天都要写一个工作总结不用太详细10分钟就好了,如果根据这个规章制度的话我就不信那个程序员 几个月的总结就是研究调查吧,每周的会议项目经理就没点建议?? 如果真是如楼主所说的情况的话干脆去做外包吧, 大家都省心,留个产品经理写个项目需求, 项目经理和程序员另求发展
    #captainwh 发表于2006-08-11 11:46:00  IP: 218.27.72.*
    撇开楼主的例子有偏颇之处不提, 现实中的确很多这样的程序员

    这不我公司前阵就招了一个, 两年多vc经验, 谈起各种流行的技术来头头是道, 开始我还挺高兴, 以为总算能有个不错的帮手了

    结果参加到项目中来才发现代码写的一塌糊涂, 简直是不能看

    现在国内的确有重理论轻实践的趋势, 满天飞的是各种新奇的理论, 思想, 架构。。。
    可是我们的程序员很多代码细节都处理不好

    都说理论是基础, 但在我看来, 程序员不仅需要各种技术理论做基础, 同样也需要大量的代码实践, 这样才是扎实的基础
    #yesmsn 发表于2006-08-11 11:37:00  IP: 218.244.111.*
    www.yesmsn.cn
    #qgq 发表于2006-08-11 11:38:00  IP: 200.50.36.*
    忘记补充了,中间还没有提到质检部门的事情

    "这是不是软件公司里经常发生的情形?"
    肯定的回答是这不是一个正规软件公司里应该发生的事情,
    #movingboy2 发表于2006-08-11 09:25:00  IP: 219.135.164.*
    别把责任都推到程序员身上,此项目经理也有很大的问题:

    1.没有对产品成果制定出更为明确的约束,而通常这些约束不会是只有一个方面。仅仅是一句简单地要求把算法效率提高20%仍是不足够的,案例中经理和程序员对此的理解就出现了差异,这是导致项目延期的一个重要因素。对于考评结果,总经理肯定是帮强势的项目经理而不是弱势的程序员:在双方的观点都不能说100%正确的的情况下,肯定是帮项目经理而不是程序员。为一个程序员而开罪一个项目经理,值吗?
    2.没有及时控制项目进度,完全放手给程序员。个人的经历告诉我, 只安排了任务而不给出明确的工期,不对进度进行管理,这客观上会助长程序员的技术完美思想而忽视了进度
    3.没有预留适当的进度风险余量,在任务可能延期时缺乏应变措施。既然这个算法对项目很关键,项目经理更应该评估相应的风险并给予足够的准备,而案例中的项目经理很明显缺少这种预见性

    综上所述,追求技术完美是每位负责任的技术人员的自然思维,当然聪明的程序员懂得在技术和进度之间平衡,而案例中的程序员只是不够聪明。另一方面,项目经理的管理工作存在很明显的缺位,而把这些过错完全推卸给他人更是不负责任:公司因此会对一位员工失去正确的评价,自己的管理水平也不可能提高。
    #midthinker 发表于2006-08-11 12:55:00  IP: 218.1.190.*
    我到以为,中国程序员更多的是重技术而不重知识,做事往往不求甚解,按巧合编程,程序恰巧可以运行了,就不再细究其原因,最后导致问题换了个模样又发生了,但程序员还以为又遇到了新问题。

    上面的案例出在
    1。约束上,约束没有描述清楚,听过且过。
    2。任务成果没有及时回报,虽然看上去是一个任务,但却也做了好几个月,一个任务如果超过3天,则计划是必然的,并且在每个计划点结束时进行评审(评审可以仅仅是一个review,而无需搞的文山会海)
    3。任何时候都应该交流,大多数时候需求约束不是立刻就能确定的,需要不断的去交流和提炼,但我不知道几个月的时间里,他们交流过几次?还是像求伯君时代一样,一个人在黑室蒙头解决问题?
    4。职业素养,一个任务首要保证的是按时按质按量完成(让任务创造价值),第二位是个人经验与技能积累,但显然程序员有些本末倒置了,即使到最后任务完成都没有进行review,这不是一个职业程序员应有的态度。

    归根结底是程序员职业技能的缺失,而不仅仅是技能的问题,企业的管理也存在很大的问题,一个任务就会造成如此多的误区,那么一个项目会怎么样呢?
    @.@||~
    #figo 发表于2006-08-11 13:39:00  IP: 59.40.208.*
    我感觉你们在讨论什么程序员,项目经理,产品经理各自的是与非,就象是程序员在讨论。NET与JAVA,阅完全部评论以后,我糊涂了,真不知谁讨论的对。
    #Shawn 发表于2006-08-11 13:01:00  IP: 221.10.24.*
    的确值得我们思考.
    #fdshenjia 发表于2006-08-11 13:02:00  IP: 218.1.127.*
    纸上得来终绝浅,要知此事须躬行。
    我做程序的体会。

    楼上很多人谈什么项目经理,产品经理,程序员谁对谁错,离开了楼主所要表达的意思,就像文中的程序员一样,没有理解整个项目实际目标一样。
    #trd 发表于2006-08-11 13:06:00  IP: 221.224.47.*
    楼主只是要说明这位程序员的动手能力不好。这又和知识与技术这两个笼统而又庞大的概念有什么关系呢?难道楼主是要说理论知识与实践经验?
    技术本身就是一种知识,确切的说是一种通过实践中总结出的知识。
    从实用的角度来说,这个程序员是失败的;从治学的角度说,这个程序员是成功的,因为他态度严谨。
    软件编程首先是一门科学,其次是一门艺术。
    如果要举例子来说明某个问题的话,就尽可能找一个没有什么漏洞和歧义的例子,因为你总不能要求每个人都去猜你的意思吧。
    #fdshenjia 发表于2006-08-11 13:08:00  IP: 218.1.127.*
    纸上得来终绝浅,要知此事须躬行。
    我做程序的体会。其实做任何事情都是这样的。

    楼上很多人谈什么项目经理,产品经理,程序员谁对谁错,离开了楼主所要表达的意思,就像文中的程序员一样,没有理解整个项目实际目标一样。
    #walker 发表于2006-08-11 14:05:00  IP: 222.66.34.*
    迷茫,我想大部分都偏离了作者想要表达的意思.....虽然关于项目经理、产品经理、程序的责任也有一定的道理。
    #anythings 发表于2006-08-11 15:32:00  IP: 60.0.12.*
    我想大部分都偏离了作者想要表达的意思,文章对项目经理,产品经理并没有很多的详细描写,只是说明其中有这么个角色,作者想要表达的意思不是想说明他们之间的关系,或者谁该负责任.而是对程序员技术与知识的一个深刻分析.
    #Rex 发表于2006-08-11 15:42:00  IP: 211.136.93.*
    一个关键,人们为了生活的好点很多事情不会作的太精细,所谓差不多就好。做事情往往如此。
    另外这个例子,说明要干就要干使唤人的经理。
    #bucciarati 发表于2006-08-11 14:41:00  IP: 61.186.104.*
    强烈同意!!!
    #Surge 发表于2006-08-11 14:43:00  IP: 220.165.193.*
    程序员应该是知识与技术的结合。
    只讲知识,不讲技术,等于只有理论,没有动手能力。
    #captain 发表于2006-08-11 15:29:00  IP: 61.183.248.*
    不认同楼主对知识和技术的定义,
    知识和技术相去甚远是不错,但掌握知识和掌握技术相比,前者要困难得多。技术只需要多实践、多积累经验就可以变好,只要有时间就可以搞定,但知识,尤其是探索未知的领域的知识,就要困难多了。科学家和工程师可能花费同样的时间完成各自的工作,但科研比工程要难多了
    #guangmingshizhe 发表于2006-08-11 14:49:00  IP: 58.56.38.*
    的确,在我身上也存在这样的问题,知道不等于能够灵活运用组合出理想的产品,要想达到一个比较理想的境界,还需要很长时间的磨练
    #speedtide 发表于2006-08-11 16:20:00  IP: 221.10.47.*
    楼主说的那一些不叫知识,叫常识,对知识的掌握是要靠极高的悟性的,技术在于实践,对于一个真正掌握知识的人,改正这些就是几分钟的事
    #yangwuhan 发表于2006-08-11 17:22:00  IP: 218.80.74.*
    知识和技术是为应用服务的,采用什么知识和技术取决用做什么产品,c++也好java也好,哪个更适合于产品,就用哪个!
    #rongren 发表于2006-08-11 13:20:00  IP: 218.247.0.*
    HOGNDONG,说的有道理。
    做为一个产品或项目的负责人不应将自己定位为一个官吧,而是应对你所做事情能负得起责任,并且有能力负起这个责任。这才是公司花比程序员高出很多倍价钱请你们来重要原因啊,单传个话谁不会,用不着花那么多钱吧。
    #houor 发表于2006-08-11 18:52:00  IP: 61.183.184.*
    有一定的道理,但也有些片面
    出现这样的问题不是一个人的责任
    产品经理没有做好项目的管理,应该负主要责任,程序员其次
    #jinnee 发表于2006-08-11 16:39:00  IP: 221.217.34.*
    知识和技术没差别,关键在于态度
    #rete 发表于2006-08-11 16:51:00  IP: 221.10.47.*
    写这篇文章的人明显知识不足,压缩要分有损压缩和无损压缩,无损压缩不是每个都能压20%的和圆件的信息熵有关,懂了吗
    #SKY911 发表于2006-08-11 21:03:00  IP: 59.44.116.*
    对待不同的问题大家有不同的看法这是很正常的事情。。
    对于我们这些刚出道的新手来说。。知识技术一样重要。。
    现在刚开始从事这一行。。希望大家给点建议。。。。。。。。。。
    #软件下载 发表于2006-08-11 23:27:00  IP: 221.218.160.*
    不错.
    #stan 发表于2006-08-12 00:07:00  IP: 219.134.76.*
    我认为楼主说的很有道理。是有很多人都是这样的。我觉得我也算是一个。这么多年程序员生涯。能说出来的技术,我都有了解。但是真正精通的,可以说没有。而且,就项目如何组织架构,平衡框架,和时间的关系,合理划分模块。给出清晰接口,保证,项目实现的稳定。可扩展。可测性。等等,很多问题到现在还是不清楚。

    不过。我觉得这个很多原因是程序本身不能控制的。对于一个程序员来说,开始一点一点做下来,要面对很多竞争。公司应该有这方面的培训。一开始就规划好个人的职业规划。是要在那个具体的技术方面希望成为技术专家,或者。是转为管理以后。可是那个程序员知道1年后自己干什么阿!所以,实在是瞎子模路。是整个行业的浮躁。包括中国的大环境。教育等等。标准指定等等都有体现。

    所以,对于个人利益来说,不能改变世界,就改变自己,多学点知识,那天被公司炒掉,后能轻松面试好,还是技术好了点。不会吹牛。找不到工作好呢!

    刚毕业的肯定会选前者。 干的久一点了,转行了! 还有兴趣想干程序员的。现在才知道自己的兴趣所在。才开始专注。可是时间上,年龄上都没有优势了。

    我个人认为。一定要打下坚实的基础。(最好工作中。公司能定时培训。基础要不断打劳)。厚积薄发,这样结合实践,精益求精才能有所作为。当然。沟通不清楚是双方面的事情了。
    http://www.beg11.com 程序员专注技术论坛。
    #fengge 发表于2006-08-12 09:57:00  IP: 221.221.171.*
    其实就是理论和实践的关系
    #Anthony 发表于2006-08-12 11:57:00  IP: 218.1.127.*
    我作为一个计算机专业的学生,感觉大部分的学生都掌握很多的计算机专业知识,可是毕竟没有什么实际经验,没什么技术,
    到头来,还是找不到工作??
    不是郁闷么!
    而很多的社会培训,教会了技术,一样活的潇洒自在

    这是两对矛盾,到底该怎么解决呢?
    #dunjanchon 发表于2006-08-12 12:00:00  IP: 219.133.232.*
    其实最终还是 理论与实践之间的辨证关系.

    理论联系实践,实践以理论为指导,理论来自实践,实践不断丰富和发展理论
    #双鱼 发表于2006-08-12 12:14:00  IP: 222.168.144.*
    个人以为,技术无所谓好坏,只有适用一说,讨论什么阵营好什么阵营孬,毫无意义可言。

    更多的争论除了行业经验的不足以外,还有就是对于技术的理解深度不够所致,也许还有厂商的商业利益考量,所做的一些宣传而已。

    知识是技能的基础,没有知识做基础,技能提高也很难。工厂化的训练环境与程序员的成长环境也大有不同,一个师傅成年累月的在机床上干活,只要不是中断,都可以练就一个好手艺。程序员有这样的环境么?大部分的项目公司,能作好项目就ok了,哪里有什么时间去研究和改进,环境不同,不具备太多的可比性。

    把所有的责任推卸给程序员,也不是负责任的做法。
    #didizyp 发表于2006-08-12 13:52:00  IP: 211.136.158.*
    感觉楼主的例子不是很好,但事情说的很有道理。
    最近就遇到这样一个人,谈起技术来头头是道,但一看程序,垃圾。写程序,只要实现功能就行,根本不考虑效率,而且代码中经常埋伏着各种隐患;改Bug,只要改掉当前问题,即使改变程序逻辑,把异常处理去掉也无所谓,甚至可以修改测试通过的代码。明明什么也不懂,却一天到晚自以为是;明明自己有错,却总要反过来说别人不是,也不知道领导怎么会器重这种人。听说他最近在外边投简历,华为、IBM都在找他,唉,垃圾公司找垃圾人。
    #高枫 发表于2006-08-12 14:01:00  IP: 222.190.240.*
    技术=能力+经验+悟性
    有人干一辈子还不是高手
    国内还是重文凭,轻技术,有文凭可当官,5000年的封建社会影响,不是定个政策就能改的,在美国只要你有能力,没上过学都能当教授,国外没终身教授,教授是教技术的,不是上课读书的。
    #father 发表于2006-08-12 15:56:00  IP: 220.168.210.*
    主要责任在人力资源的人或者老板身上,
    可以看出公司的管理一团糟,用人不当。
    重知识而重技术的问题是次要的。
    #萧谣木木 发表于2006-08-12 17:42:00  IP: 58.217.226.*
    呵呵。
    楼主广义了技术
    狭义了知识
    #lijing2001 发表于2006-08-12 11:39:00  IP: 221.11.169.*
    个人认为,只有知识作指导,才能进步,不然,永远也不可能掌握更多的技术....如果你都不知道这些知识,怎么能设计出好的架构?
    #Grecks 发表于2006-08-12 18:42:00  IP: 219.144.78.*
    呵呵 理解楼主的意思就好了 三人成虎 话语的表述 是有限了一点 个人认为 技术从某种程度上依赖于知识 就像楼上地说的 由个人什么都会但是就是写不出来 那他的方向是做老师吧 大概 技术是不能缺乏老师这样的人的帮助的 但是这种复杂的脑力劳动不是说但有老师的指导就可以的 中间还是相差很多。。。其实大可以这样说 技术比较重要 因为知识某种程度上是一个社区和团队的文化 个人的只是永远是有限的 但个人的技术却直接涉及到这个产出的东西是不是可用 有好的知识固然可以高效能的作些事情 但是却不是必然 本身也是鸡蛋与鸡的问题。
    #corsak 发表于2006-08-12 19:44:00  IP: 221.11.157.*
    有道理,严重同意.
    #billjeff 发表于2006-08-13 00:08:00  IP: 60.162.6.*
    有一点可以肯定,就是要多动手,多实践,尤其对于计算机这个行业,不动手只看是不行的
    #阿木 发表于2006-08-13 09:44:00  IP: 218.14.200.*
    我记住了你的教训。

    确实有很多这样的人。
    #hotstong 发表于2006-08-13 12:42:00  IP: 219.137.240.*
    说得有理!真正的高手,完全要能够在实践中证明自己!对于个人的要求是即要有知识,也要有技术!有知识没技术那是侃爷;有技术没知识,那是短视。
    #Aadon 发表于2006-08-13 13:17:00  IP: 222.76.105.*
    同感!
    #痛感 发表于2006-08-13 17:08:00  IP: 220.113.166.*
    我手下的程序员更晕,知道一些好的结构,就不管什么都要硬套上去 结果整出来的东西 什么都不是
    #tf360 发表于2006-08-13 23:23:00  IP: 218.79.140.*
    我做过泥瓦工,盖过楼,我也做过程序员,写过代码。

    泥瓦工偷工减料,少砌一块砖头,少放一根钢筋,大楼不会倒的!!!!这是因为建筑设计的时候加上了一个很大的安全系数,差诺干的钢筋,没事!

    程序员少写一个段代码,写错一个字母,程序就错了。甚至无法执行!软件设计的人要么就没有人,要么就是定个框架而已,不可能
    写详细代码。

    泥瓦工不需要懂房屋怎么设计的。包工头让他在哪里放钢筋,就去放钢筋,让他在哪里砌砖头,就去砌转头。

    程序员必须懂框架结够,否则根本没法写代码。

    房子造好了,就造好了,想改建筑结构,没门儿!想移动一下柱子的位置?没门儿!

    程序写好了,要你改哪儿,你就得改哪儿?你说不会改,就要你下岗。

    就算大楼倒了,出了人命,泥瓦工没责任的。他去盖别的楼去了,抓起来的是建筑设计师,施工方项目经理,房产老板,包工头等人。

    程序运行不起来,他妈的,所有人都盯着程序员让他改,倒霉的永远是程序员。

    这就是建筑工程和软件工程、泥瓦工和程序员的区别!!!!

    所以说中国的程序员要写出工地上的“活动房”式的程序,否则你就下岗了,那中国的软件工程永远只是会造活动房,造不出“高楼大厦”。
    #........ 发表于2006-08-14 13:27:00  IP: 222.35.23.*
    楼上说的哪个倒霉的程序员就是现在的我.不但改自己的程序,还要改别人的.郁闷的很.

    这篇文章写的真好!
    #雅米 发表于2006-08-14 16:13:00  IP: 211.100.11.*
    很少有人谈谈怎么做好产品的
    这个有道理,做好产品和是硬道理。
    “你知足吧,给你打及格已经看在你干的很辛苦的份上了,因为你没有按时完成,整个项目延迟了一个月,这帐都没找你算呢。”
    这个没道理,因为经理的责任是把握质量与进度,他自己的责任更大。中国现在很缺合格的项目经理与主管经理。(做领导就不干实事的太多)
    #10JQKA 发表于2006-08-14 16:37:00  IP: 169.181.251.*
    就是就是,这种人确实存在,我也提供一个佐证http://huangjien.iblog.cn/post/543/119049
    不过,最好别用“知识”这个词,太羞辱这个词了。
    #chesterwoo 发表于2006-08-14 19:52:00  IP: 202.108.130.*
    在我看来,问题的本质是思维方式。
    #HOMEOFISH 发表于2006-08-14 21:42:00  IP: 58.49.133.*
    我觉得看这个不能太片面。事情发生都不是单因素的,我倒更认为这个是和国家长久来的各行各业的习惯。
    我想我在这方面也有点如楼主所说的那样,不过有些时候是没有办法了,本来不想学,但作为一个程序员,有时这个项目要用这个语言,那个项目要用那个语言,没有办法啊
    #xiezengguang 发表于2006-08-15 08:37:00  IP: 61.167.60.*
    我感觉学校里面也是的哦
    好多人,不好好学习数据结构,操作系统,就搞什么jsp
    .net

    花花绿绿的东西很多人喜欢
    #wangxb_st 发表于2006-08-15 09:53:00  IP: 211.96.136.*
    其实知识和技术之间,就如同《笑傲江湖》中的剑宗和气宗一样,无法简单说明那个更好那个更不好。能够恰当的使用就是最好。有很多计算机方面的科学家,写程序不见得能够比一个熟练的程序员好。但这并不能说,熟练的程序员比计算机科学家更好,还是要看具体的应用场合。
    #masterlrc 发表于2006-08-15 15:21:00  IP: 219.142.136.*
    作者所产的这种现象的确大量的存在,程序员往往是跟风新技术、新理论、新框架。
    可是大家想一下,他们愿意如此吗?大环境如此啊,你找工作时靠的就是这些,很少有人关心你真正的处理和解决问题的能力。而有现在许多公司也是什么技术新用什么,什么名词火就用什么,根本不去考虑实用。

    一片浮躁,何时才能尘埃落定!
    #masterlrc 发表于2006-08-15 16:21:00  IP: 219.142.136.*
    把我很久以前写的一点东西也贴出来了
    http://blog.csdn.net/MasterLRC/archive/2006/08/15/1066709.aspx
    #Arthur 发表于2006-08-15 23:03:00  IP: 211.144.97.*
    楼主的观点是好的,不过文章的主题和内容有偏差,每个人从不同的角度去看,自然得出的结果都不相同.
    首先,就此文章的阐述点,我想的确揭示了一部分现在我们国内的软件开发人员的一些弊病,过于的去跟随新知识,但忽略了对某种技术的深的研究.其实这也是很无奈,技术日新月异,程序员恐怕是唯一的要用一生的时间不停学习才不会被淘汰的一个种族了.有限的时间,无限的知识,于是就有了这个的尴尬.
    其次,我们必须要看到我们现在的软件企业的一个很大的问题,就是缺乏真正的适合软件企业独特生产性质的管理者.我见过太多的软件企业的管理者,基本都是两类,一是普通行业的卓越的管理者,把生产企业的管理理念坚定不移的使用到软件开发企业中来,用固定时间加上生产量来决定员工的价值.二是反过来,把任务一下达,就自以为的可以自然而然的去到期收获了,如楼主文章中的项目经理.我不知道,如此的管理,会得到什么.更何况软件开发不是生产机器,建造房屋.如文章所说,假如3个月程序员回复说,没有合适的技术进行压缩,那又该如何?好的管理第一是用对人,第二是可以时刻把握所用的人,第三是明确了解自己用人后的结果.
    其实,对于普通的一个程序员来说,他们要做的只是不断的去学习新的知识,用设计好的框架去建造软件.需求的关键是沟通.如果一个需求不明确,或者是系统的架构不明确,那关键的责任应该是项目经理和架构师的责任.不要期待让程序员去猜测需求,同样的一句话,我想100个人会给出100个不同的解释.
    一个好的管理的团队,管理者,应该能明确掌握项目的分析和进度,并要全局掌握每个成员的能力和性格.并给成员一个时刻沟通的环境.开发成员,能善于与管理者沟通项目需求,并不断完善自己在开发中的位置和作用.
    #http://valenhua.go3.icpcn.com/  发表于2006-08-16 14:00:00  IP: 219.136.13.*
    http://valenhua.go3.icpcn.com/
    #白菜 发表于2006-08-16 15:26:00  IP: 168.160.250.*
    用魔法来说明

    知识相当于掌握魔法的种类,技术相当于对某种魔法掌握的熟练度

    缺一不可,缺一也可

    掌握的种类太少难以应付各种战斗情况,掌握的熟练度太低好魔法也用不出好效果

    掌握够强大的魔法种类可以弥补熟练度不足的缺陷

    掌握的熟练度够高低级魔法也能打出高伤害

    所以其实没有必要在这上面争太多,能够打败敌人的魔法师就是好魔法师!
    #Lookee 发表于2006-08-17 08:54:00  IP: 58.60.185.*
    技术无用
    #白菜 发表于2006-08-17 11:17:00  IP: 168.160.250.*
    多说几句

    其实讨论重知识还是重技术这本身就是纸上谈兵

    每个人有不同的路要走,每个人所处的环境也不同

    知识渊博的人,技术实在的人,各有用武之地

    还是多在实践中发现自己喜欢的方式自己拿手的方式,更为重要
    #Sozell 发表于2006-08-17 01:19:00  IP: 219.82.226.*
    就事论事了说,大家偏题了!作者的本意是说现在的程序员重知识轻技术,目的在这里,怎么大家都把精力放到文中出现的证明目的的例子上去了?讨论这个有何意义?
    个人认识总是有偏差的,不过这个也反映了部分的程序员现状。也许他例子举得有点不独具匠心而已吧
    #lzw 发表于2006-08-17 11:43:00  IP: 61.144.32.*
    tf360 发表于2006-08-13 23:23:00 IP: 218.79.140.*
    我做过泥瓦工,盖过楼,我也做过程序员,写过代码。

    泥瓦工偷工减料,少砌一块砖头,少放一根钢筋,大楼不会倒的!!!!这是因为建筑设计的时候加上了一个很大的安全系数,差诺干的钢筋,没事!

    程序员少写一个段代码,写错一个字母,程序就错了。甚至无法执行!软件设计的人要么就没有人,要么就是定个框架而已,不可能
    写详细代码。

    泥瓦工不需要懂房屋怎么设计的。包工头让他在哪里放钢筋,就去放钢筋,让他在哪里砌砖头,就去砌转头。

    程序员必须懂框架结够,否则根本没法写代码。

    房子造好了,就造好了,想改建筑结构,没门儿!想移动一下柱子的位置?没门儿!

    程序写好了,要你改哪儿,你就得改哪儿?你说不会改,就要你下岗。

    就算大楼倒了,出了人命,泥瓦工没责任的。他去盖别的楼去了,抓起来的是建筑设计师,施工方项目经理,房产老板,包工头等人。

    程序运行不起来,他妈的,所有人都盯着程序员让他改,倒霉的永远是程序员。

    这就是建筑工程和软件工程、泥瓦工和程序员的区别!!!!

    所以说中国的程序员要写出工地上的“活动房”式的程序,否则你就下岗了,那中国的软件工程永远只是会造活动房,造不出“高楼大厦”。

    说的好
    我现在就是在改别人的程序
    #wavaj 发表于2006-08-17 21:15:00  IP: 218.2.250.*
    要写出高质量的代码,靠来自实践的不断总结,要有追求完美的个性.还要靠好的技术书籍的指导(这是进步最快的一种方式,因为这是别人的教训和经验总结).总之,要用心.

    我看到很多的垃圾代码竟然来自有多年经验的老手,我真不敢相信.很多禁忌地方都是大师在他们的书中认真提过的.

    很多人只追求功能实现,实际用的是一种不好的处理方式. 但从此以后他会一直用.给后来的维护人员带来了很大的负担.

    我觉得 我们连重知识都谈不上.
    #doggyzone 发表于2006-08-21 12:24:00  IP: 75.7.10.*
    这不是重知识轻技术,而是重技术轻工程
    #bucuo 发表于2006-10-21 06:40:00  IP: 82.229.223.*
    写得真好!!顶,再顶!!!
    #过客不留大名 发表于2006-10-21 03:19:00  IP: 58.67.30.*
    我要 当 一辈子 程序员

    给 老板 打 一辈子 工

    我要 把我的青春 热血 都贡献给 我的 老板

    我要 把我的钱钱 全部献给 我的 老板

    我要 不停的加班 加班 努力工作 创造更多的 剩余价值

    这样老板才有钱 买车 买房 找三房姨太太

    我要 努力 努力
    #汉克 发表于2006-10-21 08:26:00  IP: 60.181.196.*
    写的不错
    深有同感!
    #billy 发表于2006-10-21 10:34:00  IP: 222.91.125.*
    看了这么多人都在这打侃特侃,我也从内心里忍不住要在此涂点真言,中国现在的计算机症状是相当的严重,现在的高等教育不光是本科生,就连有的研究生也是这样子,一上来就做什么所谓的“项目”,还学习新技术什么.net,java,跟踪什么Ajax,学习新的技术是对的,说明你是上进的,但是光学这些语言你能学到多少真正的东西,无非就是一个MIS系统你可以做出不同的语言版本。但是好多人连最基本的几个大学讲的数据结构里的几个常用的算法,排序啊等的都不可能了解的好,这行吗?我认为:语言始终是一个描述工具·语言好与坏是你表达你的思想的好坏的一个工具,但是你的思想或者思路错了,那么你用的语言在高级,你说的再好,也白搭!
    #braveconf 发表于2006-10-21 11:50:00  IP: 218.82.127.*
    虽说理论指导实践,但很多情况下理论不太过关的,实践却可以做的很好--因为很多其他的人已经做过分析了。
    #流畅 发表于2006-10-21 15:44:00  IP: 221.234.215.*
    楼主说的也不对,知识和技术是一个东西的两个方面,就好比理论和实践一样,偏向哪方面都不对,中国程序员偏向知识是有一定环境因素的,用人单位招员工也是偏向于知识方面,我们不这样不行啊
    #zhenyue 发表于2006-10-21 23:42:00  IP: 211.161.37.*
    明显需求没写清楚,赖程序员干啥,程序员就按字面意思理解。
    #zxlark 发表于2007-07-19 18:19:20  IP: 219.134.241.*
    末了再回到开头的故事:

    项目经理回去和程序员再重新设计,又多花了一个月,终于达到了目标。但因为这个部分是一个大项目的一部分,整个项目不得不延迟了一个月。

    程序员是一部分原因,但是这么一个影响进度的模块竟然没有评审或者没有预见到风险,其实主要是项目经理的责任了
    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © 寸锐斋