“本书首先会试图告诉你什么是程序员?为什么要做这样的程序员(员 笔者加)?正确的入门方法是什么?程序员只有在理解了以上内容的基础上,才能进一步更快地提高自身技能,这时候再开始程序的设计。其实,对一个软件的开发者来说,真正重要的不在于这行代码怎么写,那些代码这么写,关键是思路的问题,而思路事实上是经验的积累。经验是使你从最初的封闭的思维方式,到最后形成开放式的思维的一个过程。”
如果没有理解错的话,梁先生教导我们在理解那些内容的基础上进一步提高自身技能之后,这时候再开始程序的设计。“进一步更快地提高自身技能”,意谓着已然“修炼”过自身技能了,此举意在“进一步更快提高”而已。且不说“进一步更快”罢,就只说之前的“提高自身技能”罢,这难道还在开始程序设计之前么?我们程序员的自身技能难道要将程序设计摒弃于外么?是什么高超的技能,在下愚钝终不得开悟。我想,梁先生总不会教导我们在学会游泳之前千万别下水的。
梁先生云,思路、经验到最后形成开放式的思维的过程,思维就成开放式的了。我想,如果仅靠经验的积累而不加以思索的话,那是驾驭不了这些经验的。但事实上,随着经验的日积月累,感性材料的丰富,在我们对之加以思索,通过理论思维发现其中的规律规则后,将形成思想、概念、本质等,这些或许才是更关键的思路问题罢。虽然,尽管无论怎样凭空挖空心思去想,大抵总不免给大家描绘一幅海市蜃楼般的美妙景象,久仰而不得总会回头的,空想一下又何妨呢。只要不总固执、执着于老想抓住自己的头发企图离开地球也就罢了。空想家常常还能给人以启迪,发人深思。
淮阴吴塘评吴又可《瘟疫论》曰,“观其议论宏阔,实有发前人所未发 …… 细察其法,亦不免支离驳杂,大抵功过两不相掩,盖用心良苦,而学术未精也。”观梁先生的议论,倒也是很宏阔的,都快一路挂满了,如“高手”、“正确的入门方法”、“基本的原则”、“十几年来的精髓”、“畅游计算机关键技术”、“开放性思维”、“ Windows 运行机理”、“编程语言的运行机理”、“内核优化”,等等,梁先生开出并许诺了一大堆,抄得烦了耐心不够也只好作罢了,总该有发前人所未发的罢,至于其他是否如此,却是吾辈不敢妄言的,请读者明断。
有网友问到:“ 有错的的入门方法吗 ? 用了错的的入门方法又有什么不好 ? ”是啊,原本是要带领大家奔向出神入化之境界的阳光大道的,如果现在由于不正确的入门方法,而实际上步入一条荆棘丛生、一路又自造陷阱的崎岖的泥泞小路,那将又如何?问如直指剑心,令人不得不自我拷问。你的十几年的经验、精髓,就一定是正确的经验么?就一定是适合我们广大程序员的道路、经验么?好意诚然可感,可是——。
不过我翻遍了全书,似乎还没有看到梁先生自己的什么失败教训之类的(大眼睛的图片拖动问题最后发现是 Windows 的问题,不是梁先生的;线程与 GDI 的"冲突"问题也非梁先生之过。其他有待进一步发现,到那时再来修正这里。),大概具有出神入化境界、开放性思维的高手是不会有的,我只好再复识复识高手的神通广大之处以免再次贻笑大方。看来鲁迅先生《未有天才之前》里的一些观点需作时代的修正了,就是:天才生下来的第一声啼哭,并不也和平常的儿童的一样,绝对会就是一首好诗。写到这里,我才想起跑题了,高手与天才之间我不知道他们有着怎样的亲缘关系。
淮阴吴塘见病人死于庸医之误,痛心疾首曰:“呜呼!生民何辜,不死于病而死于医,是有医不若无医也! …… ”深怕误医无辜,不惶不恐难矣。虽为智者尚不免千虑之失,况吾辈乎!读吾之读书笔记之读者当切记!不然,我对不起你们,你们也对不起我。
“现在很多人以为程序就是软件,软件就是程序。”
时至 2003 年,还抱有这样想法的人总不少罢,就是今日也难免、简直就一定也不少,以至于将来。不管别种人怎么看,程序员中有很多人还这样认为,我也觉得无不可。天下的程序、软件何其多、何其多样也!天下程序员何其多、何其多样也!正如我当初也这样认为,以及现在有时也还如此一样,这也正是我入不了高手之门的一个缘故吧。只要高手们知道真相就好, 总还不至于绝种,不,绝识 。
在 20 世纪五十年代至六十年代,软件的概念还没有形成,程序就是通称、概称了。那时还没有文档、或没有形成文档也应归入这种事物的认识。那时称作程序的事物就如同我们现今称之为软件的。
大概到 20 世纪六十年代后,随着对这种事物的认识逐步深入,随着经验与教训的积累,以及危机的催逼,慢慢就形成了软件的概念,因为需要用新的名词、概念来将文档之类的也纳入其中,人们开始对以前称之为程序的而现在可能还包括文档在内的那些事物就叫做“软件”了。现在如果一种软件没有文档之类的东西,仅有程序、源代码的话,那么此时软件就是程序,程序就是软件了。
还是关于程序与软件的区分。程序“别人可以拿来用,那时候的程序就能产生价值,那个程序就直接等同于软件。”现在写程序很容易,没有这种环境了,“如果你的公司比较小,且没什么名气,你的产品放到经销商库房,那么他最多给你暂收,产品销不动的话,一般两周绝对会退货。 …… 你写了一个程序以后,要面临商业化的过程。你要宣传,你要让用户知道,你要建立经销渠道,可能你还要花很多的时间去说服别人用你的东西,这是程序到软件的一个过程。”
令在下佩服之至的是,梁先生火候把握的真好,在商业化的过程中,程序等还没有变成软件凤凰之前是不可以叫软件的,似乎还叫程序又有些欠火候,甚或不妥,因为或许不只有程序的缘故罢,所以就叫做“你的东西”即东西了。大概梁先生为其新开发的程序等作商业化之初是不叫软件而叫某某的东西或直接称之为东西的罢。门槛那么高了,真是委屈它们了。后面就更难了:
“程序则更多,程序都想变成软件,谁都说自己的是‘金子’。但只有经受住用户的检验才能成为真正的‘金子’。这就是美国为什么在 20 世纪 90 年代几乎没有什么新的软件公司产生的原因。”
现在大概到了用户手中但还得要经受用户检验才行,照理,在经受检验的过程中,也还不能叫软件的罢,此时大概还是称东西或货了,用户买了货,安装了货,使用了货,我们又发布了新版本的货,等等,真是很有创意的。梁先生对共享软件放宽了政策,这算是格外开恩了。只有经过了商业化过程的程序等才可以叫作软件,更进一步,只有经受住用户的检验的才是软件、才是金子。
如此看来,开发过程就更不能叫开发 XXX 软件了;立项时就更没有资格叫 XXX 软件项目了,因为那些时候连程序都未做成,八字都还没一撇呢;自然,系统测试时也同样不能叫 XXX 软件测试的,理由也如上;更可笑的是那些仅还在口头上谈论的东西也有很多人声称要开发 XXX 软件(项目),还仅只是个预想罢了,怎么能叫软件呢?大家说是不是?又如 XXX 计划中设立的“ XXX 软件系统”重点项目,八字没一撇就叫软件了,不有点乱套嘛。
看来,不光只有 C++ 才会为了解决某个问题“绕一大圈”。 其实软件的概念是历史地形成的。历史、当然也是一种哲学所谓的实在,也不是“一个很服从的女孩子,百依百顺地由我们替她涂抹起来,装扮起来。好比一块大理石到了我们手里,由我们雕成什么像。”(这实在比“历史是个任人打扮的小姑娘”还要来得实在、确凿。 那个年代似乎恍如隔世,但我想时年 63 岁的冯友兰先生大概是不能管一个女孩子叫小姑娘的罢。大概冯先生以为女人的百依百顺大抵是随着年龄的增长而日损的罢,能够百依百顺的,大概也大不了哪里去, 所以谓之“小”了。这大抵令我们有些疑惑罢,现今的人们,能够令其百依百顺的,小姑娘似乎已退居其次了【,曾几何时,倒是大姑娘越发变得百依百顺起来了,尽管有些地方是决不含糊的 】。如果实在论哲学所谓的实在将历史排除于外,那么《三国演义》中会唱空城计的诸葛孔明也只好甘拜下风了,倘若历史真有其事,一不小心就会被一笔勾销的,变成感觉、意象等的复合了。 实在论者,将实在说成是感觉、感觉/意象/表象的符号/组合/复合,等等。而这实在如果真与历史毫无干系,那真是”我依靠感觉的复合去感觉感觉的复合“了,记得好像导师列宁曾经这样说过,奇妙得很。哲学实在并不生于长于自我的真空之中。 实在论者的追随者们似乎忘记了他们的大师的镇山之秘密:历史这种实在不过是感觉、或表象、或意象的复合、符号等等,这就是它们的联系,因为不然我们早就被扔进历史的垃圾堆里了;与历史毫无关系的话,谁还会上我们的当呢?! ——一不小心就扯到题外,赶紧打住罢。 )
“商业软件的功能和所要达到的目标就不是一个人能‘玩’得起来的了,这时的软件也已不是几个人、一个小组就能做出来的了。这就是在美国新的软件公司没法产生的原因。比如 Netscape 网景是在 1995 - 1996 年产生的新软件公司,但是,两三年后它就不见了。“
Lou Perazzoli (微软核心操作系统主管)说“在 1988 年 11 月我们开始设计如今的 Windows NT 系统时,就已经加入此行列的那些人的姓名,他们是: Dave Culter, Darryl Havens,Gary Kimura, Mark Lucovsky,Steve Wood 和我。从那以后, Windows NT ‘小组’就逐渐发展为拥有 200 多名专职工程师的队伍。”(《 Windows NT 技术内幕》第二版)是只有几个人的 Windows NT 小组当初慢慢地把 Windows NT “玩”起来的,可是一想, Windows NT 小组既不是一个人而是好几个人玩起来的,又不是最后做出 Windows NT 操作系统时仅有这几个人。大概原来他们还不够资格“玩”和做。接着看看,总算发现了一点点问题,既然说在美国新的软件公司没法产生,那怎么又有“在 1995 - 1996 年产生的新软件公司”即 Netscape 网景公司呢。不知是梁先生的逻辑惊人的混乱,还是历史弄人。同时也知道了原来 NetScape 网景公司的“不见了”,是因为只有几个人或一个小组在“玩”和做的缘故。
“商业软件门槛的形成是整个行业发展的必然结果。任何一个行业初始阶段时的门槛都非常低,但是,只要发展到一定的阶段后,它的门槛就必然抬高。比如,现在国内生产小汽车很困难,但在 20 世纪 50 年代~ 60 年代的时候,你装 4 个轮子,再加上柴油机等就形成汽车。那时的莱特兄弟装个螺旋桨,加两个机翼,就能做飞机。整个行业还没有形成的时候,绝对可以这样做。但是,到整个行业形成时,你就做不了了。所有的行业都是这样的。为什么网站一出来时那么多人去挤着做?这也是因为一开始的时候,看起来门槛非常低,人人都可以做。只要有一个服务器,架根网线,就能做网站。这个行业处于初始阶段时,情况就是这样的。但这个行业形成后,你就轻易 ‘玩’不了了。”
吾于商业之道外行,下面姑妄言之,请读者历为指正。别的就不说了,只说说准入门槛或进入门槛罢。【暂缺】
“整个行业还没有形成的时候,绝对可以这样做。”
不是猜想式地断言绝对可不可以这样做,而是事实上是否这样做的。现在要的至少是历史的真实,不是猜想,不是假设,亦无须打扮。
“国内的软件发展也是如此。国内的软件自从软件经销商形成以后,这个行业才真正地形成。 …… 任何一个行业都会有一个经销渠道,如果渠道形成了,那么这个行业也就形成了。”
这里,我们看到一个原理:一个行业的经销渠道的形成标志着一个行业的形成。我对此也不懂,但是我觉得,也罢,为了我国民族软件大业的现在和未来,干脆我们全做国外软件公司的国内代理商算了,形成、巩固、发展整个国内软件销售渠道就保住了整个国内软件行业。严正声明,此诚乃为中华民族软件大业着想啊,实非崇洋媚外之举,匹夫未敢忘忧国是也。我们继续再看,梁先生谈到了国内经销商的形成年代大概为 1995 年,因为第一名的经销商是 1994 年~ 1995 年成立的。真是责任重大啊,标志一个行业形成最早可追溯的历史起点也全赖第一名经销商的成立年代了。早创业就是好啊,不,确切地说,应该是早做经销商就是好啊,哪怕半路上吊而不死,只要后面争抢得第一名就行(裁判不知是谁?知情者请告诉我,有重赏哦。),就能将公司的成立年代作为一个行业形成的年代。历史到底是什么个玩意儿,恐怕得看看那些书才行才能跟上时代了。
接着梁先生批驳了那种认为“中国软件产业应该很快就能赶上美国”的浮躁观点。“美国软件行业是 20 世纪 80 年代形成的,到现在已经发展了 20 多年了。中国软件行业才 8 年, 8 岁才是一个懵懂的小孩, 20 多岁是一个强壮的青年,那么他们的力量是不对等的。但也要看到,当 8 岁变成 15 岁的时候,它真正的能量才会反映出来。”
不巧的很,今年(2010年)正好是“当 8 岁变成 15 岁的时候”,而且眼看就要奔到 16 岁的关头了。中国软件业“真正的能量”在那里呢?作为基础领域的几大类:操作系统?编译器?大型数据库?办公领域的 OFFICE 软件? …… 烦请梁先生指点一二。该不会是“国外软件行业的门槛要比中国的高很多了。我觉得我们中国即使再去做这样的东西,也没有多大的意义了。这个门槛你是追不过来的。不仅要花费双倍的力气,而且在这么短的时间内,你还要完成别人已经完成过的工作,包括别人所做的测试工作。只有这样,才能做到你的软件与别人有竞争力,能与它做比较。”所以就干脆将中国软件行业大旗拱手相让了罢? 举凡基础领域的几类大型软件,那一个不是被国外真正把持着?!发展中国(民族)软件业怎么就成了“没有多大的意义了”。英雄也有气短的时候!对 VC 向导施烟放雾和对 MFC 投弹掷药的那蛮股劲现在不知去那里了。那股蛮劲对付 VC 和 MFC ,吾虽有些腹诽和疑惑,但决不反对用那股蛮劲来临时助力于保卫、捍卫中国软件业。具有开放性思维的高手深扎的根似乎不在中国软件业。如果真是这样,我倒宁愿梁先生“连以上认识都不清楚”。
中国软件业,应该深深扎根于自己的土壤中;壮志难遒,长痛不已;天行键,君子以自强不息!
“现在中国软件行业正在形成,所以,现在做一个程序员一定要有耐心。 …… 你一定要把所有的问题搞清楚,然后再去做程序。”“机遇是从耐心中产生的,越有耐心,就越有机遇。” “如果你是从 MFC 入手的,或是从 VB 入手的,则如要做出一个真正的能应用个人领域的通用软件,就会走非常多的弯路。直接的捷径绝对不是走这两条路。这两条路看起来很快”。
先头说中国软件行业大概形成于 1995 年,话音还未落,"现在"——即 2003 年,也即刚说的中国软件业形成 8 岁之际——马上又改口了,变成“现在中国软件行业正在形成”了。
岂能从 MFC 入手呢?同样哪能从 VB 入手呢(梁先生以前只是先学过 BASIC 语言而已,盖不能算入手也)?高手指定了入门最基本的方法就是从 C 语言入手。即使以前学过什么语言也无防,或许这还有助于从 C 语言入手呢,来罢。从前听说过有“为艺术而艺术”的,而现在我们的大师正在为入手而入手。关于入手语言的问题以后还有机会碰到的,现在又继续吧,后面将更精彩。
梁先生一面教导我们做程序员一定要有耐心;一面攻击 MFC 和 VB 将会把人引入弯路,不能带领我们步入捷径;又一面又在为我们寻找捷径,而且还是“直接的捷径”呢!这个宝贝到底是什么,且看下文。
“但是做通用软件就不行了,通用是一对多,做出来的软件一会要面向全国,如果将来自由贸易到香港也好,通到国外也好,整个产品能销到全世界的话,这时候,通用软件所有做的工作就不是这么简单了。所以说,正确的入门方法就很关键。” 如果不单是为了找工作混口饭吃,还想扬名立万的话,“那么这第一步就非常关键。这时就绝对不能找一本 MFC 或找一本 VB 的书学两下就行,而是要从最低层开始做起,从最基本做起。“
宝贝终于现形,亦即“从最低层开始做起,从最基本做起”。这种经过高精尖的入门技艺的人恐怕还是不多,大概也不过是那些处在方塔形这种断层的不良人才结构的最高层的为数就更少了的高手们吧。 正如梁先生书先前(前言?)所说的从 CPU 入手,看来这个最低层非 CPU 莫属,而且在第一章传授心法之后便是讲认识 CPU 了,便是从最底层开始做起的现身说法。 而梁先生给我们传授的最基本的入门方法却是从 C 语言入手、而不是从最低层、最基本开始做起即入手。请问梁先生,我们到底该如何下手呢?
总之,现在总算有点“认清自己的发展”了。程序不等于软件了,软件门槛高了,程序要想变软件凤凰还得要一个商业化的过程,“如果没有吾六百万做软件”,不然那是玩不起来的,即使如此,还得要经受住用户的检验才能成为真正的“金子”、软件凤凰,最后还可能保不住“两三年后它就不见了”,也就没法产生过,好像就从历史中抹去得无踪无影一般。好在现在中国软件行业正在形成。什么?大概 1995 年形成的?不,记住,“现在”是 2003 年了。所以现在做程序员一定要有耐心。切记,你一定要把所有的问题都搞清楚了,然后再去做程序!首先,国外软件行业的门槛要比中国的高很多了。梁先生觉得我们中国即使再去做这样的东西,也没有多大的意义了,这个门槛是追不过来的。如果连以上认识都不清楚,很可能就以为去书店买一本 MFC 高手速成之类的书,编两个程序就能成为软件高手了。还是找个高手带领或有一个好的练手环境的公司吧。直接的捷径绝对不是从 MFC 入手或是从 VB 入手的,而是要从最低层开始做起,从最基本做起。从 C 语言入手就是从最低层开始做起了吧?哦,嗯 …… 这样 ….. 经过二、三年的积累就能更上一层楼了 …… 。其次呢?且慢,才刚开始呢,后面更精彩。
产品面向全国、面向全世界的话,这国际化问题的关键就是 “正确的入门方法”。那么什么是正确的入门方法,此处不得而知,有待下文了。
第一章 天行健,君子以自强不息 ——第一章 程序点滴之读书笔记之一
最新推荐文章于 2023-12-07 18:53:07 发布