RailsGirl若水:從學員妹子到Ruby教練(圖靈訪談)

盼盼姐發表於2015-08-06

若水,真名高憲鳳,住百家Ruby開發工程師。她以Girl身份參加RailsGirls後,便喜歡上了Ruby on Rails。她曾三次參加RailsGirls活動,第一次去的時候是學員,第三次則是教練。為了學習Ruby,她曾兩次辭職,自費參加Ruby on Rails培訓。現在的她,已經如願成為了一名Ruby開發工程師。

RailsGirl若水:從學員妹子到Ruby教練(圖靈訪談)

問:你是從什麼時候開始程式設計的?

我最開始的時候是做測試的,後來因為有工作需要,想要做自動化測試,才開始接觸Ruby。

問:你之前學的是什麼專業?

我在大學學的是教育學。

問:你為什麼找了軟體測試這樣的工作?

和現在好多大學生一樣,我畢業的時候也沒啥目標,畢業了之後找的工作跟自己的專業也不怎麼搭邊。好在軟體測試行業有一個特點,入門的門檻低。最開始的手動測試,其實就是點來點去,試試一個產品或功能合不合適。但是越往深了做越難。

後來因為我們公司測試的人少,我測試1對12,所以這樣點來點去很麻煩,我就想做自動化測試,用機器來做我就省事了。從2011年開始我真正開始做自動化測試,這時候我才開始接觸Ruby。

問:為什麼選擇Ruby?

做自己化測試時,參加了一次自動化測試培訓的課程,那次課程的講師推薦程式設計新手使用Ruby,自己又在網上查了一些資料,大家對Ruby這個語言評價大多是入門簡單,而且它的語法挺像在寫英文句子,所以我就開始自學了。

問:你第一次參加RailsGirls的活動是什麼時候?

第一期是2012年12月份。那時候我稍微知道一點Ruby,大概語法瞭解了一些。學Ruby的過程中上網查資料就發現Ruby總是和Rails關聯,然後我就上網去查Rails,後來才發現Ruby是語言,而Rails是它的框架,兩個結合在一起用。但是Rails入門的門檻有點高,我自己弄得挺暈的,那時候剛巧看到文洋(RailsGirls組織者)發的訊息,他說參加這個活動一天就能學做一個網站。這個太神奇了,我自己搗騰了那麼長時間還是不懂,不如我也去聽聽吧。

當時其實我的基礎很差,因為教練認真會再也想多教一點,所以一下子講了很多內容,但是我壓根消化不了。教練在講,我就使勁地記。雖然那天要做的網站沒做出來,但是收穫挺大的,教練給了我們《Ruby on Rails聖經》和《Ruby on Rails教程》這兩份資料,另外他建議我們去關注RubyChina論壇。

問:參加第一次活動對你學習Ruby的作用是什麼?

RailsGirls帶我入門。現在網路是發達了,但是有一個不好的地方,就是資料太散太亂了。我甄別能力不夠,不知道哪些是好,哪些是壞,可能容易走彎路。有這樣的一個活動,有教練的指導,還是很不錯的。

問:你第二次又去參加RailsGirls的活動了?第二次是在什麼情況下參與的?

第一次回來之後,我把我的自動化測試給寫完了。在系統上跑了之後,我們領導覺得還不錯。我於是又跟著《Ruby on Rails教程》去學,從第一章開始按照那本書一點點地做。當時我幾乎把整本書都做完了,看著書的時候覺得都懂了,但是把書一合上,我就又不知道東西南北了。這時我正好看到文洋發出的第二次活動,我打算再去一次,再向教練請教請教。

第二次特別巧,我的教練就是文洋,他帶著我和另外一個女孩。開始的時候我簡單地做了下自我介紹,文洋建議說:“既然你已經把教程那本書差不多都做一遍了,應該有一定基礎了,要不這樣,你把你學的東西,在這上面做一次實踐。這次你來當教練,你來教這個女孩。”我當時真的沒底,真的不敢。但是文洋說:“沒事,我們們試嘛,一起商量著來,討論著來。”那個女孩也說,反正你都學了嘛,要不我們倆一起研究。

當時我帶著電腦和書,我把自己知道和理解的儘量講給她,實在不確定的我再翻書。就這樣,我倆一邊翻著書,一邊按照提綱製作網站,我還會再講一下為什麼是這樣的,遇到問題就把文洋叫回來。文洋看著我倆還行,他就跑了。這一次我們最終把網站做出來了。

問:第二次活動有什麼收穫?

就像人家說的,學習最好的辦法還是把你學的教給別人。給人講了一遍,確實感覺不一樣了。以前老覺得模稜兩可,但是給人講的時候就得確認,再確認一遍,我覺得這樣掌握的知識比自己看書的時候紮實得多。

問:你第三次怎麼又去參加RailsGirls了?

第三次是想回報社群,做點貢獻。那會我已經轉過來做Ruby開發了。看到文洋發訊息,我就跟他說我想去做教練。於是我第三次又去了。

