【一月徵文】第一天,第一次,我們陪你活動圓滿落幕!我們收到了許多讀者、作者的來信,我們聽見了你們最開心、最難過、最私密的第一次,womany 團隊也想偷偷告訴你我們的第一次!womany 團隊裡唯一的男生,也是有點資深的工程師小蟹,想和你分享他在 womany 第一次向夢想靠近、完成夢想的喜悅!(精彩回顧:屬於我們的第一次

在 2006 年,我還在唸書的時候,有部日劇叫做《東京朋友》,內容描述四位女主角尋找夢想、同時學習克服夢想與現實之間衝擊的故事。這部日劇有個我非常喜歡的標語:「最初描繪的夢想,你現在還記得嗎? 」( 一番最初に描いた夢を、あなたは今も覚えてる?)。

時間走到 2013 年,我因緣際會看了一本舊書《在清潔公司,發現夢想經理人》,裡面反覆提到的核心要點,是詢問:「你的夢想是什麼?」

你的夢想是什麼?我是 womany 的網站工程師小蟹。而我的夢想,是成為網站架構師。

我在 2013 年,很開心的達成這個夢想的第一步。

在訂定這個夢想之初,我還只是一個新手工程師。當時因為想要找網站的參考元素,但是經驗太少毫無頭緒,於是求助於資深工程師同事。在他的引導與討論之中,我才知道原來有架構師這種角色,這也是我第一次對自己的努力有了明確的目標。

網站架構師是個非常重要的角色。引述唐鳳在 SocialCalc 開發經驗談 一文中,提到 Fred Brooks 的想法:「概念的完整性是偉大設計中最重要的特性。由於完整的概念只能出自一人或少數人的合作構想,因此明智的管理者會大膽委託才華出眾的首席設計師,來承擔整個設計任務。」除了架構的設計過程相當令我著迷,在另外一面,觀察其他網站並了解架構,同樣也是我希望自己能夠擁有的能力。

在確立夢想的同時,不免會想起,在之前這麼長的一段人生中,我居然到現在才第一次找到夢想。事實上我光是尋找自己的興趣就花了非常多年。在台灣的教育體制下,我雖然大學念電機系,但直到畢業我都找不到夢想、找不到想做的工作。只好隨波逐流的去念通訊研究所電腦網路組,可是研究所畢業我仍然沒有追尋到自己到底想做什麼?因此當時誤打誤撞開始網站工程師之路,其實是因為寫網站「好像」很有趣、「感覺」 Ruby on Rails 很強大,當時問我哪裡寫網站有趣、 Rails 哪裡很強大,我根本就回答不出來,就只是嘗試看看寫網站這份工作。極其幸運的是,幾個月後我就發現自己對寫網站是真的非常有興趣。因此我將架構師視為我的第一個夢想。

推薦閱讀:學寫程式前,你該知道的五件事

由於這個夢想非常的遠大,明顯不是幾年內可以完成。我的基礎並不扎實,所以只好從頭從基礎開始慢慢學,並試著用一些方法來學習。這一路上或多或少有些收穫,我歸納三點經驗分享給大家。這些經驗都是我自己身體力行,直到現在都還在用的方法。

1. 勤閱讀,持之以恆追蹤領域新知

首先,無論是文章或書籍,都是作者消化與整理過後的心血,勤閱讀可以讓自己少走很多彎路。其次,由於科技進步日新月異,所以追尋夢想的同時,也要保持自己跟上潮流。特別是在跟自己夢想有關的領域上,最好能夠去追蹤領域先行者的動態,掌握最新的變化。一開始接觸最新動態時,能夠吸收的知識會跟自己的基礎有關,但就算吸收的再少也一定要持之以恆,持續地接觸最新動態,慢慢就能夠理解與深入。(享受閱讀,給自己靜下來的時間與空間

我是利用 twitter 做為追蹤新知的來源。因為大部分知名的人物,尤其是技術大師,幾乎都可以在 twitter 上找到。而且 twitter 能夠隨意的去追蹤名人,不需要對方同意。因此我先在 twitter 上訂閱了許多知名的技術大師,特別是 Rails 的發明者與核心開發者等。然後強迫自己,一定要每天看完 twitter 上他們所發出的短文(tweet);換句話說,就是讓自己跟著技術大師看他們篩選過的文章,關注他們對技術的討論,了解他們解決問題的理由。在剛開始的時候有點辛苦,但每天努力閱讀,讓當時處於菜鳥工程師時期的我,能夠感受到自己慢慢的在進步。

另外還可以訂閱一些 weekly 或是 news 類的帳號,除了會定期發最新消息之外,他們也發出關於基礎知識講解的文章。

我試著列出一些這幾年訂閱下來,對我幫助很大的 twitter 帳號:

  • 國外 Ruby / Rails: @dhh, @wycats, @tenderlove, @drnic, @josevalim, @avdi, @charliesome, @peterc
  • 國內 Ruby / Rails: @godfat, @xdite, @ihower, @eddiekao, @tkalu
  • 其他技術名人:@jserv, @gslin, @clkao, @audreyt, @deduce, @dlackty
  • 新聞類:@rubyfive, @rubyrogues, @ruby_news, @RubyInside

除了以上這些帳號之外,還有個小秘訣:記得也要訂閱一些朋友,以及一些會發趣聞的帳號。否則一打開 twitter 就很像在工作,久了很容易怠惰。如果一段時間後,發現自己訂閱的人越來越多,強迫每天看完的壓力真的太大時,也可以試著取消訂閱一些並非自己目前主要關注的目標,不要讓自己的 twiiter 上訂閱太多分心的帳號。

2. 避免固步自封,多參與領域相關的活動

自己一個人的學習總是很緩慢的,一旦遇到問題也只能埋頭問 google。對於新手工程師的我,當時甚至連怎麼下關鍵字都不知道,常常遇到問題就傻眼,然後花了很多時間去尋找錯誤在哪裡、以及如何解決問題。如果有學習相同領域的朋友,就可以一起討論、一起成長。在剛踏入專業領域之初,認識的朋友會很少,這時候可以上網找找相關的活動或是 conference 去參加。參加活動除了演講要認真聽之外,也是交換名片、認識新朋友的好機會,若有機會遇到資深的技術前輩,甚至可以趁機請益該如何更進一步。

推薦閱讀:女人,可以不一樣 她白天走台步,晚上寫程式

在學習網站開發之初,我就開始參與一些開放社群,常常去聆聽相關技術的演講與經驗分享;參加 conference 更是從我在研究所就開始的習慣。參加活動或 conference 除了可以多認識一些技術人員之外,直接對談的交流常常會讓我滿載而歸。認識到的新朋友,我也會加入 twitter 的訂閱之中,慢慢擴充自己的知識來源。

比較特別的經驗是,在開始做網站開發幾個月後,Rails 資深工程師 xdite 找我一起開辦 Taipei Rails Meetup 的活動,主要目的是給新手工程師一個聚會聊天的活動。這個活動其實是讓我在學習網站開發上影響最大的一件事。古諺有云:「教學相長。」在 Meetup 活動中,我會幫忙解釋什麼是 Rails、基本的網站框架概念、遇到問題時該如何解決、甚至是幫忙找出錯誤的根源。這個活動至今開辦了 2 年多,除了讓我認識非常的的朋友之外,也讓我對網站開發的許多基本知識在不斷的回答中越趨扎實。(你認識 xdite 嗎?不是工程師的工程師 xdite

3. 解行並重,親自實踐

「讀萬卷書,行萬里路。」理論讀的再多,沒有實踐過,很難徹底的掌握知識。我的經驗是,一定要身體力行,把想法化為行動,才會是實在的。因為有太多的現實問題,理論中都不會出現;也也太多的例子證明,做的跟想的並不一樣。

在 2013 的年初,我又開始參與另一個新的社群 g0v,這是一個推動資訊透明化的社群,致力於開發公民參與社會的資訊平台與工具。我先是參與了福利請聽專案的開發,並在之後陸續參加一些專案的討論,讓自己累積更多撰寫網站的經驗。此外,g0v 活動我也跟各路朋友學習到許多知識,裡面的專案都是完全開放的,可以盡情觀摩,如果不懂專案的設計架構,也可以直接詢問作者的想法,獲益良多。

在某一次針對目前社會新聞議題的討論中,我跟另一位社群朋友一起構思,建立出關於這個社會議題網站的基礎架構。在討論結束後我自己大吃一驚,因為在那場討論中,我已經可以觀摩其他網站、研究拆解出架構、設計自己需要的網站架構。雖然離自己獨立構思架構還有漫漫長路,而且是跟朋友一起討論出結果,但我可以確信自己走在正確的道路上,並且腳踏實地的邁出第一步。

自我驗證夢想實現第一步的時刻,我自己當晚非常的開心。雖然夢想尚未完全實現,但我已破不急待的想先跟大家分享這段經歷。最後,感謝這次三方邀稿的第一次徵文活動,讓我逼迫自己完成這篇文章。

我是 Womany 團隊網站工程師 小蟹,最初描繪的夢想,你現在還記得嗎?

找回夢想:夢想家 Janet 把世界變成你的遊樂場