跳到主要內容

發表文章

目前顯示的是有「女工程師」標籤的文章

轉行軟體工程師一週年感言

我從 2018年底開始在家自學寫程式、啟程我從技術寫作員轉行軟體工程師的旅程,但我擁有全職、正職軟體工程師身分,在這個月才剛滿一年,所以我整理了這一年來的三個感言: 1. 最要感謝的人: 我的老公 很多人問我轉行的經驗我都不敢隨便給意見,因為這些人可能住在亞洲、住在歐洲;我都跟他們說,我只了解矽谷的轉行環境,因為我就住在這裡。而我之所以理解矽谷就業市場對於半路出家軟體工程師的接受度、機會的多寡、面試的難度,這都要感謝我老公比我早四年轉行、走在我前面,為我開拓道路。因為他走過一遭了、也成功了,所以我才能相信半路出家轉行是一件可行的事情;除此之外我親眼目睹他在過程中遇到的挫折、下的功夫、使用的方法... 我非刻意地耳濡目染得到的這些資訊,真的是我最寶貴的資源。 我老公比我早轉行的那四年期間,我從來沒有認真想過要跟他一樣。我心想,家裡一個工程師也就夠了。但他還是在無形間、非刻意地影響了我。這個影響力是遠遠超過四年的。早在我們九年前住馬里蘭的時候,我就看著他每天比我早一個小時起床,坐在客廳兩人座的餐桌上讀厚厚的程式語言書籍。那時我都覺得他是神經病,幹嘛不多睡點覺。連我媽媽來玩看到都說「Brian 拜託了,可以不要那麼認真嗎?」 印象最深刻的是他在投了幾百封履歷都沒有結果的失業期間,某天他在一張白紙上寫下了五年計畫,貼在我們的房間裡(那時候我們跟其他室友共住一間公寓)。那五年計畫的終端是他要去 Google 當軟體工程師。我看完嘆了一口氣,摸了摸他的頭說「沒有關係啦,就算你一直找不到工作,我還是會愛你。」對我來說,他那個計畫真的是天方夜譚,因為那時的他剛從環境科學碩士畢業,完全不會寫程式,我真的不知道這個計畫要怎麼走到 Google 這個結果。 他寫下計畫的五年過後他沒有進 Google,但他去了 Facebook,我們常笑說也差不多啦!我時常想起那張貼在我們牆上的白紙,還是感到不可思議;我在我老公身上第一次看到有人會認真按照自己設立的五年計劃執行。 我以前以為我比我老公聰明,因為他總是花比我更多的時間在讀書、傻傻地在用功。但現在當我在工作上程式語言寫不出來、卡住的時候,我卻需要跟他求救。現在我才懂,他的思路、邏輯以及跳脫框架思考能力真的是比我想象中地強很多,但他仍然非常努力。聰明,還要加上努力才有用。 這麼好的楷模讓我學習;我最感謝的就是 我老公 。 2. 盡信書則不如無書...

十分鐘理解何謂「網頁開發軟體工程師」

