我叫 Chloe 大學時就讀東吳大學英文系,一個原本致力於英文並決定未來10年人生到各國漂泊的女子。
一些關於我的背景
我從小喜歡玩益智遊戲,喜歡思考,常常玩七巧板、跳棋、逃脫遊戲等各種益智遊戲。挑戰各種難度,越難越能激起我的鬥志。但國高中開始不喜歡數學甚至有些害怕,所以開始把理工科系設為拒絕往來戶,也決定大學不選理工科系。
因為很喜歡語言,也一直相信英文是開啟世界的大門。大學唸英文系並副修德文。唸了兩年多後,決定到歐洲當背包客三個月。回來後沒多久,拿到了去愛爾蘭打工度假的機會,對我來說是個大好的機會,計畫遠遠趕不上變化,這更是幫助我學英文更快的機會。Why not?
在愛爾蘭時找到了大型遊戲公司並擔任 LQA。也是在這年,人生開始有了轉變。國外期間,有個朋友是資深工程師,在他的引領下,帶領著我進入了寫程式的世界。思考了一下,學程式語言我不一定會喜歡還要花很長的時間,光是用想的頭就暈了。
計算了一下,如果我能學會程式語言…語言+技能+世界各地都需要工程師+很有挑戰性,不論怎麼想都很划算,就這樣踏上了這條路。
從 0 開始
剛開始從大家說好入門的 Python 進入了自學程式的世界,飛到英國參加 Django Girl 的 Workshop, 上 CodeAcademy 的免費學習課程, 買了Python For Kids 這本書做為入門並在 CodeSignal 和 CodeWar上用 Python 來訓練邏輯思考和 Algorithm。
我一直都相信學習是人人都應有的權利,不該因為貧富而被剝奪了學習的權利和資源甚至是機會。
每天的生活:下班後或休假的時間,不是在家就是在咖啡廳或圖書館學習寫程式。一個禮拜至少五天,至少花 3 小時,假日就是8小時以上的學習。在解題的過程中,起初覺得挫折感很重也很抗拒。一天花了3, 4小時只解一題,甚至一題都解不出來。不懂這些學起來到底會在哪裡有幫助?只知道這些未來有天會回饋到身上。雖然有時候甚至會邊解邊哭,但心裡不想就麽輕易地放棄!
如果連這麼點小事就放棄的話,未來又要怎麼去面對更大的挑戰?
我給自己下了戰帖:每天至少解一題,解了 100 題,我還是不喜歡的話,那就退出,代表我真的不適合。至少可以及早改變。
最後解了 100 多題,從剛開始的挫折不順,到後面越解越順,越來越上手。也建立起了信心。不過還是很迷惘沒有頭緒只有挫折,不懂 Python 到底拿來做什麼用的?
之後到處挖掘,覺得網頁前端是視覺上而且我可以知道我到底在做些什麼,馬上獲得成就感和建立信心。
便開始投入網頁前端,買了 HTML, CSS, JavaScript 的書和線上免費學習資源Udacity 和 FCC 的課程。也很幸運地拿到 Udacity Frontend Nanodegree Scholorship。(延伸閱讀:我從 Udacity Nanodegree 獎學金課程畢業了!)學會了用 Git 管理專案,也做了些小玩意兒來熟悉技術。並積極參加各種相關讀書會和講座或是黑客松。
2017 年底回台灣後,剛好看到了 AppWorks School 2018 年開班的招生資訊,分別 IOS 和 Android #1 的課程便馬上報名。(延伸閱讀:AppWorks School Android#1 人生加速器)二話不說馬上選了 Android#1,因為是用 JAVA 語言,也正是所有 CS 科系的學生都必學的 OOP 語言。(這正是加速的好機會呀!)
經過了 16 週扎實的學習,每天超過 10 小時的投入,最後順利的從 School 畢業,也在 School 的媒合下,經過了面試,正式成為了 Android Developer !
如果你也想成為工程師,沒有 CS 背景,也不是理工科背景,以下根據我個人的經驗做的一些學習總結,希望能幫助到你和妳:
1. 知道為什麼要這麼做,擁有強烈的動機
學習程式語言說難不難,說簡單也不是太簡單,但只要願意花時間和精力投入,最後一定會回饋到自己身上。但這個過程如果沒有很強烈的動機去支持自己走下去的話,則會很容易放棄。這個動機可以是現實的也可以是感性的,薪水、 職位、聽起來很酷等等,這些都可以。只要它能夠在你挫折時,一直支持著你,他就是很好的動機。
2. 撕掉標籤,不要管別人的言語,別再被綁架了
身邊朋友很常會問關於自學程式這件事情,或是對於我決定休學出國這條路感到驚訝或覺得勇敢。在台灣社會上,跟大家選不一樣的路就很奇怪或是覺得很勇敢。甚至質疑的聲浪也會湧現。
在歐洲的期間,遇到很多人大學時會給自己一年 Gap year。甚至也不是高中畢業馬上就去去念大學,或是大學念一半覺得不適合就休學,工作幾年後,覺得哪些想在學更深,再上大學的也不少。
那麼學程式呢?為什麼學程式或是成為工程師只有本科系的學生?
在 Udacity Schlorship 的社群中,有來自歐洲、中東和埃及等國家的人,很多人都不是 CS 背景,有些也 3、40 歲或是有家庭小孩。大部分的人都是自學,確實有些是 CS 背景(在此不列入討論)他們也是在百忙之中,抽空出來努力付出學習,成為工程師的很多。
以上的例子是想跟大家說,與其在意別人的眼光和評論,不如更傾聽自己的聲音,知道自己想要什麼。性別、年齡、背景這些標籤和給自己的藉口通通撕掉吧!別因為標籤而限制了自己的潛力
3. 選定一個語言
前端、後端、Android、IOS 各種名詞。起出看了霧煞煞,花了一段時間摸索才決定要寫的語言和開發平台。網路上很多的免費學習資源,對於新手很適合,有興趣的都摸摸看,選好了之後就致力於在那上面。
4. 大量投入時間和精力
每天一定要花點時間在寫程式方面,尤其剛開始的時候。看一兩次看不懂,那就再多看個幾次,慢慢地熟悉。我從 codeAcademy、FCC、和各種書籍,重複的東西來來回回至少四、五次,一直到實際應用才漸漸地領會概念。
每個禮拜至少投入 20 個小時以上( PART-TIME )。如果有 Full-time 的話,最好每天 8 小時以上。中間可以試做小玩意兒來練習技術或是刷刷簡單的題目。
最重要的是每天一定要碰一些,就像是每天講中文一樣,每天碰很快對語法就熟悉了。
5. 找到好的 Mentor
有個 Mentor 就像是有個大師帶你飛。很多時候不論是語法或是在解題或是開發的過程中,會卡住。需要一個好的Mentor,有問題能夠找他討論,如此一來在學習中,除了問題很快能夠解決之外,印象也會更加深刻。如果沒有也沒關係,也可以善用社群的力量找到答案。
如果卡在一個問題已經花了 3 小時以上了,最好還是趕快找人討論。我剛開始如無頭蒼蠅般花了 4 小時以上,硬是希望自己可以解決,後來發現其實這樣不好。由其對於初學者來說,很多相關知識不足,下關鍵字也不準確,如果卡了 3、4 個小時了,再不找人討論的話,容易一直卡住,信心會相對地降低,多次下來容易失去信心,便會感到挫折。
6.善用 Open-source、線上學習資源
現在網路上免費的學習資源真的太多太多了,我們這個世代很幸福。為什麼一定要去外面花大把大把的鈔票上課呢?並不是有老師在台上講一講,聽一聽就會寫 Code了。
對於工程師來說,更重要的是具備解決問題的能力和自學的能力。 網路上的學習資源很多,很多也都是 Google 開出來或是各種很棒的教材。跟著上面學並作專案和大量的實作練習。好好地善用和規劃很足夠了
很多也有 APP 或是程式的小遊戲以訓練邏輯思考。
7. 參加技術社群的講座、讀書會、WorkShop、黑客松
現在很多技術社群都會辦讀書會、講座或是工作坊。積極地參加,不懂沒關係,多聽幾次會有印象,有天碰到時就會豁然開朗。參加聚會也會遇到很多厲害的高手
8. 毅力
最後想講的一點是,就跟運動一樣要持之以恆和毅力呀!
以上,希望這些能夠幫助也想成為工程師的人。
歡迎與我交流交流 :) Happy Coding