從 QA 到 rails developer 的撞牆之路

這是一個不聰明可能還有點障礙的普通人的撞牆之路, 我想講一些一點都不激勵溫馨人心的部分XD, 當初我想尋找像我這種轉職工程師的過來人的文章時,我看到的感覺大家都很順遂,挫折也只會講到一點點, …所以就由我來寫出我當初想要看到的文章吧,我會努力不讓他太黑暗的(?)

既然是要講我的撞牆之路,那麼容我先簡單的介紹一下我自己。

背景

  • 資管系畢業,BUT 就是這個 BUT,畢業之後的這 n 年幾乎不碰程式可能寧願說自己日文系畢業,所以了不起是張灰階 10% 的白紙。
  • 我了解有些 QA 的工作需要動手寫程式,但我以前的幾乎不用,所以我真的忘光光了。
  • 我身邊沒人寫 ruby,所以無法問我身邊的人。

為什麼要~~撞牆~~ 轉職

~~因為聽到上天的指示~~

其實這原因很單純,因為我一天到晚在 twitter 上看到我愛用的網站的老闆一天到晚在徵rails工程師,然後我就跳進來學了,在這之前我是沒有聽過 Ruby on Rails 的,然後就從大概兩年前撞牆撞到現在了。


背景結束了,對於轉職,我覺得最重要的點在於要想清楚,轉職都很痛,學程式也從來都不簡單……..痾,至少對我是這樣(這點倒是我大學就很認清自己了),所以不要去相信任何看起來可以一步升天的廣告,而且認真看一下那種主打某某某多快多快就可以上手的文章裡的主角,他絕對不是新手,通常都是別的程式轉ruby,或者他只是本來職業不是工程師,但興趣本來就是自己私下開發東西,這根本是另一個世界…起始點和我完全不一樣。

那我當初到底一開始是如何撞我的第一下牆的呢?

很多人都會說強的人靠自學就可以,網路上免費的資源很多,根本不需要花錢, 所以一開始我也先從線上的教學網站開始看,但覺得似懂非懂(但其實設計的不錯),而且身邊沒有人可以問….

於是身為一張灰階10%白紙的我覺得我還是需要個實體的老師,自學什麼的對我太難了,於是首先我報了五倍的 “rails” 課,聽了之後我深深的覺得

哎~ 對 ruby 了解不夠讓我稍微有點問題都要 debug 很久啊

於是結束之後我也報了 mooc 的 ruby 課, 在這時候我發現了一些對我很重要的制度。 1. 課程的線上的論壇。 我覺得菜鳥很容易懷疑是不是自己的問題特別愚蠢,所以不敢隨便發問,但是,如果有論壇的話,當你發現大家會卡住的問題和你差不多的時候,其實會覺得相對安心,原來自己不是唯一一個。

這點 和 stackoverflow 不太一樣,因為那邊太大,各種文章也太多,對我來說其實不太會有大家的問題點原來和我差不多的安心感。

而且在課程的論壇上問,你不會碰到有人酸你,這點我覺得很重要,~~一般網路酸民很多,但菜鳥的心不一定很堅硬~~

  1. 有人幫忙看自己寫的東西需要改進什麼。 這點倒是很簡單, 單純有人幫你會比自己摸索還要來得快,而且可能會更快知道更好的做法。

  2. 可以看到別人實際寫程式的樣子。 其實這點很重要,因為自己寫的時候一定覺得"唉唉怎麼一直打錯字,一直卡在這種地方",但上課不管實體還是線上,只要是他一邊寫程式,一邊講解給你看的時候,你就一定會發現,就算是有好幾年經驗的工程師還是會打錯字,雖然每個人發生機率不一樣,但這是一個普遍會發生的事情,不是因為自己不適合走這條路。

以上都結束之後雖然我覺得自己變強了,但是去看別人寫的 code 還是會覺得,黑人問號 orz。

我的確可以做到課堂上過的東西,但是還沒有應變的能力,稍微不一樣我就又會卡住了, 特別是一開始我對於** rails 生出來的那一堆資料夾中想要找檔案都有障礙**,過了一陣子我才比較清楚, 否則一開始常常處於"阿阿阿阿檔案你到底在哪裡啊"。

滿滿的技術債

而且需要了解的,又怎麼會只有 Ruby on Rails 呢,既然是寫網頁,當然還有最基本的 html/css。 以及我看到就覺得膝蓋一軟,但是無所不在的 javascript ….. 還有我以前聽都沒聽過的寫測試。 永遠學不完的東西是工程師一定會面對的,但是也因為這樣才有價值,只是畢竟起步比人晚,基礎還沒有真的打好的時候是真的會免不了覺得自己好像沒什麼進步, 但這也是一定需要面對的地方。

動手做

as title, 不管是自己從頭寫簡單的東西出來,還是回家想要自己從頭把上課做的東西寫出來常常會發現當時覺得聽得懂的,回到家自己想從頭來的時候腦筋一片空白,其實就是因為還不夠熟,雖然有人告訴你步驟的時候覺得很好理解,但真要自己來的時候就不知道從哪下手。外加有些東西聽的時候可能沒想太多,等回家自己做的時候才發現自己其實不懂的地方。

至於從頭做新東西,則是因為一定會碰到上課沒教的東西,會讓你自己開始從網路上找新東西,以及問人。也建議可以做筆記,特別我個人來說,我沒有辦法在我頭腦模擬完整個流程,用文字寫下來就格外重要。

當然如果可以找個開源的案子就更好了。

然後繼續撞牆吧

就可以體會到撞牆的樂趣(?)

總結一下我2年的過程 1. 自學 2. 上實體課 3. 網路課程補RUBY 4. HTML/CSS 5. javascript 6. 自己做東西 7. 碰實際的案子 8. 再繼續撞 9. 再碰實際的案子 10.依舊繼續撞牆 <– 現在在這

個人覺得我的黑暗期很長,畢竟很多基本的東西是空的,所以讓我聽不懂相關聯的東西,一直不停的在填洞,但的確可以看到洞在變小(握拳)。

希望這篇文章可以讓大家知道一張白紙到變成工程師需要碰到多少問題和時間和挫折。