by Vanessa Wang    歡迎支持我的臉書專頁:【 工程師作家的轉職人生 】 上週有個朋友打電話給我,說她認真考慮跟我一樣轉行當軟體工程師,想要多理解我的工作內容。 很多人想要學寫 code,但未必知道會寫 code 以後能夠做什麼、有哪些工作選擇。這篇我想以淺顯的方式講解所謂的 web developer (網頁開發工程師)的工作內容到底是什麼。 首先說明一下,coding 相關的職業非常多:你可以寫手機的 app、寫網頁、開發人工智能、做金融業的預測模型、做機器人(包含工廠用來大量生產各種產品的機器)、開發自動駕駛技術等等等。太多了。程式語言存在的目的就是做自動化、減少人工作業時間,所以運用的範圍無遠弗屆。 這篇要講的只是這其中的一種職業,那就是 web developer,因為這是我現在做的,也是許多非本行的人學會寫程式語言後第一個會考慮的職業。網頁開發工程師,顧名思義就是寫網頁的人;仔細想想,現在世界上任何產品、公司都有網頁,因此網頁開發工程師的職缺非常多,再加上這是 coding 相關職業中入門門檻較低的選擇,因此市面上的「軟體工程師速成班」(coding bootcamps)大部分也都是教網頁開發。 網頁開發又分成前端工程師及後端工程師,我做的是前端。那我們的工作內容到底是什麼呢? 我們都在網站上買過東西。舉個例,當你在 Amazon 上買一件毛衣的時候,你會看到毛衣的照片、看到價格、看到尺寸... 使用者看得到的這一切,都是前端工程師用 code 寫出來的。當你選擇衣服尺寸的時候,你會看到只剩下 Large,Medium 跟 Small 都沒有了。讓使用者看到剩下哪些尺碼、讓那些已經缺貨的尺碼變成不能夠選取的狀態、讓使用者在沒有選擇尺碼前不能按下一頁結帳... 凡跟使用者介面相關的東西,都是前端工程師的責任。 至於網頁上字體要多大、怎麼排版比較好看這種事,通常就有另外的 「網頁設計師」負責設計美感。工程師主要是處理邏輯的部分,像是使用者按哪一個鈕會跳到哪一頁、信用卡號碼少寫一個碼下單不能成立、如何讓已登入會員在下次登入時看得到之前放在購物車裡的商品等等。 前端工程師的工作,就是讓買家能順利的下單,買到她想要的尺寸、顏色。但網頁如何知道什麼時候 Medium 開始缺貨?又怎麼知道什...

初學 Python 與 Machine Learning 心得

by Vanessa Wang    歡迎支持我的臉書專頁:【 工程師作家的轉職人生 】    就算完全沒有寫過 code 的人,一定也聽過 AI(人工智能)、Machine Learning(機器學習)、Python 等這些這幾年很夯的字眼。但你知道這些名詞是什麼意思嗎?    因為我也很好奇,於是我最近上了 Udemy 這門  Complete Python Developer in 2024: Zero to Mastery 。平時我工作用的語言是 JavaScript,但 Python 已被許多人列為當今最受歡迎的程式語言,因此我一直很有興趣知道,究竟為何愈來愈多人要學 Python?今天就是要分享我的初學心得。    我是  Complete Python Developer in 2024: Zero to Mastery  這門課的老師的常客,上過許多門他不同的課程。他的課的特色是便宜、內容豐富完整(30+ 小時的紮實課程)、用淺顯易懂的語言讓門外漢理解程式背後的邏輯理論,最重要的是非常著重實作的手把手教學。這個教學風格非常合我胃口,因為我就是一個喜歡實作的人:與其跟我說一大堆烹飪博大精深的理論,不如先教我怎麼把水煮開、煮出一顆水煮蛋吧!這篇將分享我照著課程影片用 machine learning 做出一個簡單的模型、能夠分辨三種不同的鳶尾花。這大概相當於機器學習世界的一顆水煮蛋吧!    先來說說 Machine Learning 到底是什麼。這幾天我很有興致地趕課程進度、看了許多課程影片,終於了解 Machine Learning 是什麼了:簡單地說,我從我即將兩歲的女兒學習到,嬰兒就是最好的 Machine Learning 例子。    我女兒現在很會認人:給她看我十幾年前的照片她也會叫媽媽,非常給面子。給她看她自己的照片,就算是一年前嫩嬰的樣子,她也知道是她自己。因為人人都說女兒長得像我,我就找出一些我小時候的照片給她看。我自己是覺得我小時候的模樣跟女兒真的像極了,想說魚目混珠放在她的照片裡她應該也覺得是她自己吧!但女兒很聰明,指著我的照片說「...

如何選擇職業

