作者reader (读者)
看板CSSE
标题[转录]Re: 请问各家资工的特色
时间Sun Jul 3 19:40:09 2005
※ [本文转录自 Programming 看板]
作者: reader (读者) 看板: Programming
标题: Re: 请问各家资工的特色
时间: Sun Jul 3 19:38:19 2005
※ 引述《michaelz (michaelz)》之铭言:
: 我觉得algorithm远比coding重要多了
: coding强的人或许能把程式的效率提昇50%甚至100%..
: 但是好的algorithm常可以将效度提升10到100倍..
: 这已经不是在争那几%的效率了..
我没听过有哪个演算法有这麽大的效能差距,而没有写在教科书上的。
这年头连在软体公司当最基层的助理软体工程师的,也往往都是研究所
毕业了,最好是以研究所毕业会学到的演算法为基准,来考量 coding
较强的人的电脑科学常识才对。
所以麻烦不要把会 coding 的人当做是连一点电脑科学常识也没有,而
可以让学生们大谈好的演算法如何如何,把程式设计者当做理论白痴。
甚至,如何写出好程式,是电脑科学中最为艰深的研究之一,像是型别
理论的发展,物件导向语言的运算基础是什麽,程式码重构的计算理论
等等,哪一个不是抽象化到近乎哲学,是纯粹理论研究者关心的议题,
是电脑科学的最前线之一,其中的议题,只怕学生们是听都没有听过,
更别提我一心向往的 cyberspace dynamics 境界,将电脑科学的各个
学术领域统整起来。
而一般人所知道的电脑科学,其实是很应用层面的东西,演算法效能的
推进,多数已到了瓶颈,一个领域之内成千上万的学者加起来,一年能
有一个重要发展就很了不起了,根本不如外界所想像的那麽神奇,投资
报酬率之低,更是只有巨型企业和先进国家才养得起。
我是写程式的,只怕我平日看的学术论文都比研究生多,还是自己掏钱
买期刊和线上论文,不靠学校资源的,而我从大一就开始看学术期刊,
但我还是更为重视写程式这件事。
好的程式设计者如庖丁解牛,乃是格物致知,由技进於道,不断学习和
内省而探求世界的本质,在日复一日的操作中窥视人类智慧的奥秘,才
不是没有专业和思想的机器操作员。
所以程式设计者中会有天生奇才,会有数理精微哲学渊通的强者,也有
更多各式各样的人,他们都在用自己的方式,在程式写作中寻求自身的
大道,若没有认识这样的人,也不要以为他们并不存在。
: 另外以google为例..他搜寻为什麽快又有效..
: 演算法的优势绝对是最重要的因素...
: 虽然说好的programmer能减少server的loading或是增加使用者人数
: 但好的algorithm的效用远比钻研那些code要inline或是那些语法效率要高来
: 得效用大得多...而单纯的programmer往往在意的是这些问题
: 把一个专案当成是一颗树..那algorithm及上层的规划就是树干
: coding是枝叶..有粗壮的主干才有可能有茂密的枝叶..
: 一个有规模的专案绝对都是从使用者需求,市场分析, use case,界面设计, 演算法选择
: 开始的..单纯只顾着coding的大概到老也还是只会coding...
: 这些能力不会因为程式写久了就自己产生的..
: 而对於最重要的上层的分析等工作,写程式的能力绝不是必要的
: 不过我不否认熟悉coding的人对这些关键的能力会有较多的感觉..
: 但是沉迷於coding是很容易走火入魔的...
讲那麽多演算法的好处,请问你能自己研发新的演算法吗? 能在指定的
时间内研发出来吗? 如果不能,那麽演算法不过就是运算类的程式片段
型录而已,懂得看型录的人有什麽了不起呢。
当然很多人连型录都不知道,就可以吹捧演算法了。没看过演算法型录
吗? 没关系,我举个例子:
http://www.users.zetnet.co.uk/hopwood/crypto/scan/index.html
连演算法好不好、有没有问题,都已经标注出来了,类似的东西很多,
你自己若不能比这些专家厉害,就请不要鼓吹每个人都该去搞研发,而
不是多去找找这类型录来应用,台湾需要的是对先进科研成果的吸收和
应用,而不是在贫瘠的研究土壤上牺牲人才。
若不讨论要花大力气研究的高等演算法,真正的程式设计高手随手就是
自制的一般演算法,它们不过就是比较麻烦的程式码,然後等行销部门
需要酷炫一点的名词时,才在说用了什麽什麽技术,能够提昇多少多少
效能。
软体技术的世界中,重要的就是创新、品质和标准,若不懂这些东西,
根本就不用谈成功立业,而它们背後的东西是什麽? 那就是程式设计的
能力,没能力不用谈创新,不用想符合标准甚至创造标准,更别提什麽
是品质了。
软体制作就像是下围棋一样,明着可见的特定演算法,只是类似定石的
东西,没有人能说它不重要,但背会全部定石能算得了什麽?
这里真正的问题,其实是学界和业界的诠释权争斗,演算法是学界最能
插手业界的一个地方,所以总是被说得天大地大,好像在业界就不懂得
设计演算法了,还宣传得像是非专业的电脑科学家就做不出来,而真正
软体制作中的其他无以数计工作,却总被当作是无足轻重的事情。
你知道程式设计工作中,最需要外部协助的地方是什麽吗? 当然,不是
演算法,而是配置管理 (configuration management), 听过吗? 曾经
把它当一回事吗? 在中大型的软体制作中,它才能称主干,配置管理的
好坏,影响软体开发方法的选择,再影响软体要怎麽分析要怎麽设计,
能不能赶工,能不能在时间内完成,软体品质能不能有效控管。
而你又知道现代软体团队中的领导者,应该要做什麽事吗? 较为正确的
答案是什麽都做,特别是要帮其他人收烂摊子打杂工,所有问题都要能
扛起来,而不是去做一个高贵的不沾锅,能为人下才能为人上,而其他
有特定专业的人,其实都是平等的,其中能力愈广者愈为重要,若只有
单一专长,例如能做理论却不能做别的事情,往往是公司头痛的对象,
也只有大公司才养得起。
这是一个整合的时代,拥有专业只是最起码的能力,而能够整合,才是
关键所在,如何才能有效整合,才是软体产业当中最重要的课题,无论
那是个人能力的广度、公司制度的规范、软体标准的符合、上下游业者
之间的沟通合作、客户需求的有效理解,无一不是「整合」。
一位好的程式设计者,所需要在意的岂止是程式码的细节? 那根本就是
你们自己的错误认知和错误想像,又或者你们所知道的软体世界,只是
软体产业的底层悲惨世界,然後用这种观点,认定其他世界的状况就是
如何如何。再不然就是把自己公司的体制当成真理的乖顺员工。
简单来说,就是不要班门弄斧,以为程式设计者都是纯靠劳力赚钱的,
在这个电脑硕博士多得跟野狗一样的年代,在软体事业经营如此艰困的
时候,还能在这位置上坚持下来的人,所靠的就是不息的热情、梦想与
专业。至於那些不在软体产业中的企业资讯人员,他们怎麽不专业,就
不关软体业的事情,他们是我们的客户和肥羊,不和我们一国的。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.222.173.29
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.222.173.29
1F:推 AssistantR:推~~~板大见解令人佩服!!! 220.139.146.36 07/03
2F:推 ykjiang:哈!又收录了一篇 ^_______^ 61.59.10.38 07/03
3F:推 godfat:大推最後一句话 XDD 61.224.46.3 07/03
4F:推 godfat:真的该出书 XD 文摘集也好 XD 61.224.46.3 07/03
5F:推 taiwancat:光发收费电子报都能赚吧~ 218.170.79.158 07/03