笑谈我的学习之路——章立民
在资讯软体界讨生活,要放轻松是谈何容易。说“笑谈”是有点故做轻松状,“心路历程”听起来又有点恶心,讲到“传承”吗,那更是不敢当,总之,大家就是放轻松,当作生活经验的交流。将我这近 20 年来的经历与心得,毫不保留但简短地跟大家分享。更重要的是,我希望大家在读完本文后,大家都能够更清楚以及坚定地选择你未来所要走的路。
综览人类文明的演进,大抵都建立在“今日会比昨日好、明日要比今日强”的基本史观之上。回顾过往的资讯技术洪流,80 年代末还在钻研 DOS 系统、倚天中文、组合语言,90 年代初却得踏进 Windows 3.1、Windows SDK、DDE 等新架构所延伸的密林,大气还没喘上一口,却又在 90 年代中期碰上了 32 位元 Windows、MFC vs. OWL/VCL、OLE2 所构成的技术风暴,而 Web 也在此时开始火热,主从式架构也快速增加成三层式、甚至多层式的 Windows DNA,正当庆幸千禧年的 Windows 架构还在掌控之中,.NET 技术的跃进又像一波波不断来袭的大浪。
身处速度快、变化大的资讯技术洪流,的确必须随时准备好面对更快、更好、更强的明日世界。但是,技术的本质是什么?学习的瓶颈该如何突破?如果只是一味盲目乱冲,而不适时让自己缓下来思考,很容易被洪流吞噬。面对技术洪流,你的生存之道是什么?你是否也思考了技术的本质以及学习的方法呢?更重要的是,您真的准备好面对这永无止尽的磨练(或是说折磨)吗?
正所谓男怕入错行,女怕嫁错郎(我必须说,这观念其实是迂腐的)。所以在我们分享所谓的经验之前,应该先回到源头,问问你自己,为什么入这一行。在两岸,常常会有一些年轻的程式设计师感到彷徨而来求助于我。我通常第一个问题就是问对方,你为什么进这一行。是因为你在学校原本就读资讯相关课系所以自然进了这一行,还是当时自己或家人觉得电子与资讯相关产业非常热门,因此进了这一行。如果你是因为觉得产业热门才进了这一行,而且是在 1999 年之后才入行的话,那我只能送你一句话,那就是“夕阳无限好,只是近黄昏”。所以说,如果你在午夜梦回的时候,常常会对自己的工作有所质疑的话,那真的应该好好思考思考。
我所要强调的是,你对资讯软体真的有兴趣吗?你真的喜欢这样的工作吗?你顶得住压力吗?更重要的是,你快乐吗?能够把一件事情做好,并不表示你真的喜欢,也不表示你真的快乐,这只代表你有足够的能力。如果这真的是你的兴趣,你真的热爱,就算辛苦,也会乐在其中。
身处在这行,工作日与假日加班是常态。我常常看到许多年轻人,不过就是假日加个班,就觉得自己备极辛苦,备受委屈。如果你也常有这种心态,赶快转行吧!更可怕的是,自己辛苦也就算了,家人与亲密爱人常常无法理解与谅解,同样的,他们的抱怨也成了常态。干这行,还有许多后遗症,像是身体变形,秃头,满头白发,心情很难放松…等等。
我谈这些,并不是要你离开这个行业,我的目的,是希望大家再次肯定自己是喜欢这个行业的,不论您是开发人员或者是 IT Pro,都能够更加确认自己的选择,然后坚定的走下去。
在你确定自己适合走技术这条路,也决定要走技术这条路之后,接下来所面临的就是技术路线的选择,而这通常也是学生或初入行者最大的抉择。为什么呢?因为这关系到他未来的就业,他希望自己押对宝。然而为什么会难以抉择呢?因为目前看不出何者拥有绝对的优势。据说是 .NET 小赢。但是我们必须了解,任何一种技术架构都有其特性与优劣所在,然而难就难在 .NET 与 J2EE 都非常庞大,我们很难两者都精通。因此我说成功没有一定的规则可言,失败确有,那就是两面讨好者。
我常常看到有许多人喜欢比较 .NET 与 J2EE。说句实在话,这两种技术路线都有极深的内涵,单单看了技术架构,稍微用了点其中的技术进行开发,就足以评断两者的优劣吗?这未免太自以为是,大放厥词。我投注了极大的心力研究 .NET,才比较认为能够稍微随心所欲地掌握其内涵,也才能够真正体会其中的优点与缺点。我相信同理之于 J2EE。问题是,我时间有限,精力有限,能力有限,不可能同时研究这二者,既然如此,何德何能去评论呢?
我要说的是,检视诸项技术时,最忌讳的就是“成见”以及那股莫名的“情绪”,或是说“情节”。当您有了这样的心态,如何以客观的心情去评量各种技术呢?奉劝大家,在选择技术的时候,不需要有太多的情绪与爱恨情愁。我知道有很多人就是看微软不爽,看微软赚那么多钱就觉得很讨厌,因为我讨厌微软,所以我不用微软的技术,所以我选择 J2EE、Java、Oracle。微软的技术真的不好吗?同样的,你也不需要因为非常喜欢微软,所以就讨厌 J2EE、Java、Oracle。身为一位技术人员,一定要抛开这些成见与情绪,因为一旦有这些成见,就会影响你的判断力,也因此很可能跟好的技术失之交臂。所以 我的态度是,不论技术是谁推出的,一定用开放与正面的态度去看待。正所谓“知己知彼,百战百胜”,不论是自我学习,或是在市场上竞争,切忌闭门造车。
其实只要您真正投入,掌握技术的精要,自然能将其特性彻底发挥,进而开发出优质的应用程式。如果您学东西总是半调子,那即使您用的是什么伟大的技术,写出来的东西也是平淡无奇,甚至上不了抬面。
我选择技术的原则非常简单,第一看技术的进入障碍;第二看技术有没有未来性。所谓进入障碍,当然就是跟我目前的技术能力是不是有延续性,是不是能够有良好的衔接,这是为了确保我过去投入的心血不会轻易付诸流水。就未来性而言,也就是看技术有没有前景,说得露骨点,或者应该说有没有“钱”景,毕竟技术必须叫好,也要叫座,才是好技术,那种孤芳自赏者,通常没有好下场。没错,这两个原则有时候是彼此相冲突的。放诸技术的演进史,有时候会因为某种革命性架构与装置的推出,导致引发大跃进式的演进。在这种时候,未来性的考量当然更胜于进入障碍。
其实在许多时候,技术(或是说技术路线)的选择也没有那么难,因为市场可能已经帮您做了决定。如果真的无法自行判断,就跟着流行潮流走吧!
别让“执着”害了你。就好比我们劝人在投资理财的时候不要跟股票谈恋爱一样,你也不需要跟技术谈恋爱。没错,你当初看好某一家公司的前景,买了该公司的股票准备长期投资,可是当你发现公司营运状况不如预期或是出现更大的危机之时,难道还要抱着股票不放吗?你希望你的股票变成废纸吗?没错,您现在出脱股票已经受伤,已经赔钱,可是如果不当机立断、壮士断腕的话,损失将会更为惨重。投资理财如此,技术的选择也是如此。
拿得起,也要放得下。当发现所选择的技术已经失去优势,应该毫不考虑的转换。没有错,你已经投入了许多的时间和精力学习该项技术,要你放弃,谈何容易。不过 IT 这个行业就是如此,过去被奉为圣经、归镍的技术架构可能在短短的时间就被淘汰出局。所以我们说,您也必须抱持一个开放的态度,随时注意趋势的变化,不要侍才而骄,自以为了不起。就好像戏水溺毙的人多半是游泳高手一样,因为他自认功夫过人一等,不会有任何危险,完全没有任何的警戒心,因此反而比别人死得更快。
我为什么要特别提到“不要跟技术谈恋爱”,因为我过去之所以在会在 1999 年急转之下,陷入低潮,就是犯了这个错误。在很久之前,我靠 FoxPro 成名,我的存款、房子、车子都是靠 FoxPro 这只狐狸赚来的。可是当时已经有一些明显的迹象显示出 FoxPro 未来将不会是微软的发展重点。这些迹象包括:FoxPro 在美日两大市场卖得非常不好,Tech-ED 的 FoxPro 场次人数递减…. 等等。甚至连微软内部的高层人员都要我小心,可是我却不信邪。最后的结果就是后果自己承担,承受痛苦。
正所谓万丈高楼平地起,要把功夫练好,马步一定要蹲得稳。我想很多人最好奇的,就是我如何学习新技术。说真的,我用的都是笨方法。学习技术,一定要先把架构与原理彻底了解,然后才能晋升到技巧的活用。而这中间的窍门,就是不停且大量的实作,并将结论有组织地整理起来。
每当我阅读一段原理与说明时,都会尽可能去实际动手模拟或撰写程式验证,一方面可以确认自己的理解是正确的,一方面也可以更加熟悉并体会其内涵,并了解其应用层面。当然,人的记忆力是有限的,最终的验证结果与结论,务必有系统的整理,以方便未来能够快速查阅。
这中间的过程不仅枯燥,更是乏味,而且很寂寞,然而却是必经的过程。就我的了解,业界的开发人员,可能最缺乏的就是这一段学习过程,毕竟大家都急于对老板与客户负责,交差结案,因此常常会流于追逐实用的技巧。但是大家别忘了,彻底了解技术架构,可能会比追逐新工具来得可长可久,毕竟许多原理都是一以贯之的。就以 .NET 而言,从 2002 推出到目前的 .NET 3.5,基本的大架构并没有什么不同,只是一直在既有的基础上累加并扩充,如果你当初就能够秉持正确的原则来学习,或许现在会更加感觉如鱼得水。
如果要在这个产业长久发展,你必须让自己与众不同,而不同之处不仅仅是技术而已。
我很喜欢问开发人员一个问题:“除了高人一等的技术能力之外,你还有什么?”我常跟别人说,你再会写程式,你也只是个程式设计师。这句话听起来或许很伤人。不过就像过去很多人问我写书要写到几岁一样,我以前从来不觉得这是个问题,但是当年纪大了,我开始思考这个问题。因此我现在问你,你要写程式写到几岁呢?难道你要一辈子写程式吗?你以为每一位会技术的人都可以像 Bill Gates 一样吗?你以为 Bill Gates 就只是会技术吗?他没有其他的特质吗?
也不是说你不能一辈子写程式,不能一辈子当技术人员。因为有些人真的不适合当主管,不适合开公司做生意。如果真的想要长久做技术研究,你就需要一个比较稳定的环境。可能是在学校或研究单位,亦或是大型的私人企业。大家要早点想这个问题,毕竟中年转业不容易啊。
我也常告诫人,不要让高人一等的技术能力成为反效果。正所谓:“工作的金字塔,一人抵三人。”你技术能力强,以一敌三,老板为什么要帮你升职,因为要用三个人补你的缺,而且你真的看起来不像个主管。为什么升任主管的常常是你认为技术不太行的,只会耍嘴皮子的。结果是什么呢,你花了很长的时间与很大的努力来证明自己,可是等你年纪大了,公司可能觉得你太老,不想给你机会。唉!真是残酷啊!
或许你可以思考如何进一步融入“热情”、“人文素养”与非技术的“专业素养”,或许这样,可以让你更发光发热。我在 2007 年之前的好几年都不讲研讨会,因为我不觉得我可以讲得比以前更好,我觉得难以再超越过去的成绩,我有疲惫感,也就是说我没有热情。与其勉强上台,还不如不上台。假设我自己都不 热爱这样的工作,如何让听众去热爱呢。不要忘记,任何人比你都敏感。千万不要以为可以混水摸鱼,蒙混过关。
我还想问你,你的特质是什么。为什么同一首歌,由不同的人演唱,会有完全不同的效果。因为他捉住其中的感觉,能做最佳的诠释。反过来说,量身订制,因此你应该寻找最适合你的表现方式。
千万记得,在演讲、讲课或做简报时,是不可以忘我的,要随时与台下观众保持互动。所谓的互动不见得是言语的互动,而是透过你的眼神、话语和肢体语 言来传达讯息,而从听众的表现、坐姿等等,都可以看出他们的反应,并随时动态调整。因此我较不喜欢列出太细的项目,保持动态调整的弹性,而且准备的内容应 该要比实际的会议时间来得长和丰富。
最后建议科技人应当走出技术的象牙塔,培养良好的人际关系,展现不凡的热情与活力。
资讯人员一般来说都比较内向,比较沉默,不喜欢表现。可是我真的鼓励大家,抓住机会,秀出自己(Present yourself)。想当初我第一次到微软并且帮微软讲研讨会,根本就是毛遂自荐的。重点是,当别人给我机会时,我充分掌握住了。
成功是性格、努力、与机运的结合。我们常说性格决定命运、努力要有方法和策略、最后还需要天时、地利以及人和的机运。你说路遥知马力,日久见人心,问题是有机会表现时,你闷不吭声,好像不存在。其结果是,人家还以为你能力不够。
当然,如果你是金玉其外,败絮其中,也撑不了太久。但是如果你真的有能力,给你一个良心的建议:“不要只做沉默的工蜂”。毕竟机会稍纵即逝,逝者不可追。
在这里提供大家一项真实的统计资讯,当你说话的时候,人们接收到的讯息是什么?请注意,有 93% 来自肢体语言和语调:
- 55%:外型与肢体语言。
- 38%:语调。
- 7%:话语(内容)。
为什么我要特别强调上述的数据,因为我听很多资讯人员讲话的时候,真的很想扁人。不是说话的音调没有高低起伏,就是喃喃自语不知所云,不然就是自顾自地讲,完全沉醉在自己的话语和情绪中。唉!真是昏倒。
另外还有一项重要的数据提供给大家。一场演讲后,人们还记得什么:
- 过了 1 小时,人们会忘掉 50% 的内容。
- 过了 1 天,人们会忘掉 80% 的内容。
- 过了 1 周,人们会忘掉 95% 的内容,剩下的记忆是:故事、例子、亲生经历。
这也就是为什么我们即使谈的是技术性的研讨会,也要举许多的实例与成功案例,因为这样印象才会深刻。
策略一定要动态调整。人们往往会活在过去的成功模式中,然而今非昔比,策略应时时作调整。
千金难买早知道,千金难买回头望。也许我们无法抓住机会,但是藉由不停的反省与修正,也能让自己往对的方向前进。
大家都听过这句话吧:“健康的身体是 1,没有这个 1,后面的 0 将毫无意义”。美国前总统雷根曾经说过:“It is true hard work never killed anyone, but I figure, why take the chance?”(努力工作确实不会致人死命,但我想,何必冒险?)
当然,我们之前一直提到要努力,加班也不要抱怨,问题是没人要你熬夜与晚起,你就不能早睡早起吗?时间一样长得很,更重要的是,这样对身体有益。很多东西在失去了之后还可以找回,但是健康不能。刻骨铭心的恋情可能会永远占住你心中的角落,不时还会隐隐作痛,问题是它不会夺去你的生命;错过的电影,还有下一场,健康可能没有;这个男生不爱你,没关系,下一个男人会更好,只要你有健康的身体。
过去六、七年来,我一直保持运动的习惯,饮食也是清淡到不行,有人说我过得是清教徒的生活。运动不仅让身体更舒畅,也让大脑能够休息与清醒,为下一次的吸收做好准备。建议大家也尝试看看吧!
我常告诉朋友,不论你的年纪多大,“现在”永远是有生之年最年轻的时候,不论过去的事迹多么辉煌终究已成过去。要想在未来成就些什么,唯有把握现在、努力实践。我想我已找到工作的宿命了。选择我所愿,坚持我所选,这算不算是一个现代版的城市英雄呢?共勉之!真挚的叮咛其实信息必非笔者读大学时的本科,多年来完全是靠自修、自学。虽然辛苦,但也累积不少宝贵经验。特在此归纳整理出下列信条,提供有志踏上这条路的朋友参考:
- 学习计算机务必坚持且持久,最忌三分钟热度。
- 遇到任何问题,一定要想尽办法解决。因为在解决问题的过程中,您的功力已不知不觉的提升。
- 学习计算机最忌闭关自守,在象牙塔中摸索,应与人交流,并不耻下问。
- 勿吝啬与人分享您研究的心得,或许您沾沾自喜的技巧,别人早已不屑。
- 永远要不停的吸取新知。信息业进步之快超乎想象,没有人是永远的赢家。但是输家却有,那就是自以为是者。
- 学计算机并不一定要拘泥于某种固定模式与步骤。
- 永远保持一颗好奇的心。
- 学会与计算机沟通虽然重要,但是如何与人沟通更重要。
- 家人的支持与鼓励将是您最佳的动力。
人在好的时候要想到不好的时候,人在不好的时候不要去想好的时候,而是应该静下心来思考方法与策略,然后迅速脱离谷底。当然,我自己对未来也有很多期许,希望能再创高峰。
有人说:“发现一瓶好水,令人心旷神怡;发现一位好作者,令人眉开眼笑。”这么多年来,我写书一向注重品质,期许自己能够成为让人感到眉开眼笑的 好作者。过去如此,现在如此,未来也将如此。近 20 年来,经过起起伏伏,风风雨雨,今天还站在这里,我是心存感激的。下次再见,谢谢大家。
章立民 2008/06/23