文章目錄
前言
Linux 是我很重要的護城河技能。學習 Linux 真是我人生中,最好的學習投資。不論是求學或求職都幫助很大,它幫助我畢業後,順利在短時間內找到人生第一份工作,甚至後續轉職, Linux 的技能都幫我加了不少分。
從開始接觸 Linux 到現在已超過 10 年了,我還是每天用它,到現在都還能從中學習到新知。這一篇是我的回憶文, 接下來,我要來跟大家分享我學習 Linux 的經驗。
最後,我會分享 Linux 初學者的學習建議。
精選圖片引用維基百科的 Tux Logo,, created using Sodipodi. Based on original image by Larry Ewing, made in GIMP.
契機
我求學時的同班同學, 教室桌上擺了許多 Linux 的書籍。我有時經過會隨手翻閱。過一陣子,他送了好幾本Linux 書籍給我,每本書裡面都夾了 Linux 安裝光碟。
我把其中一塊光碟放到我的電腦,安裝 Linux。
從此以後,我的人生就改變了。我記得是 RedHat 6.0 版,Gnome 1.x 版,全英文界面,完全無法輸入中文。
雖然安裝完成以後,什麼正事都不能幹,但是光把玩這些桌面程式,就覺得超酷的,對我來說 Linux 完全是一個新世界。
原來電腦除了 Windows 98,也能長另外一個樣子。
衝擊
同一時間,有個機會參觀電腦社辦。
當時,我會製作靜態網頁,已有電腦網頁設計的基礎。粗淺修改 HTML 跟 CSS,貼一些現成的 JavaScript 特效程式碼到網頁中,並用FTP 上傳到免費網頁空間。
但看到電腦社員使用 Putty SSH 遠端連線進去 Linux 伺服器,使用 joe 跟 GCC ,寫著 C 語言的程式。
我根本看不到電腦社員的車尾燈,他們跟我的程度完全是不同檔次,還因此一陣子心情沮喪。電腦社指導老師見狀鼓勵我,說我急什麼呢?我還年輕,再慢慢學就好,才讓我慢慢恢復重拾希望。
再次衝擊
大學班上有個同學,對 Linux 很熟。我請教他 Linux 的問題。只記得,他來我的電腦前面,下了兩三個指令,就秒解我的問題。
接下來,便很熱心地順手幫我調整我的 Linux 電腦的 Kernel 編譯選項,開始編譯 Linux Kernel。
看著 Make 印出快速閃過 Log,對我來說,這又是一個另一個衝擊。原來 Linux 不是裝好桌面環境就好,作業系統還有很多內部的設定可以調整, Linux 真是太博大精深阿。
我當時就下定決心,砍掉 Windows ,天天用 Linux 。任何電腦相關的作業我都用 Linux,也只玩 Linux 的遊戲。甚至連放假,我都不出去玩,在宿舍天天玩 Linux。
一開始也沒想太多,只是覺得 Linux 真的是太好玩了,有好多東西可以探索,每個禮拜都有新發現。
推廣 Linux
學了幾年以後,覺得 Linux 真是個好東西,應該要推廣給大家一起來用。剛開始是推廣 Debain Linux。Debian 有優秀的 APT 軟體套件管理系統,跟全球幾千位的負責打包軟體套件的志工,還有詳盡的系統安裝文件。
安裝 APT 套件,就不用自己編譯軟體的 source code ,感覺世界真的很美好。
那個時候成功推坑了一位學弟。他把汰換下來的電腦,灌完 Linux 作業系統,放到機房去,24小時不關機。那個時候沒有 VPS,學弟每天 SSH 連進去,在MSN 上跟我傳訊息,表達 Linux 好好玩,學到很多東西,很有成就感。
但坐在我研究室座位旁邊的學弟,我一直鼓吹 ,但還是死不入坑,最後他電腦中毒,整台電腦重灌。
參加 LUG 社群
為了跟其他的同好交流,開始參加 LUG 的實體聚會 (Linux User Group)。會眾的電腦都裝別人不會用的 X Window Manager(視窗管理界面),聚會時常會以此虧來虧去。
在 LUG 裡,讓我認識許多對 Linux 很有熱情的同好,還變成好朋友。
我最喜歡帶著筆電跟問題,到聚會裡面去請教其他同好。
LUG 同好也會輪流分享跟 Linux 相關的主題,也讓我學習到很多課本以外的電腦科學知識。
我發現愛用 Linux 的人,個性比較能夠忍耐。以前電腦剛裝好 Linux,用戶體驗根本是爛的。以前不像現在硬體支援程度那麼好,要嘛顯示卡、音效卡不會動,要嘛無線網卡、有線網卡不支援。要解決就得上網找國外的論壇看有沒有網友分享,如何裝驅動程式。
或是一開始的時候,就得挑選有支援 Linux 的硬體。挑筆電的時候,就追著老闆問說筆電的晶片型號。
這樣的養成經驗,以至於很習慣東西是爛的,然後開始修,但是很享受修正過程的成就感。
Linux 初學者的學習建議
講完我的 Linux 經歷,接下來要講 Linux 初學者的學習建議。
當時受到洪朝貴教授的文章 – 如何有效學習電腦文章啟發,文章裡面提到「知識相乘」的概念。你學習的知識,必須要像樂高積木一樣,能夠在解決不同問題時,能夠重新組合,不用砍掉重練。
「知識相乘」在 Linux 領域,最經典就是只用 Vim 編輯器,學寫 shell script、 C 、PHP、Perl、Python 。到現在如果要學習新的程式語言,我還是會這樣做。
我蠻鼓勵學生學 Linux 的,在 Linux 上學習架設網頁伺服器,操作 MySQL 資料庫、練習電腦網路。所有在學校電腦科學相關課程上的知識,都能在 Linux 上落地學習。不會覺得這些僅是課堂上期中、期末考的內容,而是活生生能應用在電腦的知識。
而且 Linux 就像是一個很好的動手做大平台,你可以在 Linux 寫任何程式語言,架設任何的伺服器。從做中學,就能知道自己不足的地方在哪裡,再上網或找書補充就好。
而且學習過程中,還能鍛鍊其他方面的技巧。英文、自學、解決問題、提問、社群互動等等。甚至會寫程式以後,還可以貢獻網路上的開源專案。你可以跟來自全世界的開發者交流,你的視野就不會侷限在台灣。
那要怎麼開始呢?
很簡單,先買本 Linux 的書,推薦「鳥哥的私房菜」。砍掉你的 Windows。灌 Ubuntu Linux。然後,天天用它,每天抱著它睡覺。
如果你有資訊背景,要寫程式、架設伺服器,請全部都用 Linux 執行,持之以恆。
然後,在你身邊找到一個願意幫你的Linux 高手。這個人也許是你的學長、也許是電腦社的同學。也許是工作上的同事。
但請記住,不要他手把手教你,是讓你有疑難雜症的時候,提點你。
設定小目標,比方說,架設 Wordpress 網站、郵件伺服器。過程中一定會有挑戰、會有問題。自己動手解決問題,克服挑戰,不斷從過程中獲得樂趣,持之以恆,你才能一直使用 Linux 下去 。
結論
學習 Linux 對我是個美麗的意外,也是我人生覺得最值得的投資,建議你也一起來玩。如果你也有相同經驗,歡迎在底下留言分享。