問:除了自學,你在學習Ruby的過程中是否參與過其他培訓?

在第二期的活動上,我遇到了另外一個教練。他在中場休息的時候跟幾個教練聊天說想準備一個線下的培訓,我坐在那兒不小心就聽見了。在空閒的時候我就去問他,他說這還只是一個想法。我說我想學,當時就把QQ和手機號留下來了。回來之後,雖然自己也在深入地學,但是當我想做點內部小工具的時候,還是覺得自己學得淺,拿不下來。

應該是過了一週多不到兩週的時間,他給我發訊息說大概找了幾個人,想開班。教練叫大慶,RubyChina上能找到他,他那時在北京,現在已經回老家了。

那時我住在百子灣附近,大慶住在海淀3W咖啡附近。每週六下午1點到5點講課,一個小時一百塊錢。當時他沒有提綱,也沒有特定的教材,他的想法是想帶著我們做一個類似於RubyChina社群的網站。他來講,我們幾個就在咖啡廳圍著小桌坐,看著他的電腦。他一邊講,我們一邊記筆記。當時為了參加大慶這個培訓,我自己也買了一個Macbook Pro,以前都是用Windows,當時是8000多吧,挺有壓力的。當時培訓了大概4、5周,那會也趕上公司專案加班,我們差不多兩個月沒休息。週末為了來他這邊,我跟領導說我要去學習,所以週六下午半天我必須要請假。

因為大慶對Ruby的知識很熟,所以講課的時候他手特別快,我壓根跟不上。我在下面記筆記,記得亂七八糟,回來自己再整理。他是講了5個小時,我回去用一個禮拜的時間才能把他5個小時的東西整理出來。天天晚上加班回去後整理,一邊翻筆記一邊想,一邊再翻教程那本書看。那段時間應該是學得最多、最集中的一段時間。

當時我們有一個專案是和移動合作的。移動那邊要求得很細,當時我還在做測試,就按照他們的要求,一條一條來驗證並把驗證結果整理彙總返回給專案組相關人員。天天這樣做,我覺得挺煩的。我們頭對我說:“你不是學了Ruby嗎?你自己做一個小工具不就行了。”其實在他沒說之前我自己就想到了,但是沒什麼思路。於是我就去找大慶,大慶給我理了一下思路,我就開始一點一點摳著往前做。我週末聽大慶講課,回來上班再琢磨這個工具。做不出來了,我再向大慶請教,他給我講思路。就這樣一點點地做,在那個專案中後期的時候我終於把那個小工具給做出來了,而且在專案中進行了使用。

問:這段時間之後你有沒有想過換工作?

每次參加RailsGirls都會加QQ群或者微信群,我看見有人發訊息說要招Ruby on Rails程式設計師,實習生也可以。當時我也想在工作上轉型,就把我做的小專案的程式碼放到了GitHub上,把這個東西給人家看。我說:“這是我自學的,我參加過幾次RailsGirls,做了這個小東西。我挺喜歡Ruby,現在想轉型做開發。我想以實習生的職位進來,我想學Ruby。”社群裡的人都很友善,他邀請我過去聊聊。當時我的程式碼寫得特別爛,現在都不好意思回頭看了。那個面試的人說:“程式碼需要優化的地方挺多的,但是我確實挺佩服你這種精神。你已經工作好幾年了,我們實習生工資給得挺低的。”我說我不在乎,我知道肯定會降工資的,我就是想學這個東西,願意以實習生的身份進來。他們願意讓我去試試,於是我就到這家公司入職了。

問:入職之後順利嗎?

那時我才真的開始在團隊裡寫開發程式碼,跟著大家一起去做。做的過程中我發現自己的底子還是差,努力還是不夠。自學是一回事,沒有壓力,多學少學都可以,但是在團隊裡做的話,人家的專案有時間要求,你必須能跟上別人的節奏。即使是大家願意教你,要是沒時間了也還是顧不上你,能力實在太差的話,真的是拖人家的後腿。

問:你是如何突破瓶頸,成為真正的Ruby程式設計師的?

當時我每天上下班都在聽Teahour.fm,他們4個主持人之一的Kevin,組建了一個GoTeaLeaf的培訓。大慶那個培訓早已經結束了,而且他也已經回老家了。我就想參加GoTeaLeaf的課程,因為我覺得自己能力還是差,雖然我也在網上找資料,專案裡平時大家還會教我,但是知識比較零散,不夠系統。

於是我就給Kevin發了個郵件,他的課是全英文授課,我問他我聽英語還可以,但是跟你之間用中文交流可以嗎?他說歡迎。於是我就報了他的培訓班。培訓班一共分3個階段,摺合人民幣是14000多元。我從最基礎的階段開始,一點點跟著他學。Kevin的課難度真的很大,一方面是因為他是全英文授課,每次去看視訊其實也是連蒙帶猜,一個視訊聽好幾遍。聽完之後,我就做課後練習題,做完了再把程式碼提上去,我把自己做了什麼、怎麼想的、還有什麼疑惑都告訴他,讓他幫我解答。

