2010年1月26日 星期二

資管系大學生們,為什麼你們該用自由軟體?

前言:因為我愚蠢的見解,誤解了java是高階語言,所以在此要向網友mr.mu和網友匿名三號說聲謝謝,也對不起誤導了不懂的人

------------------------------------------------------

今天,我因為看到了一些事情而震驚不已。











我想寫這一篇的一切起因在於ubuntu論壇的這一篇文章
裡面的內容是大家在閒聊有誰在用ubuntu

年齡起伏還算大,有三十來歲工程師、十幾歲的高中生等等
原本看這些回應都還沒什麼,直到我看到了ubuntu論壇的管理員mosky也出來閒聊
這時候我才知道一件也許大家早就知道的事情.....

她是個十七歲的商科女高中生。


這真的讓我感到震驚不已。除了管理員是女高中生這件事情之外,最讓我訝異的是她對於撰寫程式系統的能力讓我訝異。她是python程式腳本apt-add的開發者,而且從她的多篇文章顯示她擁有ubuntu相關的知識也比一般人(比我這種一般人)還要多很多。

像是金鑰的id/long id/fp等我之前沒聽過也不知道怎麼用的她都講得出來

在加上要寫python程式腳本、還要打包成deb、還要寫gui介面,這些東西她似乎都有打算要進行,這已經超越了一般使用者的能力了,她已經成為程式設計師的一員了。

看到這裡,我真的覺得我慚愧到無地自容的地步了。

我是個所謂資訊本科背景的人,我高中讀資訊科、大學讀資管系、研究所也要繼續升上資管系,但是我卻得在此很羞愧的說,我一個程式都不會寫

比起mosky,她還比我更有資格稱為資訊本科的人,即使她根本不是。

看到她這樣,我還寫了一封信告訴她我對她的敬佩之意,就好像歌迷寫信給歌星那樣,希望她不會嚇到,我沒什麼惡意的.....

回到正題

總之,這一篇的主題其實是要說,在自由軟體的領域,我想台灣現在的這些大學生們已經逐漸要輸給這些新的未來主人翁了。

以我們資管系為例,所有人都在用windows,只要沒有了windows就會造成集體恐慌。寫程式要用java和C、瀏覽器得用IE,即使是linux/unix課程都是教你概念和怎麼打指令。

mosky 這個商科女高中一個人在程式的能力就可以打翻我們一缸子的資管系大學生,這到底是怎麼回事呢?

是我們教育的水準不同了嗎?所以說五年前的資訊教育在寫程式系統的水準比現在的商業教育還差?這不是太奇怪了嗎?

我想,關鍵在於接觸自由軟體。

接觸了自由軟體,體會到自己配置系統的樂趣
接觸了自由軟體,體會到檔案系統的概念
接觸了自由軟體,能夠提昇自己對解決電腦問題的能力
接觸了自由軟體,可以或多或少提昇自己的電腦能力

這一篇是寫給資管系學生的,所以普羅大眾的體驗自由、合法、不中毒、穩定、人權問題我們在此先不談。

對於資管系的各位來說,什麼是最重要的?就目前資訊管理系整體發展的概況來說,大略分成兩種:

1.寫程式
2. 用程式來工作

寫程式這點不用說,關於為什麼明明叫“資訊管理”系卻得寫一堆程式這個問題其實我大概有個想法,不過這我們另文再談。總之,我們極度被要求寫程式,這點沒有人有疑問。

第二點,用程式來工作,舉凡資料庫、ERP、問卷管理系統、網路伺服器管理系統等等......族繁不及備載啊。

總之,就衝著這兩點,你就該用自由軟體了!

1.寫程式

我是在沙鹿高工畢業的,現在想想,我非常痛恨寫程式這件事情大概就是從這個時期根深蒂固的。那時候學的是VB,學得非常之痛苦。

我真的覺得不該在那個時候教導學生VB,等學期結束後,我那整個班級會VB的不超過五個!我現在想想,學一個只能在windows下用而且又難學難讀,而且回家還沒有錢買來練習的程式語言真是浪費我高中生涯的時光。

而到了大學也是直接叫你從java開始。台灣大學學程式的現象真的很奇怪,為什麼會直接跳到java 這麼難(感謝網友的指正,java不高階,但是java很難...)的程式語言來學習?是為了商業考量?

