为什么程序员没有成为飞行员那样体面的工作 (转载)

发信人: AaYaYa (啊呀呀|潇湘馆首席大丫鬟), 信区: SimulateFlight
标 题: 为什么程序员没有成为飞行员那样体面的工作 (转载)
发信站: 水木社区 (Tue Jul 18 08:47:18 2006), 站内【 以下文字转载自 FreeDevelop 讨论区 】
发信人: Nullgate (空门・轮扁~wheeler), 信区: FreeDevelop
标 题: 为什么程序员没有成为飞行员那样体面的工作
发信站: 水木社区 (Sun Jul 16 16:02:57 2006), 站内发信人: Nullgate (空门・轮扁~wheeler), 信区: GAME_Designer
标 题: 为什么程序员没有成为飞行员那样体面的工作
发信站: 水木社区 (Sun Jul 16 16:01:57 2006), 站内  对很多人来说,这个标题未免有些不靠谱。但是这两个职业并非没有可比性。
早期的程序员也都是一些精英,通常是一些职业数学家,培养一个程序员的成本
并不比飞行员低多少。早期电子计算机的成本也非常高,为昂贵的计算机配置优
秀的程序员是情理之中的事情。  随着摩尔定律的不断应验,计算机的成本越来越低,界面也变得越来越好。
似乎程序员地位的下降是理所当然的事情。但是笔者认为,这并非是程序员失势
的根本原因,而是软件工业的功利性造成的。  驾驭比空气重的飞行器,可能是最有挑战的工作之一。培养一个飞行员需要
大量的时间和金钱,而且需要飞行员本身具有非常高的反射神经和身体素质。而
且,优秀飞行员和菜鸟飞行员的差距非常巨大――在二战中,一个优秀的飞行员
可以击落数十架敌机,有的王牌飞行员的纪录甚至达到了三位数。  编程并不比驾驶飞机简单多少,也许一个小学生都能写出 hello world,但是
一个优秀的程序员需要掌握许多专业技能。好的程序员需要非常好的逻辑思维能
力和应用数学功底,同时还需要手指具有非常好的灵活性。一个优秀的程序员敲
击键盘的速度并不会比文字录入员慢多少。高级程序员能完成的事情对于初级程
序员很可能是不完成的,或者需要的时间超过了一两个数量级(或者需要初级程
序员成长为高级程序员)。  市面上可以买到一打的模拟飞行软件和五花八门的飞行摇杆。此外,很多人
都可以负担遥控飞机的价码,能够远程控制真正的飞行器。驾驶真实的飞机并不
会比编程有趣,大多数时候仅仅是从一点到另一点,即便是战斗机驾驶员,也不
过是在视距外用导弹锁定敌人。但是飞行员在大众眼中是一种非常有传奇色彩的
职业,毕竟有无数的小说、诗歌和电影谱写了飞行员的传奇。  市面上充斥着各种编程指南,但是并没有什么类似于模拟编程软件这样的东
西。在大众眼中的程序员几乎不存在,他们所熟知的无非是米特尼克这样的肥胖
的黑客。而在中国,程序员几乎成了高科技民工的代名词。  飞行员从来不是孤身奋战的,维持一个飞行员需要很多地勤人员。飞行员需要
了解自己的飞行器,但是他们并不需要自己维修飞行器。飞行器很可能是世界上最
复杂的一些电子机械混合体,只有资深的工程师可以维修这样的东西。此外,为了
实施飞行任务,飞行员在执行任务时需要地面的指挥,还需要地面雷达站等单位提
供数据链支持。一架航空母舰上面有数千人,飞行员不过百数人。  程序员就没有那么幸运了。有人说程序员像一些孤独的骑士,但是笔者认为这
个比喻并不恰当――骑士还有随从和一个所属的组织。程序员似乎是全知全能的,
他们需要自己安装开发软件,学习各种奇怪的软件,撰写文档,编制和调试程序。
我很少看到程序员向他所在公司的信息专家(IT Specialist)寻求帮助,反过来的情
况倒是很多。笔者认为,正是因为缺乏分工,制约了程序员的才华。如果把他们当
作飞行员,那么他们不得不自己制定飞行方案,用简陋的工具建造和修理飞行器,
最后还需要承担一切责任。  每个飞行员都是可以被替换的,任何一个飞行员都可以完成给定的任务。
但是,从某种角度上来看,每个飞行员都是独一无二的,是不可已被替代的。
空军对飞行员的重视远远超过了对飞行器的重视,因为他们很清楚,飞机可以按
计划大批量地生产,但是飞行员不能。  严格的软件方法学希望把程序员变成流水线上的工人,认为只要有严格的管理
手段和工作流程,程序员可以成为一些可以被替换的"零件"。正因为如此,软件工
程中出现了所谓的软件架构师,无非是认为一个好的空军指挥官可以让蹩脚的飞行
员使用高性能的飞机就能取得制空权。幸运的是,XP 一类的先进方法学把程序员重
新推向了前台,并且提出了结对编程的概念――空军采用长机、僚机组合已经有几
十年历史了。  飞行员总是可以享受新技术带来的便利,例如彩色的 HUD 和头盔瞄准仪等。
当然,他们永远可以信赖自己的操纵杆,无论它是电传控制、液压控制还是机械控
制的。总的来说,虽然飞行员需要面对非常复杂的输入设备,但是它们都是被精心
设计的。这些输入设备可以让飞行员在最短的时间内完成对突发事件的响应。决不
会有一个飞行员依赖层次化的用户菜单或者用户手册。  程序员则要悲惨得多,他们至今还在使用原始的输入设备。程序员依赖一种为
了减缓输入速度而发明的键盘布局,或者说臭名昭著的 QWERTY 键盘。从某种程
度上说,键盘这种设备比驾驶舱中的按钮恶劣的得多,因为上面的每个键都是类似
的,没有任何特别的提示和保护装置。相当一部分程序员在纯文本编辑器中编写代
码,而且其中一部分程序员可能是程序员中的精英。虽然现代的 emacs 和 vim 已
经能根据文法分析用醒目的色彩提示不同的符号的含义,但是它们并不比七八十年
代的文本编辑器先进多少。很多人认为一个程序员选择 emacs 这种原始的编辑器是
因为其独立精神,但是笔者认为是因为所谓的集成开发环境通常还不如这些纯文本
编辑器好用。现代的集成开发环境提供了很多优秀的特性,遗憾的是为了应用这些
特性,程序员不得不经常在键盘和鼠标这两个截然不同的输入设备之间切换。至少
目前为止,一个高级程序员使用简陋的 notebook 也比使用集成开发环境的初级程
序员强很多。至少对笔者而言,使用集成开发环境并不能提高自己的开发效率。我
见过很多优秀的程序员在开发时身边都放着许多厚厚的参考书,幕上也全都是各种
形式的开发文档。程序员经常在锁定目标之后再去查询手册,了解如何才能将导弹
发射出去。  正因为这样,笔者认为有必要改变现状。正因为此,笔者认为最重要的是程序
员需要像飞行员一样进行思考,而像飞行员一样思考需要像飞行员一样工作,而这
只能从人机界面入手。作为一个实践者,笔者已经买了由著名的 Logitech 生产的
Extreme 3D Pro 飞行摇杆,琢磨如何使用它进行体面的编程工作。--
Remember, proud brothers
Everything is possible
When you let the mystic power of the dragonflame burn in your heart
Believe it
It's the dragonflame!
by Rhapsody
※ 修改:・Nullgate 于 Jul 16 16:02:09 修改本文・[FROM: 61.48.223.88]
※ 来源:・水木社区 newsmth.net・[FROM: 61.48.223.88]

