最近更新: 2007-07-05

非資訊科班的程序員?

hoamon 說他還沒看過非資訊科系出身的傑出程式設計師 (到底誰會寫程式?)。雖說他也覺得應該有這種人。其實在國內,這種人應該不少,我就碰過幾個。全世界最有名的非資訊科系出身的傑出程式設計師,應該是Microsoft 的 Bill Gates 吧 (在他還是個 BASIC 開發者時)。他是哈佛大學法學系肆業。

我不敢說自己是傑出程式設計師,只說是個程序員、 programmer 。但有一點很重要,我不是資訊科系出身的。我大學唸國際貿易,研究所修企業管理,是一個血統純正的商學科班生。至於我的編程能力,我想剛好及格。應該沒有人認為我需要當掉重修 (也沒啥可當,因為我沒修過這類學分 XD)。

我一向不認為性別、科系,與程式設計能力有關。因為程式設計是種容易接觸與實證的知識。只要有一顆能思考的頭腦,加上一隻筆和一張紙,就可以寫程式。只要有台電腦,就可以實證。日起有功,不必妄自菲薄。

喔,應該還要加上一雙手。我想到日前看了電影「荒野大飆客(Wild Hogs)」中,杜德利 被人綁起時的劇情。對方要脅說不付錢,就打斷腳。結果杜德利對朋友說「不! 不要付錢,我是電腦工程師,不需要腳!」 對方一聽,於是改口說不付錢就打斷手。杜德利一聽馬上大叫「快! 快付錢!」 全場笑翻 XD
樂多舊網址: http://blog.roodo.com/rocksaying/archives/3598241.html

樂多舊回應
inpines@gmail.com(同人) (#comment-11154943)
Thu, 05 Jul 2007 18:08:12 +0800
我雖然也即將從資管碩士畢業,但我在還沒唸 EMBA 前,我的本科系是機械工程。我寫程式近20年,而我認識的傑出程式設計師,也很少是資工/管/科畢業的。倒是認識一些資訊本科系畢業的,卻沒寫過程式的朋友。
未留名 (#comment-11156161)
Thu, 05 Jul 2007 21:54:26 +0800
鳥毅很遜,也不是資訊相關科系,但認識幾位傑出的朋友不是資訊科系,這位是比較有名氣的 http://edu.uuu.com.tw/teacher/Sparrow_Pan.htm

就以下所知這位FreeBSD高手讀成大土木時就很厲害 http://blog.leeym.com/

當然,這兩年知道的還有石頭成老大和同人前輩等(一直以為同人前輩是本科系畢業的)

我也有認識資工系畢業不會C/C++的人...
mr.brecht@gmail.com(Brecht) (#comment-11161331)
Fri, 06 Jul 2007 10:54:46 +0800
聽完石頭成老大這麼說,我想了解的是如何「日起有功」的過程。一般自修出師的程式設計師,容易出現的通病是學技巧而不學基礎,往往以致用為目標。尤其是.NET派的程式設計師,只要拉拉元件就可以完成工作,對於資料結構、演算法知之甚少也無所謂。

往基礎鑽進是費力而收效不見得明顯的effort,我常以為這就是科班與否的差別所在,科班出身的人,通常這部份會較為紮實(當然也會有人混水摸魚啦,不過我們還是要對教育or考試抱持一定的信心)。

常看石頭成老大的文章,覺得基礎的部份也頗為穩固,因此好奇石頭成老大在這部份是如何自學成家。如果可以的話,更希望能提供給後進有心者,一個循序漸進的roadmap,有哪些是必要下功夫的部份,有哪些是可以視自己興趣選擇學習等。

另外,我想應該也有很多人會感興趣,石頭成老大如何走上程式設計的故事。
未留名 (#comment-11173417)
Sat, 07 Jul 2007 14:47:27 +0800
我讀書時並沒有資訊相關科系 , 只有電機電子 ..
所以和我同時期的程式員沒有一個是資訊相關科系出身的 ..
我覺得應該去了解 hoamon 對傑出程式設計師的定義是什麼才比較好評論 ..
未留名 (#comment-11173945)
Sat, 07 Jul 2007 17:46:12 +0800
我突然想到一個人 ..

http://zh.wikipedia.org/wiki/%E6%9C%B1%E9%82%A6%E5%BE%A9

上專利網站可以發現他一堆專利 ...^^
未留名 (#comment-11193103)
Mon, 09 Jul 2007 10:47:53 +0800
沒想到一篇隨手記事,竟有不少回應。

Ken 說到一個重點。早期資訊科系少,所以非科班出身的程序員一大把。不過我的原因比較丟臉,因為大學聯考失利,只中最後一個志願 - 國際貿易系,沒得選擇。

Brecht說的毛病,在科班生上也常見。這是心態問題,老師沒得教。在這方面,非科班出身的有時反而較好。因為非科班生是主動接觸程式設計,心態較積極。

至於我的自修之路,或許說了也沒用,因為現在的環境很難複製我的經驗。我一開始學 QuickBASIC ,接著又學組合語言。我一直認為會組合語言,而且以組合語言的層級思考系統運作,對建立正確的資訊觀念非常有用。個人受益良多。

同時,我又混合兩種語言在DOS下寫獨立的中文圖形介面,即不載入倚天中文系統下可運作的基礎中文環境。在這過程中,BIOS,compile,link種種概念自然而然就進入腦中。但現在的後進者,幾乎不接觸如此低階的事物了。

在自修之路中,真正關鍵者,還是我一開始說的心態。

同人在《程式設計的基礎》中,除了心態外還提到一個重點:實務。在軟體開發的領域中,是實務先於理論,理論只是實務經驗的結論。

在寫程式的過程中,我們會碰到問題,碰到問題就會思考如何解決。在思考過程中,腦海中就會浮現解法的雛形。邊想解法邊看資料結構與演算法,就會在腦海中比較這個資料結構適用或不適用目前情形。最後資料結構與演算法的特性就會和實例聯繫,牢牢記在腦海中。不只是資料結構和演算法,包括作業系統概念、程式設計技巧與工具使用等等,都會透過實務工作學會。

此外,在實務中會碰到真正的問題,並提出概念性的解決方案。而這些概念性方案,學校老師通常不會教。就說說最近的事,有多少老師會在程式設計的課堂上教 SOA 和 Ajax ?SOA 牽涉到軟體元件介面、資料傳輸與通訊協定、分散式架構與 data stream 的概念。 Ajax 還牽涉到非同步平行作業。同人說「在學校中所能夠學到的,總是比產業的腳步慢上許多」。

我在《敏捷方法實務研討會會後筆記5》中提到我觀察到的現象是,台灣的資訊教育只重計算與解題,而不重實務。所以程序員只學到模糊的資料結構與演算法,而沒有與實務相聯繫的清晰印象。

對了,會後筆記中也提到「十幾年前,包含我在內的程序員,每個都想當 Bill Gates」。回 Brecht ,當年我一開始只是想寫套遊戲來玩玩,直到我看了《彈指乾坤:蓋茲微軟傳奇》,才認真學程式設計。

雖然很早就知道自己不會變成另一個 Bill Gates ,但當時紮下的功夫,可是永遠不會忘。
未留名 (#comment-11307011)
Mon, 16 Jul 2007 12:01:48 +0800
.NET 派的程式設計師,非本科系的優秀人才也很多哦
http://en.wikipedia.org/wiki/Anders_Hejlsberg