原文地址:
http://blog.huhao.name/blog/2013/12/13/become-a-freelancer-2/
作者:胡皓
Blog:From Soldier to Programmer – 胡皓的博客
GitHub:https://github.com/howiehu
Twitter:@howiehu
新浪微博:@長安胡小鬧
CodeSchool:My Report Card
當我開始寫這篇文章的時候,我猛然發現,此時此刻距離我辭職(2013年9月13日)至今剛好整整3個月時間,看來寫這樣一篇文章是冥冥之中必須干的事兒。
那么就讓我接着上一篇文章繼續寫下去吧(上一篇文章請見《從士兵到程序員再到SOHO程序員》)。
三個月的收獲
三個月之前,我制定過一個學習計划:《三個月家里蹲轉型 Ruby on Rails + SOHO 計划》。
但是,俗話說得好,計划趕不上變化,在這三個月里我有將近一半的時間在忙於新房裝修,跑靈活就業人員社保手續,以及其他雜事上面。
所以,真正用於學習的時間也就是一個半月左右,回過頭來梳理了一下,發現收獲的東西倒還是不少的(按照時間先后順序排列):
1. 學會並愛上Vim,最終欲罷不能
我是一個工具控,尤其是在寫代碼這件事情上更是如此。由於先前一直是在搞.NET開發,使用的最多的IDE便是微軟的 Visual Studio,所以深受這種高度智能的IDE工具的“照顧”和“坑害”。在我的概念中,只有像電影里那樣熟練且飛快的使用純文本編輯器或者命令行工具的家伙們才是真正的在寫代碼。接觸Ruby on Rails以后,我一直使用的是Sublime Text 2,這也是現在比較流行的編輯器。但是,當我在西安Rubyist社區活動時,親眼目睹 魏倫(Allen Wei) 同學嫻熟飛快的使用Vim進行開發,在被那種行雲流水般的操作震撼的五體投地之后,我下定了決心: 欲善其工,必先利其器,在開始后面一系列計划之前,先把Vim學會了再說!
於是,我利用一周時間,通過以下兩個Vim在線學習網站學會了Vim的使用:
隨后,我在學習和寫代碼的過程中,強制要求自己盡可能的使用Vim。到現在為止,我已經能夠熟練的使用Vim,並且在自己尋找的一堆Vim插件的幫助下,高效的進行Ruby on Rails開發了,這里秀一下我現在寫代碼時的屏幕:

總結一下使用Vim的好處:
- 在OS X下配合Dash這個工具可以做到雙手不離鍵盤,注意力可以集中,開發效率很高。
- 隨時隨地,不管是Windows、OS X還是Linux,不管是本地還是遠程服務器,都可以立刻開始工作。
以下是我在學習過程中整理的一些資料:
2. 在西安Rubyist社區活動中做了一次技術分享
在辭職之后,緊接着我就在西安Rubyist社區活動中進行了一次有關REST的技術分享,這也是我有史以來在眾人面前做的第二次技術分享(第一次是在先前公司內部做的ASP.NET MVC 4技術分享),這次活動是在ThoughtWorks西安公司會議室進行的,人也不少,所以當時挺緊張,不過感覺真的很棒!
這是分享時制作並使用的PPT,保存在SkyDrive上,可以直接查看和播放:
3. 回顧和復習先前所學的內容
由於先前所說的原因,《三個月家里蹲轉型 Ruby on Rails + SOHO 計划》這個里面的內容我只完成了如下兩個:
現在回過頭來一想,多讀書在我目前這個階段確實不是很重要,以上這兩本已經足夠用了,看完以后趕快多練手才行,所以也推薦給其他想學Ruby on Rails的朋友這兩本書,而且這兩本書都有Andor Chen 同學辛勤翻譯的中文版哦!
4. 短時間參與了一個項目
這個項目先前在Ruby China論壇發布過招聘貼,帖子寫的非常誠懇,當然其中的人也確實非常誠懇,我一直在關注。
但是后來加入到項目中后(真正干活的話總共是3天時間),發現困難比想象中要高,主要原因是:
- 項目MVP階段及后續階段的准備資金不足。
- 創業團隊沒有技術領頭人,這在資金不足的情況下使得情況更加緊迫。
- 我無法認同項目本身的定位和目標。
- 個人准備還是不夠充分,所以工作起來有些吃力。
所以,在我認真思考之后,我認為項目本身的客觀實際加上我當時的技術狀況使得我的加入有可能加速這個項目的失敗,所以我還是退出了。
通過這個短時間的嘗試,讓我還是有一些收獲的:
- 遠程工作沒有想象中那樣簡單。
- 親身體驗了遠程工作,初步總結了一些經驗。
- 對自己的技術水平有了更加深刻的認識,所以后來花了更多的時間去學習和練習。
5. 參加了RubyConf China 2013
RubyConf China 2013是中國Rubyist在2013年的一次最重要的聚會,我很高興參加了這次會議。
在這次會議上,我見到了許多先前只在網絡上知道的國際國內Ruby社區的精英,同時也震撼於很多工作時間不長的朋友都敢於上台演講。
通過參加這次會議,讓我收獲到:
- 對國內Ruby社區的認識更加清晰。
- 很多比我還年輕的朋友的出色演講讓我更加堅定了利用Ruby on Rails實現我遠程工作的決心。
- 認識到自己在這個圈子內的水平處於什么位置。
- 英語很重要,作為一個忠實的“聽眾”,當看到周邊朋友們抓住機會就沖上去和大牛們用英語交流的場面我是那個汗顏啊……(不過后來在從北京回西安的高鐵上,我和身邊的一個澳大利亞哥們兒用英語聊了一路,這才發現原來說英語也沒那么困難,而且周圍剛工作的小姑娘們對我這英語水平還是報以很崇拜的眼神,好吧這個扯的有點遠了……)
在 RubyConf China 2013 的簽售活動上比較幸運的排在第一位與 Dave Thomas 合影留念:

6. 深入學習Ruby on Rails
有了先前這些經歷,我認識到我的學習上還有很多不足和欠缺,所以我在練手的同時更加深入的去學習了Ruby on Rails的相關知識。
到目前為止,我已經能夠比較完整和系統的建立起了對Ruby on Rails的認識,並且結合多年Web開發經驗,對利用Ruby on Rails進行Web開發也不再犯怵了,基本上遇到問題都能夠有解決的思路和信心。
和先前短期參與那個項目時的狀態相比,可以說現在我已經是一只翅膀硬了,敢於並期待飛翔的“菜鳥”了!
7. 初步學會iOS開發
對於iOS的學習完全是出於我的興趣加上對這個行業的認識所決定的。
現在這個時代是一個移動設備崛起的時代,或者說是一場革命,對於我們Web Developer來說,單單的掌握從前到后的Web開發技術已經不夠了,我認為還必須加上移動設備開發才算完整,所以結合我個人對於Apple的喜愛,我選擇了iOS開發而不是Android,從我個人來說,如果有一天就算要做Android的東西,我也可能會去選擇Xamarin這樣自己比較方便過渡的技術。
目前,我已經在這段時間學習了iOS開發的基本知識,並正在征服CodeSchool的iOS開發課程中,根據當前的進度,應該半個月后就能自己做點小東西玩了。
8. 通過開發西安Rubyist社區網站來實踐所學知識
項目GitHub:xian-rubyists-site
這是我實踐我先前所學Ruby on Rails知識和BDD思想的一個重要途徑,由於先前事情太多,所以都是斷斷續續在做,現在終於有時間做下去了,所以感興趣的朋友們可以關注下,也算是對我學習成果的一次檢驗吧。