利用工具生成代码,学习语言和机制zz

推荐一个学习新技术的方法
大部分情况下,我们都通过看书或者读文章来学习一项新的技术,而有时候,看书会比较缺乏身临其境的感觉,看书的时候觉得自己都懂了,但实际操作起来又什么都不会。而且书上的例子大部分都是toy
code类型的,起不了实际的作用,但是开放源码的程序,通常又太庞大,哪里是初学者能看懂的啊。那么能不能找到又比较简单,却又很实用的范例代码呢?有的!答案就在开发工具自动生成代码里!比如你新建一个Windows Forms项目,用可视化的文法加上一个按钮事件,然后把designer generated
code区域打开,看一下vs.net帮你生成的文法,我相信你就会比较容易理解C#中的事件、代理机制。我 初学ado.net的时候,有段时间总是不能入门,终于有一天我用vs.net的向导生成了一个Data Form(新建一个windows
form然后选add new item,选其中的Data Form Wizard),研究了里面的ado.net代码,才一下次豁然开朗了。
最 近我又在学习使用Css+Div来代替Table进行html的布局。在看了一些文章了解了基本知识之后,我用DW新建了一个附带的使用Css布局的模板
页,研究了其中代码,并仿照它的样子,做了一个自己的页面。这个过程一共没用多少时间,但我获得的知识,可能比看多少时间的css教程都多。总结一下,要学好编程是离不开实践的,不论你处于什么水平,都要尽快找一些有实际意义的代码,来让自己感受一下,实战的气氛。

gcc如何编译出动态链接的可执行程序