在自由軟體界也有程式語言,像是python和perl,而這兩個都比java還要易學而且效率快多了。

不信?來以下例子:

---------------------------------

JAVA要寫hello world程式

public class HelloWorld {

public static void main(String[] args) {
System.out.println("Hello, World");
}

}


Python 要寫hello world程式

>>> print 'hello world'

hello world

---------------------------------


看到了嗎?從最簡單最簡單的範例就可以看出兩者的差別。而且學習python並不會讓你找不到工作,在google的網頁徵求程式設計師上總是會要求要懂 python,而且python也成為了google三大語言之一。

第二點:用程式來工作。

用程式來工作是很多資管系學生的核心競爭能力,而衝著這一點,朋友,我告訴你你就該嘗試自由軟體!

我在外面常常跟人家說,當你可以用免錢的軟體做到別人要用商業軟體才能做到的事情,哪個老闆會不要你?(有啊,微軟的老闆啊)

當你可以用open office做到跟別人用word一樣好
當你可以用open CAD做到跟別人用Auto CAD一樣好
當你可以用Inkscape做到跟別人用Illustrator一樣好
當你可以用mySQL做到跟別人用Oracle一樣好
當你可以用Blender做到跟別人用Maya一樣好

到底哪個老闆還會不想用你?除了他是微軟狂熱者之外的理由還有什麼呢?而且,各位朋友,當你會用自由軟體做到這些事情,你的競爭能力就大大提昇了啊!

因為在台灣,會使用自由軟體來工作的人可以說是少之又少的啊!(拜託網路工程師或是系統設計師之類的不算,不要跳出來罵我,我指的是其他行業)

而且你大概不知道,我們大學生最愛用的plurk、facebook、 google其實就是linux啊!


洋洋灑灑寫了這麼多,其實我想說得就是:各位資管系的大學生們,是不是該開始嘗試一點新的選擇了?

我認識健承數位的陳經理,他提到了他們所發生的只研發微軟底下程式系統的一個案例:當他們好不容易完成了系統,金融風暴發生了,沒有什麼中小企業有錢再建制運行那套系統的環境了。

如果你有心想走資訊這條路,那就不要永遠只侷限在單一作業系統和單一環境之下,請你一定要打開你的心,多多接受不同的選擇,因為世局不會永遠一樣,作業系統也不會永遠一個稱霸。

如果你還是繼續堅持只在單一作業系統的話,那請你每天都要燒香拜佛乞求那家公司不會因為某些原因而衰退。

那如果你決心要嘗試的話,速度也要快,不然你想說過幾年後再嘗試的話,很快的這些年輕人就會把你這波前浪給打翻了。畢竟連小學三年級都有linux玩家了呢!

要嘗試不一定要寫程式架網站,只要試著在其他系統底下生活,相信我,過一段時間你的能力和樂趣都會提昇出來的!