同事分享了這張圖:如何選擇職業?就是選「你不討厭的事」、「別人願意付你錢做的事」及「你有可能會做得不錯的事」的交集。 愈看這張圖愈覺得有道理。有些職業我是一定做不來的。例如說獸醫我就不適合當,因為我不是很喜歡動物。例如說我無法當運動員,因為我體育很爛。而我也決定暫時不當全職作家,因為賺的錢不足以養活我自己。 但除了以上落在圈圈以外的職業呢?我相信有不少工作是我做來不會太差也有人願意付我做的事情,而且我也算是 enjoy。比方說我以前當過的 technical writer、老師,都是這樣的工作。但當然每個「適合我」的工作之間還是有些不同的取捨。 轉行成為軟體工程師的其中一個考量,就是因為我覺得這是一個「別人願意付你錢做的事」的代表,至少在目前的矽谷是如此。Technical Writer 的缺可能全矽谷一週才開出幾個,但軟體工程師的缺卻非常地多。這對於換工作的難易度、面試機會等來說,都有很大的影響。 想分享這張圖,是因為很多讀者來信表示不知道自己到底喜歡什麼、真正有熱情的事情是什麼。其實 Grit (恆毅力) 這本書說,大部分的人都太過相信這世界上有那麼唯一一個「最適合」自己的職業,但事實不然。大部分找到自己 career passion 的人,其實是多方摸索、挑選出一個還算是適合自己的領域後經由不斷練習、成為專家,然後「因為成為專家」、因為有了舞台而加強了他們對此行業的熱情。 也許是電影、小說太過浪漫化「追夢」的過程,主人翁總是清楚地知道自己想當歌手、廚師、畫家... 然後就義無反顧地追求那屬於他「命中注定」的夢想。但現實生命中沒有那麼多的命中注定。我們都是從「不討厭的事情」開始探索,經由練習變得愈來愈厲害、有信心後,也許這件事情還有人願意付你錢來做,這樣一個良性循環、相互加成的效果之下,某件事就慢慢成了我們的 career passion。所以與其一直等待著找到自己「真正喜歡的事情」,不如從隨便一個自己不排斥的事情開始著手吧!如果這件事你也做得不會太差、有就業市場,這件事很有可能就會慢慢成為你的 career passion,或者這至少會是一道門,開啟你通往其他「你不討厭」、「做得不錯」、「別人也願意付你錢」的職業選擇。 by Vanessa Wang    歡迎支持我的臉書專頁...

寫 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 ...

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

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

女生當工程師比較難嘛?

by Vanessa Wang    歡迎支持我的臉書專頁:【 工程師作家的轉行人生 】 保姆說,一歲的女兒今天拿著一本書研究半天,先搬到鏡子前面踩在書上看一看,後來發現可以把厚書移到桌子旁邊,就能變成一個小台階讓她能夠摸到桌面上平時摸不到的東西。 「她真的很有研究精神喔!什麼都可以研究好久...」保姆說。我們也發現她真的對於各種東西運作的原理很有興趣,例如各種扣環、安全帶、樂高、兩本書之間任何共通的圖案... 有時候有人會問我,「女生當工程師比較難嘛?」每次被問這個,我就會講一個故事。 初入青春期時,我的班上有一個女生,她是我們班很少數有「男朋友」的女生。我很羨慕她,於是我就問她,要怎麼樣才能讓喜歡的男生也喜歡自己呀? 「嗯...問他功課吧!我叫他教我數學!」 「喔!」我猛點頭像是恍然大悟一般。但同時我也有一點疑惑,因為那位女同學的數學成績明明就比男生好呀! 但我很快就忘掉自己的疑惑了,因為女同學說的招數完全符合我看過的所有小說情節。像是我最愛的「亂世佳人」裡的郝思嘉就說過,要裝笨才有好男人緣;也怪不得她擄獲了幾乎所有男人們的心。 所以關於「女生當工程師比較難嘛?」這個問題,我的看法是:男生和女生的數理能力應該沒有太多的差別,差別在於這個社會給予「男工程師」和「女工程師」的附加價值差很多,造成男生更有動力去努力變成一位工程師。 怎麼說呢?一般而言,男工程師的形象不差吧?薪水不差、職業算是 man、表示頭腦不笨,應該可以算是親友團理想的相親人選。至於女生當工程師,在男人眼中實在沒有什麼特別加分的地方;如果有的話大概就是比較不會打扮,花在化妝品、衣服上的錢比較少吧。 理工科,說到底不是一個容易的領域,對誰都一樣。而說到底,每個人都有許多專長,都有不只一種適合的職業。但對某個性別族群來說,當工程師可以把自己幻想成帥氣的鋼鐵人;對另一個性別族群來說,當工程師、讀工科可以成為沒有人想聯誼的科系對象.... 一邊是拉力、一邊是推力... 哈哈,以上黑白講,大家笑笑就好,不要太認真 想要聽我完整的轉行故事嗎? 我的自傳《文藝少女的矽谷進擊》博客來連結 : https://reurl.cc/GdgLNW 延伸閱讀: 是不是要「很聰明」、「數學很好」才能寫 code? 寫 code 與寫作的相似處...

