从程序人跨到学术人的深度历险

中央研究院資訊科學研究所助研究員/多媒體網路與系統實驗室主持人

1976年生
●學經歷:臺灣大學電機工程博士,於清華大學資訊工程系取得碩士與學士。原名陳寬達,曾擔任 Windows 及系統程式設計師、業界程式設計課程講師、技術書籍及雜誌專欄作者、共享軟體作者及 BBS 開發者/站長等工作,並著有《Delphi 深度歷險》、《C++Builder 深度歷險》等書
●個人的中文網站連結網址:www.iis.sinica.edu.tw/~swc/index_c.html

 

假如想撰写Windows程序代码,Delphi、C++ Builder是一直是过去许多人心中的首选,而在推广这个开发环境里最知名的人物中,有一位很引人注目,那就是陈升玮(先前他的名字叫做陈宽达)。他既是两本相关计算机书籍的作者,十多年前,也和同样热中于程序开发的钱达智,一起创办了DelphiChat/BCBChat电子邮件讨论群(即Programmer 深度论坛网站的前身)。

学生时代即崭露头角
事实上,早在清华大学信息科学系就读期间,陈升玮已经开始投入很多心力在IT上,像是担任枫桥驿站BBS的站长,负责站务维护与程序发展,同时也成立Delphi和C++ Builder的程序设计技术讨论社群。至于当时非程序开发的进阶用户而言,也可能听过他这号人物,例如他曾经担任HopeNet光盘月刊的技术编辑,负责精选许多好用的共享件与免费软件,此外,他自己也写出好几套远近驰名的共享件,像是XDesktop、XthemeManager、XMP3 Manager、XViewer、Xchat(当时他在网络上的昵称叫做Xshadow)。

历经许多令人津津乐道的事迹,然而在2000年以后,就越来越少从IT界听到他的近况。原来,他当时决定选择回到学术研究的领域,继续完成研究生的学业、拿下博士学位,并以阅读论文与发表研究成果为乐,而这样的状态和他现在的身分息息相关──中央研究院的信息科学研究所助研究员(等同于大学里的助理教授),同时主持了多媒体网络与系统实验室。

寻找无可替代的自我价值
陈升玮之所以离开IT领域、走到学术的怀抱,他提到有下列几个原因。

首先,就像许多IT人所认为的,单靠IT来谋生太辛苦,需要花很大的力气,而且似乎永远无法停止脚步休息。

对于工作这档事,陈升玮原本打算用SOHO的方式讲课和接案。于是他到中科院、园区和资策会,主讲关于开发的课程,但他后来看到即使本身经营得相当成功的前辈,仍然得战战兢兢地工作着,才能将生活过好,因为不工作,就不会有钱。他认为,这样就像《富爸爸,穷爸爸》书中所说,消费模式是花辛苦赚来的每一分钱,只能靠节约费用和储蓄,而无法获得财务和生活上的自由。

等他投身学术之后,虽然收入变少、薪资变固定,但他很清楚所要的目标和生活,为了更专注在这些事情上,因此也不再接案,该休息的时候就休息,不让自己受到外务影响。

离开既有生活的第二个理由是,技术上虽然一直在进步、相关的名词不断推陈出新,但工作过程中令他觉得兴奋的大突破,似乎越来越少,许多应用的原理法则和底层架构,几乎都是万变不离其宗。他所面临的是更多非技术上的挑战,像是受限于人力、时间与资源的配置,花费很多心力、体力在开会协调,而非完全专注在IT开发或疑难解答上。

最后也最关键的考虑是,陈升玮理解到在很多工作当中,「你」很重要,但没有「你」,也还是能做到。

每个人可能在公司工作得很愉快、很有成就感,但根据他的观察及周遭同学的经验,他发现若有一天被裁员,原本该进行的工作,还是会继续,公司仍然可以赚钱或研发出新的产品。