34 則留言:

  1. 其實你也會寫程式阿...1+1嘛,也很簡單(被踹)
    不過,能不用終端機一直是我的願望,但是我沒這個本事完成倒是真的(時間都浪費再美好的鬼混中)。

    不管怎麼說,一個好的環境才是學習成果的關鍵。
    一傅眾咻,聽過吧?
    另外,高中之前不是有很多名詞解釋,字音字型之類東西嗎?你記得多少?
    使用Firefox你能有超越資訊系學生的能力嗎?沒有吧。(我見過一個極端無恥的傢伙,他實在玷汙了自由二字)

    個人另外說一下,與其說使用自由軟體,不如好好了解自由市場。
    雖然你父母不一定有很多錢,建構所謂的邪惡Windows學習環境。
    但是自由市場總是能"號招"一批人創造更好的明天。

    回覆刪除
  2. well..我文中講得接觸自由軟體其實意思就是指接觸這個領域啦...不過我想您懂得

    還有啊,你誤會我的意思
    我是說學完java的"當下",依然很少人會
    也許是技術、也許是興趣問題
    到最後很多人都因為程式這一點而放棄資訊界
    真是很可惜就是了....

    我當然記不起來七年前學得又沒興趣的東西囉XD

    回覆刪除
  3. 拿 Java 出來批有問題, Java 有 Open Source License 實作, Java IDE 的 Eclipse/NetBeans/IntelliJ 都有 Open Source License

    回覆刪除
  4. 我文章的問題是在於為什麼上了大學就一定要學java,甚至把java弄成了必修,不休就別想畢業。我沒有批評java是個爛語言,而且昇陽是最支持自由軟體的公司之一,但是python的效率真的比java快,這是有研究證據的。
    http://www.iis.sinica.edu.tw/~marr/python/PythonHandbook.html

    回覆刪除
  5. 有兩點想要回應的部份是,資管系的教育目標不是為了寫程式,是為了將程式有系統的應用於企業管理或決策問題上,很多資管博士不會寫程式,也是有所耳聞,但並非是他不認真,而是教育及研究目標的問題。

    另外,VB魔人、Java魔人、python魔人...只要是魔人級,都是大師,語言的差異沒有好壞,只有適不適合決定特定的問題,語言對資管人來說是一種工具,而不是目的。

    補充一點是,你所看重的程式能力跟熱情比較有關,跟學歷比較無關,都要上研究所了,清楚自己的定位是很重要的,資管系的優勢決不是建立在跟資科、資工人拼程式(或盲目的比較程式能力),當然本身就對程式很有熱情的資管人不在科系定位的討論範圍內。

    總之,我想說的是資管系的定位跟熱情的問題,謝謝。

    回覆刪除
  6. "資管系的教育目標不是為了寫程式,是為了將程式有系統的應用於企業管理或決策問題上"

    沒錯!這就是我所想得啊!我文中有提到

    "寫程式這點不用說,關於為什麼明明叫“資訊管理”系卻得寫一堆程式這個問題其實我大概有個想法,不過這我們另文再談。"

    看到我把資訊管理這四個字給雙引號,就代表我對於這四個字的定義有問題。

    我其實想另文在談的就是這件事情。可是現在的資管系卻不是這樣教育的(好,我的學校不是)。他們要你一定要考過java程式檢定才能過。

    即使你mis或者決策支援系統滿分,你依然無法畢業,因為你不會java

    這!就是我所講得問題!(而這就是我想另文再談的...)這一篇算是比較符合現在資管系的情況就是了...

    回覆刪除
  7. 那關於程式語言的問題,我再次強調,我重點在於為什麼"一定要學java"。不過話說回來,python應該比java還要直覺化多了吧?

    回覆刪除
  8. 因為一般的學校老師並不會去學這些最新的東西,例如 Ubuntu、Python...

    畢竟在 IT 界是永遠學不完的XD

    回覆刪除
  9. 或許吧

    我的計算機概論老師第一上課就跟我們說
    他喜歡用linux,有興趣的去找他

    回覆刪除
  10. 「當你可以用mySQL做到跟別人用Oracle一樣好」 <==這句話我反對………

    postgreSQL 明明就比 mysql 做得比 Oracle 更好啊…………(笑)

    回覆刪除
  11. 傻傻的 學什麼程式語言不是重點...
    不需要拘泥在這麼小節上面的!!

    回覆刪除
  12. 大學四年除了 java 之外應該也有學些其它語言吧?
    那若真講效率是不是要去寫 assembly

    再者,使用自由軟體有一個缺點就是遇到問題或是軟體有 bug時,你要向誰討支援? 論壇? 那人家多久會回答你? 況且絕大部份時候你會看到一句"請先爬文再發問"
    如果是商業軟體就不一樣了,有問題會有 support 聯絡方式,專人為你解答,就算你每次都問同樣問題也不會有人叫你去爬文... 如果你是老闆而且你有錢,你會想用哪一種軟體?

    當然我也是自由軟體的愛用者啦因為我沒錢 XD

    回到現實面,如果人人都用自由軟體,那工程師是要賺啥啦

    回覆刪除
  13. python應該比java更"高階"吧...XD
    通常程式語言越簡單易懂,表示compiler幫你做了越多事...
    如果只是要學習程式邏輯,學python很不錯
    不過我是電機系出身...電機系最好是直接學C...
    不然學組語的時候應該會更痛苦XD

    還有,這篇文章人氣上升應該是因為今日我最噗...

    還有還有...為什麼我用Fx在這邊打字沒辦法移動游標跟複製貼上@@

    回覆刪除
  14. 回覆凍仁:

    可是他們已經到達阻止學生學習新東西的地步了....
    這一篇文章有我們學校的情況
    喔對了,我有一篇文章擅自把你備份的軟體源拿來拯救我搞壞的軟體源,真是太謝謝你啦!

    回覆San-Yuan Chen:
    可是據我所知postgreSQL好像有一點問題?
    不過這東西依然是好物一個!

    給匿名一號:

    不是我想要拘泥,是我們系上強迫所有學生一定要學單一程式語言方能畢業。

    給匿名二號:

    您的問題我下篇回答

    給匿名三號:

    原來是今日我最噗!好吧,個人對高階定義不同囉...

    回覆刪除
  15. 關於匿名二號的兩個問題:

    1.自由軟體支援度不好
    2.要是大家都用自由軟體工程師沒錢怎辦?

    這兩個問題剛好就是我一直會遇到別人問的問題
    首先,關於自由軟體支援度問題

    我用ubuntu這段時間,最棒的就是bug修復速度非常快

    我不否認有些論壇高手講話很尖酸刻薄,有些時候我也覺得那是造成新手害怕問問題的來源,可是遇到問題先google一下這應該不過份吧?像是ubuntu怎麼看DVD之類的常見問題...

    那要是真的是難的問題的話再問,相信沒有什麼人會罵你不爬文,只是很多時候太難的問題都沒解決方案,只能多等一段時間....

    外國的ubuntu是有專業的技術支援,不過這我們不提,國內的話就需要有個單位合作了,這就是我接下來想努力的目標之一

    關於第二點:

    朋友,資訊爆炸已經造成了經濟型態的轉變,現在已經從以前的金錢交易經濟逐漸轉化為注意力經濟。你的問題有不少學弟問我

    http://way3sec.blogspot.com/2009/12/blog-post_7793.html

    還有我推甄的時候教授也會問我:

    http://way3sec.blogspot.com/2009/12/blog-post_20.html

    這種問題多到連老外都寫出文章:

    http://www.ghabuntu.com/2009/12/5-ways-to-misunderstand-free-and-open.html (第一點就直接指出問題)

    思考一下google怎麼獲利、思考一下facebook怎麼營運、思考一下plurk為什麼可以跟不同公司談到資金

    問題的重點不再是軟體賣多少錢,而是有多少人要用你的軟體。

    回覆刪除
  16. 學界跟產界永遠都會有溝通問題,而且我認為是無解的。原因是大學教授八成以上應該都沒進過業界,而資訊業的變動又太快。

    大學本來就不該是職業訓練所,但社會大眾對大學的期待總是因為一些奇怪的價值觀變質。

    不過如果是科技大學,我就覺得要求資訊管理系畢業一定要通過java認證還算合理,也符合技職院校的教育目標。所以通過java認證,是因為學校要提高學生就業競爭力。

    而java認證(我想您是指SCJP),嚴格說來,這並不是程式能力的認證,而是「特定程式語言」(這個編程工具)的熟悉度認證。拿到SCJP,不能保證寫出很棒的程式(就像很了解一支筆的用途、構造,也不能保證你是個好作家),但是也許比較容易得到一份工作。

    大學教育貴在培養獨立思考及自我學習的能力,不是教你最新、最炫、最流行、最多人在討論、看似很棒大家都說好的語言或工具。

    基礎能力好,但不會某種程式語言,應該要能自學一段時間就能運用,或者更進一步具有改善及提出質疑的能力,這種自學能力才是可貴的。

    另外我懂你想表達的意思,但太多觀念的表達不夠成熟,使用自由軟體是好的,但我認為原因並不是你所說的這些,舉的Hello World例子也不甚適當,而且「高階」在語言上所指的意義你也搞混了,這不是個人定義的問題,而是資訊學系的共識XD。

    打了太多字,就此打住。

    回覆刪除
  17. 抱歉稍微了解了一下您的背景,您似乎有擔任過大學講師?

    以我現在就身在教育體制中生活的人來說,您所定義的大學教育的真諦其實已經逐漸失敗了。

    "大學教育貴在培養獨立思考及自我學習的能力"

    當我們學習資料庫,我所得到的話語是:你一定要給我用ms SQL,就算你能用其他的資料庫系統達到標準、甚至更好我都不接受,就是要ms SQL

    當我們學習程式語言,我所得到的是:你一定要給我學JAVA,就算你能用其他的程式語言寫出系統、甚至更好我都不接受,就是要學JAVA

    您看出來上述的問題了嗎?

    為什麼要求資訊管理系畢業一定要通過java認證是合理的?

    依照您前一篇對資管系的定義"將程式有系統的應用於企業管理或決策問題上"這應該跟要求你一定得寫java程式沒有關係吧?但是我們現在卻一直被這樣的要求著:你一定要會寫java,這才是你的核心競爭能力

    而且現在有多少的科目是真正在培養獨立思考及自我學習的能力的?至少我本身和我周遭朋友和我看過的網友都沒有。

    我這整篇文章只有一個重點,我再強調一次:

    資管系學生絕對不要被限制住在單一作業系統,要多方嘗試。

    至於我舉的那兩個原因:寫程式和用程式工作,那都是為了要講文章重點而舉出來的,算是優點之類的吧。你不能反駁在學習上python比java更容易,是吧?

    回覆刪除
  18. 當然,用自由軟體的原因不是上面那兩個這麼簡單的。那些資訊人權議題我都知道,WGA、UCITA、DCMA、DRM、BSA、不啦不啦不啦,這些我知道,因為我是從這些議題開始才接觸自由軟體的。(我是怪胎)

    但是....這些原因現在資管大學生聽不進去啊(好我是怪胎,我聽進去了)

    所以我才要想一些對資管大學生來說比較貼切而且比較符合台灣情況的理由來寫,不然今天我要是寫:大家要用自由軟體!保障資訊自由!抗議數位千禧年著作權法案!反對BSA!

    這樣大概今天就沒多少人會看這篇文章了....

    回覆刪除
  19. (路人亂入!?)我想說的是:
    強迫學JAVA這件事應該是每個學校、科系自己決定的定位、走向,
    並不是所有的學校、資管系就一定是強迫學JAVA,
    以我們系(非資管)上來說,一上教C,一下開始進入C#,
    畢業門檻是要通過系上自己辦的程式檢定。

    我覺得作者大大應該要去怪的是學校、系上、當初決定這件事的人,
    而『我們系上一定要會java才能過,為什麼不用自由軟體?』
    是我看完的感覺,可是這兩件事幾乎沒有絕對的關係阿~
    你們應該是可以跟學校反應(雖然緩不濟急),
    讓學校、系上了解政策要改變才是正道吧@@?

    至於使用Free Software了解Free Software,
    在我看來又是另一回事了~

    P.S. Java、Python我都很愛但都不會==...
    P.S.2 Ubuntu我也是愛好者之一阿XDDDDDDDDDD
    P.S.3 以上有錯請指正@@

    回覆刪除
  20. 這件事情已經由許多老師和學生反應
    系上目前也在規劃了(聽說啦)

    其實我一直在等,有沒有人會站出來說"我們xxx大學的資管系不會強迫學生要必修java喔"可惜到現在都沒有。

    我不知道貴系是什麼系,所以強迫程式檢定通過我也不好多做評判,不過我很堅決的認為資管系要強迫程式檢定畢業是不對的。

    最後,我又一次的強調這篇文章的主旨是:

    資管系學生絕對不要被限制住在單一作業系統,要多方嘗試。

    基於上面主旨,我才會提說為何一定要學某種語言而不去接觸另一種語言。

    提出python和java,只是想要告訴那些平常是資管系而沒有接觸甚至完全不知道自由軟體的人,其實有另一種程式語言,就如此而已。

    是關於java的議題太大了嗎?為啥大家都往java的話提來討論呢?

    不如把議題帶到"為什麼程式語言是資管系的必修"這件事比較合適吧?

    回覆刪除
  21. 阿,忘了講,要不要來加入華麗一族kubuntu啊?XD
    我每次看到自己的桌面都很爽呢
    超漂亮的啦

    回覆刪除
  22. 老實說,個人真的不覺得使用自由軟體,跟會不會寫程式有什麼關係。
    資管系學生也許不應該不會寫程式,但是要懂得會利用程式才是必要的。我覺得學校要教的,應該是可以靈活運用的概念,而不是只會用XX軟體。如果說資管系的學生唸完大學,只會用單一軟體(請套上M$ office, XXX cad, XXX DB, 甚至是OpenOffice, MySQL... ),那絕對是學校的錯!這跟路上的電腦補習班又有什麼兩樣?

    使用自由軟體這麼多年以來,對我的好處就在於open mind,抓到運用軟體的通則。但是,使用自由軟體,不需要用指令,不需要會寫程式,一樣可以用得很好很厲害!!

    使用自由軟體 != 鍵盤控 || 指令控 || 程式控

    回覆刪除
  23. 完全同意您的說法
    不過我也沒說使用自由軟體一定要會寫程式啊?

    我是個連一行程式都不會的超嫩B
    可是我依然用linux來生活用的很高興

    使用自由軟體,好處在於你多了一個大部分人都不會的軟體,你多了一個選擇,你多了一個逃脫枷鎖的方法。

    跟寫不寫程式當然沒有什麼太直接關係

    不過我說過我這篇提出程式還不就是因為資管系要求一定要寫程式,不然我也不想提出啊....

    回覆刪除
  24. 斯梅爾克:
    我也是資管人 現在還在讀碩士
    我們系上現在也在推JAVA
    但是沒有向上面其他朋友們提到的是一個畢業門檻
    或許只是因為剛開始吧

    而且我們的程式語言都是互換的 例如我這屆是先學c++再換JAVA 而現今大二的則是c++換c#而新進來的大今年度大一的是C#換JAVA
    基本上 這些課程都是大刀 因為我們學校不是很有名所以學生的學習能力普片上不很好
    再說 並非所有學生都會寫程式
    所以程式設計雖然為必修 但是只要過得了就能畢業了

    不過我說真的,說到自由軟體的部分,我想很多資管人都不知道那是甚麼,而我到現在還看到很多學弟連壓縮跟解壓縮都不會(不提軟體因為連最普及的WINRAR都不會用)更不用說其它的軟體,而且有不少人連IE(有人只知道那顆球)是甚麼都不知道,可真的是讓我無奈。
    而且目前我知道目前本系似乎沒有人在玩LINUX系列的系統,所以我能討論的人也有線,所以都網路上找論壇看文章比較多了XD~

    不過資管人不依定要會寫程式 我認同阿
    但是一丁點邏輯概念友或許會比較好~
    這是我們老師的想法,
    我也贊同拉,
    因為或許對以後的工作有些許的幫助XD

    回覆刪除
  25. 當你可以用open office做到跟別人用word一樣好
    當你可以用open CAD做到跟別人用Auto CAD一樣好
    當你可以用Inkscape做到跟別人用Illustrator一樣好
    當你可以用mySQL做到跟別人用Oracle一樣好
    當你可以用Blender做到跟別人用Maya一樣好

    太感動了!免錢萬歲!

    回覆刪除
  26. 寫程式又不是很難,寫習慣就好,如果說那種語言特別好,那是偏見,因為每一種語言都有存在的價值,完全取決於客戶需求,和自己工作環境,想多學點語言是好事,但人的時間是有限,選擇一個大家公認好用的語言,Java/C#都OK..,因為開發一套系統,程式語言,只佔5%吧,另外絶大部份,都是Domain knowleage的問題,以及系統架構等等問題,這95%的問題才是重點!!

    回覆刪除
  27. 每次看到大大您的文章都會讓人很心動...T_T...

    回覆刪除
  28. 啊XD?心動?
    對這篇文章來說這倒是新奇的講法啊XD(這篇文章一般來說引來的都是爭吵而已呢)

    回覆刪除
  29. 其實我的工作是商科的
    但是卻喜歡上組合語言,在Linux上用nasm逐行寫程式,有一段時間廢寢忘食上班經常遲到呢

    回覆刪除
  30. 同為17歲商科(男)高中生表示慚愧Orz.....

    雖然一開始摸索電腦是從Windows環境開始的
    但自從接觸了Linux和自由軟體後
    明顯感受到接觸的深度和廣度都有很大的提昇是真的

    回覆刪除
    回覆
    1. 可以請問一下為什麼這篇又被人家發現了嗎XD

      刪除
    2. 看到標題就點進來了啊 XD

      刪除
    3. 這篇好久以前的,怎麼會看到標題QQ

      刪除
    4. 這裡很多精華啊
      偶爾會來這裡把旁邊的archive點開來翻一翻XD

      刪除