猶豫「我適合當工程師嘛?」

by Vanessa Wang    歡迎支持我的臉書專頁:【 工程師作家的轉行人生 】 這週為了幫家中的逆滲透濾水器換濾心,我跟老公連續三個晚上蹲在水槽下研究到半夜一點。 其實也不是多難的一個過程,只是第一個晚上我們看說明書說要「逆時針」轉開舊濾心,結果怎麼都動彈不得。隔天寫信、打電話給客服又看無數 YouTube 影片終於了解,所謂的逆時針,也是要定義好是從哪一頭看過去的逆時針,因為從另外一頭看就是順時針了。原來我們的視角錯了。 第二天則是連接塑膠管的地方一直漏水。我們試了無數種不同的方式在接頭的螺紋上綑止洩帶—— 鬆鬆地綑、緊緊地綑、綑兩圈、綑三圈、綑四圈...綑九圈,甚至不同寬度、厚度的止洩帶都用了,網路上各種方法都試了,但永遠漏一點點水。 最後一天我們決定應該是接頭的問題吧!於是就換了原廠附送的替換接頭、一邊看「俗女養成記」,一邊第 N 次拔掉止洩帶、第 N次綑上新的止洩帶、第N次打開水源測試,祈禱拜託不要再漏了。結果真的就好了。 說了落落長的一個居家小故事,其實是因為我覺得這個過程,就是一個蠻典型工程師的工作型態:遇到問題後,不厭其煩地把各種可能出錯的環節一個一個排除,直到找到問題根源、解決。當然有很多更有效率的方法啦,例如對水電比較有經驗的人,就不會像我們這麼白痴要搞三個晚上,但那個處理過程的精髓大概就是如此。 考慮轉行的人可能會好奇自己適不適合當工程師,所以我想分享這個例子。遇到問題,你有耐心和興趣去尋找問題核心嗎?當然也不是說工程師都多麼 enjoy 這個 debug 的過程— 如果可以十分鐘就換好濾心去看電視,誰想要半夜一點還蹲在水槽前⋯⋯ 但重點是你能為了「找出能讓水管不漏的方法」那一瞬間的成就感,忍受 72 個小時不斷試了、失敗、又要重來的過程嗎? 許多人來信問我,如何能找到自己的興趣?我覺得很重要的一個觀念是,喜歡做一件事,不等於每分每秒都 enjoy 那個過程。我很喜歡寫作,但作家們大部分的時候都需要逼自己去坐在書桌前,忍受自己不知所云地亂寫的感覺。沒有這個過程,就沒有寫出一句很棒的句子時的那種喜悅。同樣的,沒有枯燥的試誤、失敗、重來過程,就沒有找出能讓濾水系統不漏水的方法的快樂。 附上我老公 介紹逆滲透濾水器的文章 。逆滲透出來的水真的比較好喝。 延伸閱讀: 自學轉行軟體...

這麼老了轉行還來得及嘛? 一歲女兒顛覆我對「時間」的理解

