Linux伴我走過的人生路

aulara發表於2013-01-19

上一回寫了無關技術的文章非常不受歡迎,看來圖靈都是工作狂,好吧:)

微軟搞笑照片

我是一名十分不幸的孩子。早在小學四年級,我就受到了微軟的首次毒害。那時班上有一位同學裝潢了臺AMD K6的電腦,專門請我們幾個夥伴去玩紅色警戒。直到初一,老爸才在我的懇求下裝了一臺二手電腦,當時這臺機器的處理器廠商已經倒閉了,可見其效能之強悍。更糟的是,我學會了重灌系統,成為了社群IT志願者,專業解答“我的電腦怎麼變慢了?”這個問題。幫微軟做了六年的免費客服後,我的命運似乎已經因此註定。

幸好,我在大學迎來了生命的轉折點。大二有堂課叫程式演算法,這堂課研究連結串列與二叉樹等資料結構的查詢、排列運算效率,但最神的還是這堂課的教授鍾老師。學期第一節課上課前,老師把他的Gnome桌面投影到了牆上,同學們紛紛在私下小聲議論,不知是什麼玄虛。老師不作聲,開啟了一份PDF文件,開始自我介紹。後來我才知道他的教學演示都是用PostScript寫的。要說這節課是全班52個計算機工程學生的啟蒙課一點兒都不為過,鍾老師問我們:“你們在本目錄下建立檔名1至100的檔案需要多長時間?”說完他迅速地在終端打了一行指令,同學們都沒看清,100個空檔案就已經建立完成了。凡是有周期性的工作必須仍給計算機,這本該是人生的第一課。一學期下來,過半的同學已經轉投Linux,包括我在內的大部分同學都掌握了Vim的基本操作。

大學生活精彩紛呈,我參加的公益社團有一臺老舊的CentOS伺服器,社團網站完全是靜態頁面,而我老大需要釋出活動資訊和接受同學報名。我那時懂點兒HTML和CSS,還不知道什麼是資料庫。正發愁呢,無精打采地去飯堂吃飯,正巧遇上了本系技術最牛的學長,便趕緊坐他旁邊請教。聽了我的專案要求後,他推薦我參考一款新軟體,叫Django。得到了金玉良言,儘管連Python是啥都不清楚,我就開始動手做Django的官網教程。苦孩子有好運,Django是文件最好的幾個開源專案之一,我只用兩天就玩轉了官網教程。總耗時僅僅二十天,新社團網站成功上線。我漸漸愛上了Linux程式設計環境,技術也圍繞著Linux發展。開機登陸終端,使用Vim編輯程式原始檔,不受即時通訊的干擾,我的工作效率比以往高多了。Linux生態圈中有眾多的開源軟體社群,不但一行命令就能輕鬆安裝,而且大型專案的原始碼也可供學習。向高手看齊時,我對新技術的跟進也更為迅速。Linux與其應用程式的社群支援優秀,Ubuntu、Vim、Python等都有詳細的志願者百科和文件,搜尋就能找到常見問題答案。只要勤動手,折騰自己的筆記本時就可以積累伺服器管理經驗。巧的是:我的第一份工作也碰上了Django框架開發,公司所有的網站都架設在Linux伺服器上。我向負責伺服器管理的同事討教了一年後,決定辭職創業。

我的創業專案極光賬本是記賬類網站,後臺以資料庫應用為主。在開發過程中,我在兩臺老筆記本上安裝了Ubuntu Server,模擬生產環境。資料庫伺服器上裝了MongoDB和PostgreSQL。大名鼎鼎的Mongo以磁碟空間換取了驚人的資料存取與分析效能,Postgres的地理位置API十分完善,穩定性超越了MySQL。為了給將來的伺服器管理工作做準備,我也為資料庫伺服器配置了Linux磁碟陣列。Ubuntu的安裝程式內建陣列設定圖形介面,花不到十分鐘就能學會。除了資料庫,我在創業時學到的另一個實用工具是GIT。GIT是Linux核心開發組進行全球合作時用的版本控制軟體,其作用是記錄每個團隊成員對程式碼庫的更改日誌,每個改動都有根有據。每次向生產伺服器同步程式碼前,我都會像開源社群般發行新版本,為生產版本作記號。除了寫單位測試之外,極光的團隊成員還互相檢查各個commit的程式碼質量。習慣了伺服器管理後,我覺得Linux的目錄結構就如貼了標籤的衣櫃,個人檔案(/home/)、編譯好的程式(/usr/)、常變動的檔案日誌(/var/)、臨時目錄(/tmp/)、設定(/etc/)等清清楚楚。

Linux是值得炫耀的作業系統,更是軟體開發的重要生產資料。由於眾多開源專案的支援,其娛樂與辦公能力也十分強悍。除了網銀之外,我全部的虛擬生活都在Linux上度過。即使經常幫親朋好友重灌微軟系統,我依然感到非常欣慰。在浩瀚的微軟藍屏(BSOD)之中沉淪六年後,Linux為我帶來了希望。我希望大學中有更多的計算機教授開設基於Linux的課程,為軟體產業的未來指明方向。

相關文章