Re: gcc如何编译出动态链接的可执行程序?
发信站: 水木社区 (Sun Apr 20 15:59:25 2008), 站内
----
creating a shared library
----
gcc -c -fPIC test1.c
gcc -shared -fPIC -o libtest1.so test1.o----
link a shared lib is just like linking with a static archive
----
gcc -o app app.c -L. -ltest1
----
When link a program withe a shared library, the linker (usually) does not
put the full path to the shared library.
When the program is actually run, the system searches for shared library
and load it. If it does not find, system will refuse to run the program. * one solution: use the -Wl,-rpath,/usr/local/mylib
to program your lib path in executable file.
* another: use $LD_LIBRARY_PATH--
重剑无锋,大巧不工。

珊瑚虫侵权案一审判决 陈寿福有期徒刑三年

[新软件介绍] 珊瑚虫侵权案一审判决 陈寿福有期徒刑三年
于 08-3-22 通过 水木社区 电脑技术区十大热门话题 作者:jimeinstein
发信人: jimeinstein (大鱼若智|再见,小天鹅), 信区: NewSoftware
标 题: 珊瑚虫侵权案一审判决 陈寿福有期徒刑三年
发信站: 水木社区 (Thu Mar 20 15:30:58 2008), 站内珊瑚虫侵权案一审判决陈寿福有期徒刑三年http://tech.sina.com.cn/i/2008-03-20/14512090396.shtml
并处罚金人民币120万元  新浪科技讯 3月20日下午消息,近期引发热议的珊瑚虫版QQ侵权案于今日下午在深圳南山区法院做出一审判决,法院判定被告人陈寿福犯侵犯著作权罪,判处有期徒刑三年,并处罚金人民币120万元。  根据深圳南山区法院判决书,法院认定了检察院提供的全部证据,判定被告人陈寿福犯侵犯著作权罪,判处有期徒刑三年,并处罚金人民币120万元,同时法院将对陈寿福违法所得
总计人民币1172822元予以追缴。  值得注意的是,法院并没有认定陈寿福律师提供的"腾讯公司在官方网站提供珊瑚虫QQ下载","腾讯公司邀请陈寿福参加官方QQ新版发布会并征询第三方开发接口意见"等证据,也未对律师的辩护做任何分析解释。  珊瑚虫网站在判决后更新了首页,列举出相应证据依旧认为陈寿福无罪。陈寿福律师称将会在法律有效期内直接向广东省深圳市中级人民 法院提出上诉。  腾讯方面表示,目前还没有得到证实,不方便评论,"公司态度是一贯的,我们没有新的观点出来,我们的行为主要就是维权。"  2007年8月16日上午,陈寿福因涉嫌侵权被警方传讯,当日晚上被刑事拘留。11月20日,陈寿福被移交至检察院,该案件分别于2007年12月19日、24日、2008年3月6日在深圳南山法院经历过一审阶段三次庭审。--
in memory of UIBE...
University of International Business and Economics
( 1951 - 1999 )
谨以此文纪念对外经济贸易大学 http://www.clie.com.cn/blog
※ 来源:・水木社区 newsmth.net・[FROM: 61.135.152.*]

地图备忘

《公开地图内容表示若干规定》 国家测绘局2003年5月9日 第十七条 有关地名注记表示规定: 俄罗斯境内以下地名必须括注中国名称,汉语拼音版地图和外文版地图除外: 1、"符拉迪沃斯托克"括注"海参威"; 2、"乌苏里斯克"括注"双城子"; 3、"哈巴罗夫斯克"括注"伯力"; 4、"布拉戈维申斯克"括注"海兰泡"; 5、"萨哈林岛"括注"库页岛"; 6、"涅尔琴斯克"括注"尼布楚"; 7、"尼古拉耶夫斯克"括注"庙街"; 8、"斯塔诺夫山脉"括注"外兴安岭"。--
重剑无锋,大巧不工。

Fwd: 方舟子 : 为什么夜空是黑暗的?