by Vanessa Wang    歡迎支持我的臉書專頁:【 工程師作家的轉職人生 】 2018年在我女兒九個月大的時候,我辭掉了幫工程師寫技術文件的工作(technical writer),在家 靠網路上的教材自學寫程式 。經過九個月的努力,我成功轉行成為矽谷的全職軟體工程師。 轉行是一件具有風險的事情,而我當初在做個決定的時候,和許多人一樣,很害怕放掉過去累積的年資、害怕轉行不成兩頭空。這個風險是一個事實,是每個人必須自己承擔、衡量的事情,不管誰跟你說什麼「人生只有一次」、「做就對了」,這個風險都是不變的。 我想寫這篇,不是要說轉行很簡單、誰都可以或什麼的。這篇是要紀錄我現在一歲的女兒、一位工讀生以及特斯拉工廠的工人們在我轉行之路上扮演的角色:是他們讓我找到轉職的勇氣、教導我用正確的態度面對中年轉行這件事並且顛覆了我對「時間」的理解。 2015年萌生想當工程師的念頭,但不敢有所行動  我在加州矽谷特斯拉汽車工廠 擔任 technical writer 的第一個禮拜,旁邊坐了一位剛從麻省理工學院畢業的女孩,她是機械工程師,小我七歲。在工作上,她負責找出解決問題的方法,我負責將她的解決方案紀錄下來。我知道我的工作也很重要,但我總想著,我以前念的也是工程,難道我做不了她的工作嗎?我難道想不出改善電動車生產線的方法嘛? 但我打消了那個念頭。我心想,我在剛讀完土木工程學位時沒有立刻去當工程師,現在過了那麼多年了--工程那麼「硬」的學問我哪做得來?就算我做得來,誰要給我這種機會? 每次幫別人寫工程文件時,我總想著他們提出的解決方案可以怎麼改善;我總想跟工程師討論他們是怎麼決定各個解決方法的。有時候我幻想著再次去投土木工程師的職缺, 但我還是不敢做出改變,覺得自己已經錯過做改變的人生時機了。我總能用各種理由打消自己再次嘗試當工程師的念頭,例如:「我不行的啦!以前結構學修得那麼爛。」「我還是比較適合這種能夠結合我寫作能力、軟實力的工作吧!」「工程師要一直加班,我這個工作比較輕鬆。」等等等... 但我還是想著,會不會有一天我還是可以回到工程師這條路?心中永遠掛著一個 what if... 時間過著過著,然後我就懷孕了。 2018年工讀生給我的當頭棒喝 在我請產假的期間,是一位化工系的工讀生替補我的...

花九個月,靠自學轉行軟體工程師 -- 我所用的網路資源

by Vanessa Wang       歡迎支持我的臉書專頁:【 工程師作家的轉行人生 】 因為身邊有許多半路出家的軟體工程師,包含我老公,我一直抱持著或許某天我也要轉行當軟體工程師的想法。但我到了成為媽媽、小孩快一歲的時候,我才開始自學寫程式。 從 2018年底開始,我花了九個月的時間自學寫程式,並於 2019年七月成功轉行、找到了在加州矽谷全職軟體工程師(front-end web development)的工作。我沒有參加 bootcamp,就是在網路上找資源、自修。我是台大土木工程碩士畢業,後來到美國讀創意寫作碩士。成為軟體工程師之前,我沒有在職場上當過工程師,以前主要的工作以當 technical writer 寫技術文件為主。( 更多關於我轉職的動機、轉職前的履歷 ) 這篇想整理一下我自學期間用過的教材、工具,但這些都僅供參考,畢竟每個人的狀況、目標都不一樣。我始終相信「盡信書不如無書」。我這九個月中學到最重要的一件事就是凡事要有自己的想法、相信自己。像我這樣的文章網路上有很多,每個人用的方法都不太一樣。參考別人走過的道路很好,但更重要的是規劃最適合自己的一條路,然後自信地走下去。 以下就是轉行的路上,對我最有用的網路資源、工具: 一篇 Medium 上的文章 by Andrei Neagoie  這篇文章叫做  Learn to code in less than 5 months, get hired, and have fun along the way 這是我還在當 technical writer 時,某天上班無聊隨便 google 找到的。那時候還不太確定自己要不要轉行軟體工程,所以常常在網路上參考他人的經驗。我不時地都會回來看這篇文章,這篇文章可以說是貫徹我自學期間的一個中心思想。我很欣賞他的理念,尤其是以下這段話: “I spent the first month avoiding any tutorials or books. Instead, I spent this month looking at the best way for me to learn and get hired. I studied other peo...