综合这些考虑,他决定寻找别的出路。也因为当时在念硕士班,在学术研究当中,他找到最能满足自身理想的答案。

在研究的领域,陈升玮认为其实有趣的议题非常多,绝对不用担心做完,而且可以完全由自己主导──有些偏重理论性的议题,只要一个人作即可,即使是实作型的题目,自己带领两三个学生就可以研究。

从这样的历程来看,陈升玮最想要做的是具有独创和原创特性的事情,一旦达到他所预期的成效,会让他更清楚地知道「没有我,就没有这个研究」,因为挑战无穷,所以觉得每天都过得非常充实,而且明白自己的价值。

成为学者,他不光研究理论,也卷起袖子继续写程序
在计算机科学的领域,有人专攻理论,而陈升玮最近主要的研究对象,是关于Skype、MSN Messenger等实时通讯软件的语音质量和视讯质量,他在去年曾发表关于量测Skype使用者满意度的方法,而要做到这件事,必须要靠写程序来监看、量测网络应用程序的行为及效能。

在这样的过程中,陈升玮说,程序一定要写得够快、够有弹性,快是因为有些因素无法预测,必须要不断想方法去尝试、改进,因此程序开发功力和速度会非常重要,实验进行的期间,他和参与学生们都必须克服这项挑战。

由于陈升玮本身具有程序设计的实战经验累积,这难不倒他,但他要和所带领的学生一起完成这项工作,所以如何提升整体战力是当务之急,虽然他自认快十年没有好好写程序,不过要帮学生Debug、看出程序执行上有没有效率,能否善用面向对象和事件驱动的概念来开发,他还是能一眼就看出好坏。

此外,他们并不需要特别去关注系统建置的平台和解决方案。以视讯串流的实验来说,若有系统提供最好用的函式库,他们会想办法搭配出来,因此有可能网络控制软件会用FreeBSD来架设,而串流处理就用Windows或Linux。对他来说,一个实力坚强的Programmer,不会受限于任何工具、平台,因为他们已经掌握了关键的概念、以及各平台常用的技术,而且具有基本的算法的掌握能力,若需要写一个最短路径(Shortest Path)或快速排序(Quick sort)等算法,你随时可以写得出来,而不只是会用递归的方式来解开发需求。

将两件事做到85分很厉害,但将一件事做到95分更重要
从完全投身IT界到完全投身学术界,作家刘墉说过的一段话影响陈升玮做了这个决定。这段话的意思是如果你今天在一个山头上,看见另一个山头想上去,第一件事得先下山,因为你不可能同时站在两个山头上,这是刘墉对于自己从中视记者毅然离开、成为作家的告白,对陈升玮也很感同身受,他只想完全归零,连以前BBS的ID(Xshadow)都不再使用。

对于决定人生的方向,他建议要想清楚之后就绝对不要改变,因为一个人绝对没办法同时站在两个山头,没办法同时做两件事做到好。他眼中的「好」,是指登峰造极。如果能将两件事做到85分,那表示很厉害,但将一件事做到95分更重要。

全心全意、专注心思很重要,他说:「如果要做到好、非常好,你一定要一次Focus在一件事。」,陈升玮从高中以后,很少花时间去看电视及报纸,但他发现其实不会错过重要的讯息,因为在路上都会听到别人耳语,或遇到人聊起相关议题,所以他决定不为那些事分心。相较之下,如果能聚精会神,把很重要的事作好,并且真正把自己的潜力发挥出来,他觉得是更美好的。

他说:「如果你有空跟别人说你很忙,如果你还记得打开BBS或开新闻网站的,那表示还不够忙、不够投入。」虽然没必要365天都心无旁骛地工作或学习,但陈升玮认为,一个人若有潜力就该尽量发挥;除了要酝酿、收集情报和思考之外,也要努力将所知道的,加以创作、实现出来,这样,创意才会源源不绝。

你可能感兴趣的:(工作,windows,FreeBSD,bbs,Delphi,程序开发)