跳到主要內容

發表文章

目前顯示的是 12月, 2019的文章

女性.婚姻.職場.幸福

身為一位從小熱愛理工科、寒暑假以研究數學方程式為樂的女孩,我在考上了台大土木系後,反而對「工程師」這個職業失去熱情。 原因在於我沒有找到好的 role model :身邊的學長、前輩雖然事業做得成功,但大都是男性而且我並不能感受到他們喜歡他們的生活。我聽到的都是抱怨:抱怨工時長、工作量太大,我聽到的是他們一直盼望著早日退休。在還沒有畢業前,我就失去了對工程師這個行業的憧憬。 後來我到了美國,讀了180度轉變的「創意寫作」碩士、畢業後擔任科技公司的 technical writer。在矽谷的職場上,我反而重新找回對工程的熱情。找回熱情的關鍵在於我終於找到了role models。role models 包含身邊非常多辛苦工作卻真正以工作為熱情的榜樣們;他們加班的時間不見得少,但他們以學習為樂、以創新為樂、以找到問題的答案為樂。在他們身上我看到了我想要的生活型態,激起了我努力想變成跟他們一樣的動力。因此在我的女兒一歲的那一年,我靠在家自學寫程式轉行成為一位矽谷的軟體工程師。(更多細節可以看 「如果你沒有勇氣追求夢想,先去擴展你的視野」 、 自學轉行軟體工程師 — 網路教材、工具篇 。) 由我的職涯故事可知,擁有好的人生榜樣真的很重要。榜樣就是一個效仿的對象、一個人生的憧憬。知道前方有值得我們期待、嚮往的事情,我們才有力氣向前衝。 今天寫這篇,想說的是關於身為一位「女性」這個角色所需要但嚴重缺乏的人生 role model 。 在我成長的過程中,身邊有各式各樣能讓我觀摩的女性長輩:有些是全職媽媽在家相夫教子、有些是沒有結婚的事業女強人,當然也有很多職業婦女,在家庭與職場間尋求平衡。我看來看去,一直希望能找到我未來人生效仿的對象,但始終沒有找到。我觀察到一個現象:職業婦女嫉妒全職媽媽能待在家;全職媽媽也忌妒在外上班的媽媽有自己的事業。未婚的女性總受到社會的歧視;已婚的女人卻總說要是沒有結婚就好了。因此,我不知道到底誰該是我人生的榜樣。 高中聯考前,我媽媽帶我到廟裡拜拜。她看我求菩薩求得很認真,問我是跟菩薩說我想去哪間學校嗎?我說,我請菩薩讓我上一間我能夠每天快快樂樂的學校。從那個時候,我就知道這世界上最重要、也最難的一件事,就是快樂。 在台大讀土木系讀碩士時,我的指導教授鼓勵我出國讀博士。「要是妳以後和妳媽媽一樣,當一位大學教授,那不是很