想學寫程式的我,是否太笨了?(探討先天條件 v.s. 後天努力)

by Vanessa Wang    歡迎支持我的臉書專頁:【 工程師作家的轉行人生 】 學寫程式以來,我最常 google 的問題不是如何運用資料庫結構,也不是哪個程式語言有什麼樣的特性。我最常查詢的問題是 “Am I too stupid to learn how to code?” (以我的智商,可以學得起來怎麼寫程式嗎?) 寫程式所要運用的邏輯思考方式,常讓我感到很挫折,因為對我而言,要以電腦、機器的角度思考問題非常不直覺。舉個例子來說,假如今天有兩個單字: flower 與 flyer,你問我它們的差別在哪裡,我馬上可以跟你說 fl 一樣、最後的 er 也一樣,只有中間的字母 “ow” 跟 “y” 不同。但我為什麼可以這麼快看出這個差別?當我要寫程式命令電腦做和我一樣的事情,去判別兩個英文單字之間的差別時,我發現人腦一秒鐘可以完成的事情,要把它分解成許多易懂的邏輯步驟說明給機器聽,是多麼奇怪的事。 每當遇到這種挫折,我不禁會想到我從小到大的數理能力,到底夠不夠用?我不是那種看到數學就害怕的人,但距離數理資優班蠻遙遠的。這時候我就會轉頭問我那位靠自學成為軟體工程師的老公,「你覺得是不是要很聰明的人,才有辦法學會怎麼寫程式?」 我的老公是一個很自律、很努力的人,因此他千遍一律的答案都是「不用。就是要多練習而已。」 但我還是難以被說服。在我的觀念裡,一個人的天資是非常重要的,而我明白我的天資落在哪裡。我從小就很喜歡報考各種智力測驗,因此我非常清楚我不是天才。 我們這輩子能做什麼樣的事情,是否天生就注定好了?像「美麗新世界」那本科幻小說描述的一樣,是否只有基因等級 A 的人才配做最高級的工作、基因等級 B的人做次重要的工作、至於基因等級落在 F的人只能做最低階的工作? 第一次認識到「固定型思維」與 「成長型思維」 這兩個名詞,是在 Angela Duckworth 的書 【 恆毅力 】( Grit ) 裡頭。簡單而言,「固定型思維」主張人的天份是與生俱來、無法改變的:你天生有音樂細胞就是有音樂細胞,沒有的話最好從一開始就別浪費時間碰樂器。「成長型思維」主張的恰恰相反。成長型思維的世界裡,不但勤能補拙,而且勤奮還能讓一個人從本質上變得「沒那麼笨拙」。 認識「固定型思維」與 「成長型思維」的差別...

塑造你想要的人生--談判的藝術