Kevin的課程的另外一個難點在於他一直在強迫你自己去思考,自己去想,自己去動手。有時候你可能在那兒保持著一上午或者半天的時間都在想課程中出現的問題。不像《Ruby on Rails教程》那本書,它從頭到尾都告訴你怎麼做,你過不過腦子都行。

GoTeaLeaf課程大概學了有一半的時候,我就發現時間不夠。因為我還在職,我們公司專案也緊張,一邊上班一邊學課程,我總是覺得時間不夠。正好專案那一期告一段落,我綜合考慮了一下,決定辭職。我想有一個完整的時間從頭到尾系統地學一學。以前我早上差不多7點起床,看看書去公司。為了學Kevin這個課程,我差不多5點多就起來了,否則沒時間。但是即使這樣,時間還是挺碎片的。

就這樣,大概是2014年10月底,11月初的時候我就離職了,在家學GoTeaLeaf的課程。差不多到今年春節過後學完了,我就來到現在的公司住百家,在這從事Ruby on Rails開發。

問:看來GoTeaLeaf課程對你的幫助很大,這個培訓有什麼與眾不同之處?

這個課程做的專案並不很複雜,但是他一直在強化你自己動腦,自己動手,自己去想,自己去做。只有這樣,知識才能轉化成自己的。只是閱讀,轉化率太低了。另外,這個課程會給你講很多原理,為什麼會是這樣。看書照著做肯定沒錯,但是Rails是約定大於配置的,對於很多東西我根本就不知其所以然。這樣的話就會造成一個問題,遇到問題變種的時候就不知道怎麼辦了。而這個課程會告訴你為什麼會是這樣的結果,如何才能自己完成變種,然後如果沒有現成的東西你怎麼能自己通過轉化完成變種。如果你知道它的原理,就可以自己構造了。

問:你覺得你一直以來為了學習Ruby付出的努力是否都值得?

我覺得Ruby這個語言特別好玩,Rails這個框架也特別好用。在我慢慢接觸的過程中我喜歡上了Ruby on Rails,如果我想用它的話我就得學習。像剛才說的各種吃苦,花那麼多的錢去培訓,金錢上前前後後加起來應該有兩萬,這還沒有計算時間成本。但是因為我喜歡Ruby,所以付出這些都是值得的。

問:你是否建議別的初級學習者應該在外面尋求一些幫助?不能只是自己看書或者在網上找東西?

為有價值的學習花錢是值得的。自己學其實也沒有問題,網上的資料也很多。只不過自學的時候可能彎路會多一點,自己鑑別資料可能會比較困難。如果能夠參加社群組織的活動,或者在社群裡得到別人的指導會更好。如果能有像RailsGirls這樣的活動帶領入門再配合GoTeaLeaf這種很系統、很原理化的培訓,我覺得花錢是非常值得的。

問:你接下來在學習上,事業上,工作上有什麼計劃?

即使是我現在參加了這麼多的培訓,學了這麼多,工作了這麼長時間,我覺得我的東西還是不夠。現在我每天起來都會去看Ruby on Rails Guides,我每次看的時候,都會有新的收穫。我不認為會寫程式碼就是一個好的開發者。寫好程式碼只是最基礎的,對產品的理解,對需求的理解,對使用者的理解,這些也都是必不可少的。

問:你現在業餘時間多不多?

我們週六週日是不加班的。平時的話我們就正常上班,如果專案工期緊,可能會晚走一會。

問:你的業餘時間有多少是用來學習Ruby和程式設計的?

我這個人比較宅,可能一個月或者兩個月才會出去玩一次,剩下的時間基本上都宅在家裡看書。自己喜歡的事,做起來不感覺辛苦。

問:你覺得程式設計師是吃青春飯的嗎?

我不這麼認為。從我想學Ruby到最後成為Ruby程式設計師,已經是過了30歲才開始行動的。

年輕的時候,剛畢業的那兩年可能是拼身體、拼加班。因為自己資歷不夠,經驗也很淺,所以通過加班和熬夜來長知識、長資本。隨著年紀越來越大,你經歷得越多,你的經驗也會越多,你能看到的就更遠。比如同樣是實現一項功能,剛畢業的人可能只是單純地把這項功能做出來,可能做得會很快。但是當你站得更高時,想的就會更多:我怎樣做才能讓使用者使用得更方便、更人性化,我在實現這個功能的時候,怎樣能把程式碼寫得更巧妙,擴充套件性更好。我覺得對於程式設計師來說年紀越大經歷越多,反而是一件好事。

問:對於其他想要學習程式設計或者學習Ruby的女生你有什麼建議嗎?

一定要親自動手實做,最好是親身參與真實專案;花錢參加專業的培訓。大道至簡,每天堅持。


更多精彩,加入圖靈訪談微信!

相關文章