Code makes the world a better place

Revision Control

It’s a late night, and the man is still at the office, being in deep water over the crashed program. Everything goes wrong. He doesn’t even know why the code cannot run as usual. Unfortunately, he has forgotten what he had changed, regardless of the changes, which must be of paramount importance to the incident.

Continue reading

台大觀察與心得(八):大四上

在台大的日子已經進入第四年,不知不覺留在校園的日子只剩一年,讓人十分的不捨。從高中進入台大,到快要從台大畢業,這段日子我的變化很大,像是從一個物理學家變成軟體工程師,喜歡的運動從游泳變打網球。經歷了很多事情,多到我自己都常常忘記原來我曾經歷過,像是集思論壇、綠領農學市集、好幾家公司實習、參加的各種演講等等。
Continue reading

軟體工程師必修的三門課

何謂工程師?為什麼所有軟體工程師都該學資料結構與演算法、計算機架構、作業系統?


大資工時代,所有人都一窩蜂轉行、跨行進資工領域,尤其是這陣子人工智慧話題被炒起來,好像人人都該懂機器學習、深度學習。市面上產品好像都該有個「智慧」當作前墜,智慧手環、智慧眼鏡、智慧監控系統等等。而幾年前則是雲端技術很紅,所有東西都該加個雲。區塊鏈也被當作明日之星,各種公有鏈、私有鏈的新創如雨後春筍。再加上網頁前端、後端、手機 APP等人才需求本來就大,可以說資工領域的市場需求已經被捧到了極高點。

因為市場需求大,前景看好,所以很多人半路出家改當軟體工程師,這邊廣義包含各種程式開發的人才。國民教育都把資訊科學列為必修了,代表已經是全民皆碼農的時代。連非工程職位的業務、PM、顧問好像都必須會寫個 Python 才夠生存。

Continue reading

半路出家申請國內資工研究所

申請交大資工丙正取、台大網媒備取的歷程與省思


終於都放榜了,所以可以來寫心得。如副標題,推甄上108學年度交大資工所丙組,然後台大網媒所只有備取 10。

我承認標題與某專頁有點似曾相似(半路出家的軟體工程師:咦?),內容也有點老生常談,不過還是不寫不快,所以決定來分享一下整個過程。

Continue reading

30 天 Javascript 從入門到進階:陣列

陣列

前一張在介紹迴圈時,提到一些例子,例如我有一百件褲子,要一件一件檢查。或是老師巡邏學校有好幾個班級。我們知道可以用迴圈的方式,一個一個把「東西」數過一遍,也就是遍歷一次,但迴圈是「方法」,我們必須準備好東西,才能使用方法。

這邊的東西就是指一百件褲子或是 20 個班級。我們需要用一個容器來儲存這些東西,在 JS 中,這個容器可以是陣列(Array),我們可以把一百件褲子放入陣列,那他就會叫做褲子陣列。

事實上可以存一堆物品的容器可以是其他東西,但我們晚點再介紹。這個章節中我們要介紹何謂陣列。

Continue reading

30 天 Javascript 從入門到進階:條件判斷

條件判斷

接下來介紹控制程式的方式之一,也就是條件判斷。

條件判斷顧名思義就是針對不同的條件來判斷要做出怎樣的結果。舉例來說,現在要採收水果,但我們只要取下已經成熟的水果,還沒熟的我們要讓他繼續成熟。

或是我們有更多條件,例如大於 500 公克的蘋果放到 A 籃子,介於 200 到 500 公克的蘋果放到 B 籃子,小於 200 公克的蘋果不要摘下來。

現實生活中我們都在做各種判斷,而我們當然可以把這種判斷的工作交給電腦來做,接著讓我們來了解電腦怎樣做判斷的。

Continue reading

30 天 Javascript 從入門到進階:檔案讀寫

檔案讀寫

電腦科學中資料讀寫包含存取(input, I)和輸出(output, O),這也是為什麼常常看到 I/O 這個術語的原因。在電腦科學術語中中,廣義的 I/O 包含直接對檔案(file)、緩存(Buffer)以及數據流(stream)做操作。檔案就是已經存放在儲存裝置中的文件,緩存是還在記憶體中的資料,數據流則是一串序列化的抽象資料,這再晚點會深入介紹。

資料傳輸在寫程式的時候,不管是你想要從文件中讀取資料,或是資料從網路上傳輸,亦或是資料在程式與程式之間傳送,都常常會用到。事實上我們寫程式通常也就是為了處理資料,如果沒有資料的話,還真的不曉得程式能做什麼事情!(有啦,算算質數之類的 XD)

本篇會將 NodeJS 上會用到數據型態作介紹,當作先備知識。接著只會著重在檔案讀寫講解範例,其餘像是數據流的操作、緩存的處理,待日後的進階文章才會詳細介紹。

Continue reading

30 天 Javascript 從入門到進階:函式

函式

我們知道程式碼可以幫我們做很多事情,例如睡不著要數羊的時候,就讓程式跑個迴圈,一下就幾百幾千萬隻羊了。但是目前為止,所以工作都是被放在一起的,並且只能被執行一次。也就是說,假設我有三件工作,寫成程式碼可能會長這樣:

Continue reading

30 天 Javascript 從入門到進階:迴圈

迴圈

在生活中,我們常常會有有做一樣的事情的時候,例如一張一張比對發票、一行一行檢查有沒有錯字。這個要重複做的動作,在程式語言中就可以用迴圈(loop)辦到。

Continue reading

30 天 Javascript 從入門到進階:物件

物件

這個世界由各種不同的東西(Things)組成,我們身處的宇宙、太陽系、每天繞地球的月球,山海與花花草草。

有一部電影〈The Theory of Everything〉描述一位已逝的偉大物理學家——霍金,年輕時候的愛情故事。霍金一生為追求宇宙的真理而努力,物理學家堅信世界應該是由一個可以統合並解釋所有物理現象的理論所支配,亦即萬物的理論。

在 JS 的世界中,萬物的理論就是 object 這個物件型別,這個物件型別包含各種形形色色的玩意,讓我娓娓道來。

Continue reading