方舟子 : 为什么夜空是黑暗的?
via 新语丝 by 方舟子 on 2/26/08
◇◇新语丝(www.xys.org)(xys.dxiong.com)(xys.3322.org)(xys.xlogit.com)◇◇ 为什么夜空是黑暗的? ・方舟子・ 奥伯斯( 1758~1840)出生于德国不来梅附近的一个小村庄,19岁
那年到哥廷根学医。哥廷根大学的一个特色是学生享有学习的自由,学医
的奥伯斯在那里也能跟着有"德国数学之师"之称的数学教授、天文台
台长凯斯特纳学数学和天文学。毕业后,奥伯斯回到不来梅当医生,但
他的真正兴趣是天文学。他白天行医,晚上则在改造成天文台的自家顶楼
进行天文观测,天天如此,每天睡觉时间不超过4个小时。 奥伯斯还在上大学的时候发现了一个计算彗星轨道的方法,沿用至
今。此后他共发现了5颗彗星,其中一颗后来以他的名字命名。1801年新年
的晚上,意大利天文学家皮亚齐发现了第一颗小行星谷神星,再想进一步
观察时却找不到它了,是奥伯斯在那一年的年底根据数学家高斯的计算
重新发现了它,平息了谷神星是行星还是彗星的争论。奥伯斯本人后来
发现了两颗小行星:1802年发现第二颗小行星小惑星,1807年发现第四颗
也是最亮的一颗小行星灶神星。不过奥伯斯在现在最广为人知的,是在1823
年提出了一个听上去很傻的问题:为什么夜空是黑暗的?如果宇宙是无限
的,恒星均匀地布满天空,那么夜晚的天空也将和白天一样明亮。 实际的情况当然并非如此。这种理论和实际的矛盾,物理学上称为佯
谬。奥伯斯指出的这个矛盾,后来就被称为奥伯斯佯谬。其实,它并不是
奥伯斯首先提出的。1610年,伽利略用望远镜发现空中有无数肉眼看不到
的恒星后,认为宇宙是无限的,恒星的数量也是无限的。开普勒不以为然,
给伽利略去信指出,如果那样的话,夜空就不会是黑暗的。他打了一个比
方。假如你站在无边无际的森林中向前看,不论你往哪个方向看,都只能
看到一根根的树干连成一片挡在你的眼前,看不到任何间隙。只有当你是
在一片小森林中时,才能透过树干的间隙看到外面的世界。同样的道理,
如果宇宙是无限的,那么恒星将占据了天空的每一点,它们发出的光终将
抵达地球,所有的恒星发出的光都将连成一片,就像我们在夏天看到的银
河一样。既然实际情况是恒星彼此之间有黑暗的间隙,那就说明宇宙是有
限的,透过这些间隙我们看到的是一堵包围宇宙的黑暗围墙。 但是后来的天文学家都相信宇宙在空间上和时间上都是无限的。怎么
解决这个矛盾呢?18世纪初英国天文学家哈雷提出了一个容易想到的解决
方案:远处恒星发出的光线在抵达地球时强度变得十分弱,无法被我们看
到。但是这个解释是站不住脚的。虽然光线的强度按距离的平方而减少,
但是在一个无限大的宇宙中,天空的体积也即恒星的数量将按距离的平方
而增加,也就是说,在远处某一点恒星数量增加的比例恰好等于光强度减
少的比例,二者互相抵消,总的光强度与距离远近无关。如果多数恒星都
和太阳一样,天空的每一点都应该和太阳盘面一样亮。天球的面积是太阳
盘面的18万倍,那么照射地球的星光亮度也应该是阳光的18万倍。 奥伯斯提出的解释是,太空并不是"透明"的,遥远恒星发出的光被
弥漫在恒星之间的稀薄物质云给遮挡、吸收了。但是在热力学定律被发现
之后,这个解释也经不起推敲了。根据热力学定律可知,假如有太空物质
遮挡住星光,光能将会被吸收转化成热能,这些能量最终要重新被辐射出
来,从而也要发光( 虽然光的波长可能不同),天空仍然还是一片明亮。 要解决这个佯谬的唯一办法是否定其大前提,即宇宙不是无限的,因
而恒星数量是有限的。但是这还不够。即使恒星数量是有限的,其数量也
近乎无限,足以照亮整个夜空。1848年,美国小说家爱伦坡在一篇随笔中
指出,唯一的出路是假定远处的星光还来不及照到地球上来。也就是说,
宇宙在时间上有一个起点,而且宇宙的年龄还没有老到足以让我们见到
所有远处恒星发出的光。 我们现在知道宇宙的年龄的确是有限的,宇宙是在大约137亿年前大
爆炸形成的。而计算表明,要把地球的夜空全部照亮,要花上以亿亿亿年
计的时间,远处的星光才能都抵达地球。显然我们的宇宙还太年轻了。 而且宇宙在不断地向各个方向膨胀,各个星系在互相远离,当然也都
在远离地球。空间的膨胀导致光线在传播时波长被拉长,能量也因此降低
了( 波长与能量成反比)。这个现象称为"红移",意思是可见光向能量
较低的红光转变,而红光还会向能量更低的红外线、微波转变,所以遥远
的星光在抵达地球时能量已低到不能被肉眼见到了。由于宇宙太年轻,所
以夜空是暗的;而由于宇宙在膨胀,让夜空变得更暗。"为什么夜空是黑
暗的?"这个问题其实一点也不傻,蕴含着宇宙的奥秘呢。2008.2.15.( 《中国青年报》2008.2.27)(XYS20080227)◇◇新语丝(www.xys.org)(xys.dxiong.com)(xys.3322.org)(xys.xlogit.com)◇◇