Linux伴我走過的人生路
上一回寫了無關技術的文章非常不受歡迎,看來圖靈都是工作狂,好吧:)
我是一名十分不幸的孩子。早在小學四年級,我就受到了微軟的首次毒害。那時班上有一位同學裝潢了臺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的課程,為軟體產業的未來指明方向。
相關文章
- 那些曾伴我走過程式設計之路的軟體程式設計
- 生路
- 走進Linux之systemd啟動過程Linux
- 一名資料分析師的人生經驗:走過都是財富
- 走出軟體作坊之十七-走鋼索的人
- linux之crontab定時執行命令走過的坑坑Linux
- 分享:Linux 命令列的藝術--走過路過不要錯過(37k 的 star)Linux命令列
- 招MySQL DBA啦,走過路過表錯過~~MySql
- 招mysql dba啦,走過路過不要錯過~~MySql
- 現代前端原生路由:Navigation API前端路由NavigationAPI
- Linux背後的人(轉)Linux
- Windows走過的22年[影片]Windows
- 開發工程師的職場人生路工程師
- 陪伴我作為程式設計師的9句名言程式設計師
- 關於學習過程中走過的彎路
- 微樂活:有情感的人工智慧,讓《她》走進你身邊!人工智慧
- 避免學習Linux走彎路Linux
- Linux運維之路怎麼走?Linux運維
- 轉:寫給想學Linux的人Linux
- 那些年走過下劃線的坑
- 走進AngularJs(七) 過濾器(filter)AngularJS過濾器Filter
- 使用過JSF的人來談談感想.JS
- 遊戲開發之--簡單的人物走動和地圖移動(一)遊戲開發地圖
- 走過路過來看看各種實現跨域的方式~跨域
- 那些年走過ArrayList迴圈remove的坑REM
- 走進前端的過程--方向式學習前端
- 漫步人生路之Python旅途(一)探觀止矣Python
- 你走過最長的路 ,就是機器學習過程中的彎路機器學習
- 你走對Linux學習之路了嗎?Linux
- 走進Linux的世界,需要怎麼做Linux
- 為什麼學習Linux的人變多了?Linux
- 偉大的人!Linux之父生日快樂Linux
- Torvalds: 寫linux核心的人更加容易找工作Linux
- Linux:該做的事和該支援的人Linux
- 寫給那些說linux不好用的人Linux
- Vue與Element走過的坑。。。。帶上AxiosVueiOS
- 《魔獸大作戰》開發者:我們走過哪些彎路?
- 攻下隔壁女生路由器後,我都做了些什麼路由器