Wednesday, June 05, 2019

【終身學習】我讀文科,我能學得會寫程式嗎?

對寫程式有興趣,但是我讀文科,我能學得會寫程式嗎?

讀文科學不學得會寫程式,我想是網路上討論到爛掉的主題。
我自己也曾搜尋過N次,看過N篇討論文。
最後,我自己去嘗試,答案是,會,絕對學得會

先說說自己的背景。
我大學學日文,研究所念第二語言習得,短短的念了一年博士也是語言習得,沒有一個階段是與理工有關。不過我人生第一份工作卻是網站開發的工程師。世界上其實沒有學不會的事,端看投如多少時間和精力並保持熱情,我總是這麼認為。

學程式有一件非常重要的事:英文
很多人說,有中文教學或資源可以看啊!對,但我不是這麼建議,畢竟英文還是最多資源的,很多時候不用英文搜尋,很難找到解決方式。甚至會覺得明明寫的是中文,卻看不懂中文在寫什麼XD
所以如果英文不好,那必須多加強。
我自己沒有英文上的困擾,所以這邊就先跳過這部分了。

1.接觸
在日本讀碩士期間,接觸到了用電腦學習英文這類的研究,也開始了我對寫程式這一部分有了興趣。在這時候其實很單純,就是想做一個和別人研究一樣,能讓語言學習者在網頁閱讀文章並且藉由閱讀學習日文單字。於是開始上網查各種程式語言的資料,從網上資料學習到非常非常非常基礎的入門知識

2.開始進入程式 - HTML, CSS, Wordpress
隨著自己的研究結束,我開始去好好的學HTML、CSS,並查各種資料(文末附上資源)。
學習期間有不知道的或看不懂的code一定要google查詢,而不是只是複製貼上。
我剛好身邊有朋友是軟體工程師,所以也有機會問。如果身邊沒有也不要緊,網路上有非常多學習程式的Group可以加入和大家一起討論。
Coding確實是很抽象的學問,真的不簡單。
所以我覺得文科的人從前端下手很好,容易理解。

另外,有一架網站資源「Wordpress」也是不錯的工具,其所使用的後端語言主要是PHP。PHP對初學的人來說看不太懂。不過頁面上的效果和美編都可以自己用HTML, CSS在這裡寫寫看!而且如果想要快速架一個Portfolio網站,我覺得Wordpress也是不錯的工具。網路上也有很多免費教學資源。

3.學習更多並真的寫出完整可用的Project - Ruby on Rails, Javascript, MySQL
在博士第一年,因為自己種種因素,所以我決定放棄phD,轉行工程師工作。
這是一個很大的決定,畢竟在語言教學這條路上放了很多時間,而且自己都屬於自學,這種程度真的有辦法找工作嗎?我想答案是No

於是找了一間「輔助就業」取向的機構「http://infratop.jp/」開始半年的學習。雖然是「教程式」,可是沒有老師站在講台上教課,機構給教程自己學,但會有工程師看Code給Feedback。我覺得尋找機構協助可以說是成功了一半,也會讓自己安心不少,不會再像無頭蒼蠅。當然自己也必須多充實額外知識和技能,而且必須堅持到最後(別看短短半年,同期之中將近有一半的人中途放棄)。

這個階段,我投入蠻大量的時間在學習各種寫程式的觀念、邏輯,甚至有自己在網路上看一些演算法(有看沒有懂XD)。學的語言有Ruby on Rails, HTML, CSS, Javascript,MySQL。寫程式的時間一整天也多達12~14小時。這過程之中雖然辛苦(現在想想真的辛苦,每天都有一大堆新知識需要消化),但其實是可以感受到自己有在進步,蠻有成就的。

機構也給了不少幫助,會有工程師看我的Code,給予我Feedback,像是Code如何更乾淨,避免重複。還有為什麼我的Code不work,怎麼Debug。還有到公司工作要怎麼用github,還有和別的工程師一起工作寫一個project等等。

學習的過程會用到大量的搜尋,我自己也買了不少書看,文末會一併寫。總之,重點就是必須堅持,並保持對知識的渴望。配合機構給的輔助,確實完成機構給的task,有問題立即詢問,大量練習,我覺得要在日本找一份工作其實不是難事。

4.找到工作,開始工作
在機構協助之下順利找到了工作,主要是寫Web,不過地獄這時候才開始。
起初開始工作的時候,完全不知道在幹嘛,難度瞬間拉高非常多。明明公司也是寫Rails,怎麼跟自己學得差這麼多。而且我當初工作的公司前端是寫ReactJS,沒接觸過也得學。Deploy到AWS怎麼做完全不知道,因此也得學。
這時候就會知道儘管找到了工作,但根本離工程師還很遙遠。所以下班之後還得自己再學習。那要如何學習?

公司有資深的工程師,有看不懂,或不知道怎麼寫得都可以問,他們都很願意教,就怕不願意學習。我公司的工程師都會寫一個Demo給我參考,我就開始模仿,不懂就請他解釋給我聽,然後我學著寫類似的功能,搭配Google查詢。再來就是,下班後我會把當天工作寫的東西回家再看一次,有不懂要Google查,一定要弄到自己懂自己在寫什麼為止。

大約工作兩個月左右,其實慢慢可以上手,也比較知道在幹嘛,Code要怎麼寫。然後在週末我會開始想想自己生活上有什麼是Code可以幫我解決,或者可以用工作學到的技能寫自己想做的Project。甚至在Git上找有興趣的Project也是不錯的學習方式。定期可以看一些科技相關文章,想是有什麼科技公司有新的產品或什麼程式語言有新的消息都不錯。甚至如果簽證和時間都允許,可以上freelance網站接一些符合自己skill的case來增強自己能力,也能增加收入(不過這個選項會超累,建議工作半年之後再開始)。科技這個領域很廣泛,就算到現在我還是覺得很不足,畢竟不是本科系畢業,不足的地方太多,只能不停學習

總結,確實文科生不如資工或電機學生很熟悉程式的邏輯或演算法等等。這過程我不會說很簡單,因為真的一點都不容易,但並非不可能。我身邊甚至還有人是念泰文,然後經過一番波折,最後進入了美國Amazon當後端工程師的。如果你是文科生,想和我們一樣搭上這波潮流學寫程式,別擔心,快開始計劃並動身,有一天也會和我們一樣!

網路資源:
w3school
HTML and CSS: Design and Build Websites
JavaScript and JQuery: Interactive Front-End Web Development
為你自己學Ruby on Rails 
Agile Web Development with Rails 5.1
HeadFirst系列書籍

No comments:

Post a Comment