在我成長的過程中,我媽媽實行的是權威式教育。她說什麼就是什麼,我不太敢去挑戰她訂定的規則,只會默默地心裡不開心。我人生的第一次「談判」,是我讀碩士的時候,因為我終於受不了了,覺得我都幾歲了怎麼還有門禁這種東西?但即使那時候的我已經二十幾歲了,我還是不敢直接跟我媽提出我的訴求,而是跟我爸哭訴,讓他去說服我媽。隔天我爸回來跟我報告結果。「我跟妳媽說好了,從此以後妳沒有門禁了,條件是妳十一點前要打電話回家。」 那時的我不太敢相信我的耳朵。真的假的?就這麼簡單?要是我早點說出我的心聲不就好了嘛? 這世界上有很多人跟我一樣,對於「談判」這件事情很害怕。我寧可很不開心地十一點前就回到家,也不願意跟我媽進行那必然很痛苦的對話,因為我媽很兇,因為我想到那個談話的局面就胃痛。同樣地,跟你的上司或者同事談判也可能是一件可怕的事情;或許你加班加地很不開心、對於薪水也很不滿意,但怎麼辦呢?要做出改變的話必然得跟老闆進行一對一談話;想到那大眼瞪小眼尷尬的場面,還是算了吧!反正就算提出自己不想加班或想加薪的請求也不一定有結果;反正再加幾個禮拜的班,也許就有新人出現了。何必把場面搞得那麼僵呢? 華人很愛說「以和為貴」,更是難把自己心中真正想的說出來,總怕把場面弄得難看。你想要什麼?你不想要什麼?不管是拒絕別人,或者對他人明確地說出自己要什麼,都不是件容易的事情;久而久之,自己都忘掉了自己到底要什麼。 但學會與人談判、溝通,進行這類「尷尬」的對話,是擁有快樂人生重要的因素。過去這一整個禮拜我過得很不開心,原因是我接了一個客戶的案子幫她做網頁,而我為這個案子感到相當煩惱。我們談好了一個價格以及我要完成的項目,但開工以後我才發現工程比我想像地大多了。每天我一邊做網頁就一邊嘆氣,想說要做到我們當初談好的程度的話,到底要做多少個小時呀?一開始我試著說服自己:「反正也是練習的機會啦!」「做完就不要再接這種案子就對了!」「以後一定要按工時計算,不要先談好價錢」,等等等。 但慢慢地我發現,陷在這個窘境我實在是太不甘心了-- 痛苦的程度已經超出我對於跟客戶談判的恐懼了,所以我決定還是好好跟客戶聊一聊,明確地說出我能幫她做什麼、不能幫她做什麼。 談話前我很緊張,當然我也想了一大堆最壞的可能:萬一客戶不能接受我的說法,這會不會影響我的聲譽,造成以後沒人要跟我合作?會不會談判破裂場面很難...

自學轉行軟體工程師到底有多難?

by Vanessa Wang    歡迎支持我的臉書專頁:【 工程師作家的轉行人生 】 很多人知道我想要轉行寫程式之後,都想知道這是一個怎麼樣的過程。畢竟日常生活中(尤其在矽谷)實在太常聽到靠著自學或者上三個月的 coding bootcamp 轉行成功的案例了。但在這個網路時代,成功的故事很容易被放大討論,卻鮮少聽到那些失敗的案例。今天我以一個在七個月以前開始全職自學寫程式(在家上線上課程)、四個月前開始找工作(而還沒有找到理想職缺)的人的角度分享我不怎麼順利的歷程,做一個平衡報導。 Q:真的有人上三個月的速成班就可以成為軟體工程師? A:是的,真的有。 很多人會說這怎麼可能?那大學讀四年都讀假的嘛?但我身邊就有好幾個這樣的人,有些甚至連大學學歷都沒有就成功進 Google等大公司當軟體工程師;只能說人外有人天外有天,你覺得不可能的事情換到這個時代、矽谷這個環境、這邊聚集的菁英和資源,就是有這樣的事情。但這就像當年全世界的人來舊金山淘金一樣,有些人一夕暴富,卻有更多人空手而回。  Q:自學寫程式難嗎?誰都可以嘛? A:這是我當初決定全職自學寫程式時最常 google的問題。我甚至常常搜尋 Am I too stupid to code? 在我心目中寫程式一直是一件很困難的事情。遙想高中、大學時代學C++,我就因為覺得太難理解 code 而放棄學習一個我覺得很有趣的科目。 現在有點不同了。Youtube 的發達、網路社群的發達,使得學習任何東西都沒有那麼難。再怎麼愚蠢或困難的問題,google一下就會有答案。所以是的,我相信任何人都能夠自學寫程式。但學寫程式就像學日文一樣;任何人都可以學,問題在於你可以學到多好的程度?可以好到拿來當吃飯的工具嘛?也許你只會幾句日文,足以讓你在日式餐廳打工;也許你會日常口語,可以當個旅遊團領隊;但如果你想當日文老師,那你就需要會複雜的文法甚至日本文學。自學寫程式不難,但找軟體相關的工作難易不均,只能自己定義目標了。  Q:找到軟體工程師職位難嗎? A:難。至少我覺得是很難的。 現在公司面試軟體工程師的型態大概有兩種:大公司考 data structures & algorithm,小公司考你實際作出一個 app 的能力。市面上的 coding...