寫 code 與寫作的相似處

                             時常覺得,這世界上所有的事物都是一脈相承的。同一個道理,放到很多不同的地方都有異曲同工之處。我以前是一位 technical writer,現在是軟體工程師兼業餘作家,最近便發現寫文章和寫 code,真的有很多相通的道理。 曾經在美國馬里蘭大學當講師,教一門大三必修課:technical writing。我叫學生看一本在我心目中是關於「寫作」最棒的一本書,叫做 On Writing Well 。 這本書的一個重點,就是寫作時要用力地砍掉贅字。舉個例子來說 "a tall skyscraper" 這個片語中,"tall" 就是多餘的,因為高樓大廈不可能是矮的。同理,電視上常聽到諸如「進行確認的動作」這種中文,其實用「確認」二字表示就可以了,其他都是贅字。 我跟學生說,寫作要盡可能達到 "simple",不要寫又臭又長的句子。我讓學生們在課堂上分組練習把一段冗長、囉嗦的文字改到最簡潔有力。 有學生反駁我的說法。「為什麼要寫 "simple" 的句子?是設定讀者是白癡,所以故意用很簡單的詞彙、句型,怕他們看不懂嗎?」 想了一下,我發現我用 "simple" 這個字確實容易引起誤會。 「我指的 simple,是指 elegant。寫作要盡可能達到優雅,而優雅的文字,常常就是最讀起來最簡潔、清爽的句子。」 透過課堂練習,學生們發現,十個句子的段落其實用六句話就能表達相同的意思。有二十個單字的句子,又能再砍掉五、六個贅字,使得句子更好懂、更有力。當然刪贅字並不是畫掉多餘的字詞那麼簡單的一件事,而是認真地去思考:整段話想要表達的到底是什麼?從而重新架構思路,以更優雅的方式呈現文字。這個「砍字」過程包含了尋找更精準的詞彙、使用更生動的動詞、將一些被動句型改成主動句等等。當然也要適可而止;如果只是「為了刪字而刪字」,把原本的文章改到沒有人看得懂,自然也是不行的。 這幾天在工作上我開始使用 React Hooks。這個 2018 年推出的 React 新語法,讓原本需要用 class 來寫的程式都變成 pure functions。同時,set state 及 React life cycle

是不是要「很聰明」、「數學很好」才能寫 code?

在我去年開始自學寫程式之前,我常常問是軟體工程師的朋友:「寫 code 很難吧?感覺超難懂。」在我心目中,寫 code 跟「數學能力」最有關係。 有趣的是,凡軟體工程師給我的回答,幾乎都一樣:「不會呀。學寫 code 就像學英文、日文那樣,就是一個語言。」 但我不是很能夠被這個答案說服,因為我以往跟程式語言的歷史告訴我,寫 code 是很困難的。我從高一第一次接觸 C++,到後來大一上土木工程系的必修課也是修 C++,經驗都蠻慘的,因此我就宣判自己沒有寫程式語言的天份。直到去年我從零開始再次透過線上課程自學寫 code,我才終於體會朋友們說的「學 code 就像學任何一個異國語言一樣」這句話的意思。 就從我高一的時候,第一次接觸程式語言的故事說起吧!那時是我學校的物理老師鼓勵我學程式語言的。他以完全免費的方式輔導我在假日期間學 C++,大概也是看到我對理工科有興趣,想說我可以自學寫一些小程式、搞不好還能參加什麼比賽之類的。於是他給我開了書單,讓我買了兩大本比字典還厚的 C、C++ 教學工具書(這種書現在還存在嗎?)來看,並且給我出功課,要我自己研究怎麼做出一些程式。 但朽木如我,一直碰壁,步步都感到挫折。那時的我,還不知道怎麼「自己找答案」,因此我心中一直期待老師可以好好示範他到底要我做什麼,因為我連他出的功課的題目、他到底想要我做些什麼我都不了解,也不知道從何問起。現在回想起來,老師心中一定是想:「這有什麼難的?自己看書,看不懂去找答案,不就這樣嗎?實際做做看、做不出來用力想直到做出來為止,難道還要手把手教學嗎?」但要知道那時候的我,雖然很喜歡數學、物理,理工能力不差,但「電腦」對我而言,就是一個玩接龍和踩地雷的工具,因此我連怎麼按照書上的說明去設定寫程式的環境都搞不清楚。 總之,第一次學寫程式的經驗,就在我心中無限多個黑人問號中無疾而終。直到上了大一又再次遇到 C++。 這次我以為我可以學得比較好,畢竟這是我第二次跟 C++ 碰面了。我們用的課本,再次是那種厚得令我第一天就把它切割成三分的工具書。但豈知第一堂課老師也就講完差不多三分之一本課本,一下就上完一、兩百頁的進度。 「等等啊!」我心中吶喊。第一堂課我們就從 Hello World 上到 for loop,而且是雙層的 for loop, 因為要用程式語言畫出這個形狀: