Sign in

Photo by Jonathan Borba on Unsplash

會想寫這篇有兩個原因,第一個是看到 Lin Simon 寫的關於那些影響我人生的重要轉捩點,第二個是今年我的 Medium 好像沒發什麼文章,總覺得應該來寫些東西,找回一下手感。

這篇想寫的是一些自身經歷,而且是印象深刻的那種。有沒有影響人生我不知道,但能在目前活過的人生中特別被記起,一定是有著特別的原因。大家就當作在看故事吧,有些其實我以前在其他文章也有寫過了,但沒關係,看過的話就再看一次吧。

底下的五段回憶以時間排序,ORDER BY created_at ASC。

創造的喜悅

在以前的文章裡面我應該有提過我第一次寫程式是在小學六年級。在開始學習以前,就像許多新手會做的一樣,上了論壇(程式設計俱樂部)發文問說應該怎麼開始,綜合一些建議之後,得出的結論是「去書店翻翻看,看得順眼就帶回家」。

去書店以後開始找起 …


Photo by Jim Wilson on Unsplash

這兩天在看臉書的動態回顧時,突然看到了五年前(2016 年 9 月 9 日)發的一篇網誌(可惜這功能現在已經死掉了),是我確定拿到新加坡的 offer 以後寫的,想說來當個文章小偷,偷自己臉書文章放到 Medium 好了。

2014 年 3 月,原本刻意把課表排成只剩兩天,決定其他時間都去實習的我,毅然決然的決定休學。這一休,我以為自己再也不會回去學校了。

2016 年 3 月,在為期兩年的休學時光中,居然讓我找到以前從沒想過的東西:「復學的理由」。

2016 年 7 月,辭掉了工作,終於又可以像學生一樣放個暑假,等待著 9/11 開學的來臨。

可是,機會總是悄悄地來
無聲無息的
以一種
你從未想過的形式

「你好,這裡是 Garena Singapore,你高中的時候有參加過 TOI 對吧?我們最近在 …


Photo by Clem Onojeghuo on Unsplash

在這個網路已經發展許久的時代,最不缺的就是學習資源,但或許有些人就這樣在知識汪洋裡迷了航,不知道該往哪去,也不知道終點在哪——因為它可能根本沒有終點。

在工程師的討論區中常常看到有人發問,問著自己下一步該往哪去,是要學 A 呢,還是學最近好像很熱門的 B,或是回去學習那些重要的基礎 C。身為一個前端工程師更是如此,時不時就有新的框架或是函式庫出現,讓有些人覺得自己學不動了,怎麼這麼多東西要學。

曾經我也是這樣的。

每天早上看著 Hacker news,關注國外科技業的第一手情報,看看有哪些新的事件;我也看掘金的前端版,看著一篇篇所謂的「乾貨」,從中學習我不知道的 JavaScript 技巧以及前端的知識。儘管我每天看,但總覺得自己好像沒有學完的一天,每天都有新的知識可以汲取,可以學習。

在這樣的知識汪洋裡,會有「學不完」的知識焦慮是很正常的,那該怎麼辦?

我選擇放棄,對,就是放棄。

我開始不去主動關心那些知識來源,只透過 Facebook 或推特之類的社群網站主動追蹤,讓他們推播給我。而那些乾貨技術文章,是真的寫得不錯,但問題是,我真的需要這些知識嗎?

我記得六七年前 AngularJS 正夯的時候,我跟朋友說我要去學 AngularJS,但我沒有。React 在台灣開始紅起來的時候,我因為工作的關係去學了,後來也應用在工作上。到後來 Vue 在台灣越來越多人採用,我也說我要去學 Vue,體驗一下不同框架,但我後來也沒有真的去學,也沒怎麼樣。

少了那些「前端工程師面試必學知識」、「帶你看看 React 實作原理」、「你不知道的 JavaScript」以後,真的對我有影響嗎?我真的就因此什麼都不會了嗎?顯然不是。

知識本來就是無窮無盡的,新的技術會一直出現,因此知識本來就是個沒有盡頭的汪洋,你再怎麼努力都脫離不了。在這樣的前提下,我認為重要的事情只有一件,那就是找到自己的方向。

原本你不知道東西南北要往哪走,於是就四處晃晃,這邊去一下,那邊也去一下。確立方向以後,假設要走的是北方,那東南西方的東西你就幾乎不會碰到了,但沒關係,因為代表那些沒有這麼重要。

我不會 Angular,我不會 Vue,我不會 Svelte,我不會 WebAssembly,我不會實作 Promise,我沒辦法講出 React 底層到底是怎麼運作的,我也不懂那些奇形怪狀的 JavaScript 考題。

但我在工作上可以用我熟悉的 React 把功能完成,修 bug 也可以找到根本原因並且修掉,寫 code 時可以考慮到擴充性但不要過早最佳化,實作時會想到一些 edge case。

我不懂演算法跟資料結構,但如果有天我想面試 FAANG,我會去學。我不懂 React 底層在幹嘛,但如果有天我想面試會考這個的公司,我會去學。我不懂 JavaScript 的所有奇怪部分,但如果有天我想成為 JavaScript 大師,我也會去學。

知識焦慮產生的最大原因之一,我覺得是因為沒有方向,沒有目的。因為沒有目的,所以就像無頭蒼蠅一樣到處亂撞,什麼都很重要於是什麼都學,最後連自己學了什麼都不知道。

如果你覺得自己找不到方向,我有幾個建議可以聽聽。假設你已經在工作了,研究的方向就先放在工作上會用到的工具,例如說工作在用 Next.js,就去研究這套在幹嘛,怎麼使用。

如果工作上的你都會了,或者是還在找工作的話,那就去看徵才網站,找一間你想去的夢幻公司,開始研究他們用的那些工具跟框架怎麼使用,先把這個當作是你的方向,至少可以幫你縮減學習的範圍。

有些人可能會想說:「怎麼上面都只叫大家學工具,不是都說基礎跟原理比較重要嗎?」,我認為核心知識的原理跟應用是相輔相成的,舉例來說像是 design pattern,新手常犯的錯就是學了之後想要趕快應用在工作上,結果就過度工程化了,用在根本不需要它的地方。

但我認識這東西是從實作開始,我寫 Android 的時候就看見了 Builder pattern 的應用,先看過之後再去學 design pattern,我覺得比較容易融會貫通,知道這些可以用在哪裡。

所以從學習工具跟框架開始,我認為也是不錯的一條路。況且從這些開始,並不代表就真的不去碰觸原理跟核心知識,這是一個順序的問題。先從應用開始,對於原理感到好奇之後再去看原理,這樣的順序有時候比顛倒過來好。

舉例來說,你想知道 React 原理你必須先寫過 React,不然看起來沒感覺。你想知道 Promise 怎麼實作,必須要先會用,不然你也不知道為什麼要這樣做。

學習本來就是永無止盡的,因此「學不完」是很正常的一件事,如果因為學不完而困擾,是一種庸人自擾。學不完是肯定的,因此重點不是學不學得完,而是目標跟順序,哪些是重要的?哪些是應該先學的?

有了方向以後,才能擺脫這種知識焦慮,因為你會很清楚哪些知識現在不重要,就可以不去管它。我寫 React,我當然從 React 的知識開始研究,我不會因為我不懂 Angular 或是 Vue 而焦慮,因為那些對現在的我來說都沒這麼重要。

如果你發現自己困在知識汪洋裡,可以仔細想想,你需要的可能不是更多的資源或是更多的時間,因為那些都沒有幫助。你需要的是一個方向,一個讓你可以專注眼前目標,忽略其他雜訊的方向。


TechBridge 的 Logo

TechBridge Weekly 是一個專門分享技術相關文章的週刊,內容會包含幾個 curator 挑選的文章以及簡單的介紹,分享一些好文給大家。就像國外可能也有 JavaScript Weekly 那樣,只是我們的主題比較廣泛。

除了週刊之外,我們還有 TechBridge 技術共筆部落格,每一週都會有新的原創文章,也曾開放過讓大家都可以來投稿。

今天是 TechBridge 週刊第 300 期的出刊日,也是這個周刊正式劃下句點的時刻。在跟大家分享為什麼會停刊以及我個人的心得之前,我想先簡單記錄一下這六年來的故事。

起源

TechBridge 團隊自始至終都只有四個人,我、KD、Arvin 還有 Po Jen。而這四個之中的核心人物,非 KD 莫屬。

我已經忘記我是怎麼跟 KD 認識的,跑回去翻臉書 …


Photo by Hama Haki on Unsplash

今年四月份的時候,我們 Cymetrics 技術團隊在 Medium 上面開設了一個 publication,名為 Cymetrics Tech Blog,裡面放著我們團隊成員寫的技術文章。

而三個多月過後,我們正式從 Medium 遷出,轉移到了自己架的部落格上面。

為什麼做出這樣子的決定?就讓我從頭說起。

為什麼是 Medium?

對於一開始沒有想投入太多資源在 blog 上面,只是想做一點新嘗試的團隊來說,Medium 在當時是再好不過的選擇,優點有:

  1. SEO,Medium 的 SEO 比自己從頭開始架一個網站好
  2. 編輯文章容易,插入圖片也很容易
  3. 共同編輯容易,publication 讓每個人都可以用自己帳號發文
  4. 快速上手,只需要點幾個按鈕註冊個帳號,部落格就建好了
  5. 其他人都在用,像是 HahowCarousell 或是 Ne …


Photo by FLY:D on Unsplash

(原文發佈於 Cymetrics Tech Blog:為什麼忘記密碼時只能重設,不把舊密碼告訴我?

某天小明在整理他的我的最愛(到底誰的),發現了一個以前很常逛,但已經將近半年多沒去的一個論壇。小明想回去看看那邊變得怎麼樣了,於是點進去那個論壇,輸入了帳號密碼,得到了密碼錯誤的回覆。

嘗試了幾次之後,系統提示小明可以使用「忘記密碼」的功能,所以小明填了自己的 email 之後去信箱收信,發現系統傳來一個「重設密碼」的連結。雖然說最後小明成功利用重新設定的密碼登入,但有個問題讓他百思不得其解:

「奇怪欸,幹嘛要我重設密碼,為什麼不把舊的密碼寄給我就好?」

應該有許多人都跟小明一樣,有過類似的疑惑。把舊密碼寄給我不是很好嗎,幹嘛強迫我換密碼?

這一個看似簡單的問題,背後其實藏了許多資訊安全相關的概念,就讓 …


這篇簡單寫一下發表文章前我會設定的東西,大部分選項都藏在右上角那三個點裡面,點下去你會看到一堆可以設置的選項:

右上角三個點點下去

底下條列式來介紹一下我自己會使用的選項,沒用到的我就不介紹了:

  1. Add to publication:如果要發表在 publication 記得點這個,沒點的話就會發在個人帳號底下
  2. Share draft link:當你寫完文章還不想發表,想先給其他人看時就點這個,可以拿到草稿連結,需要登入才能觀看。文章發表後草稿連結跟正式連結會是一樣的,十分方便
  3. Change featured image:更改主題圖片,這會影響到在有 preview 功能的網站會看到哪張圖,例如說在 Facebook 分享時就會出現這邊設定的圖
  4. Change display title / subtitle:就更改標題跟副標題,沒改的話就是自動抓的,可以視情況調整
  5. Change tags:改標籤,沒設的話就是沒有,最多只能五個,可以視情況加一下,標籤支援中文(但比較少標籤)
  6. More settings:點下去會看到更多選項,但有部分會跟這邊重複

上面這幾個就圖片跟標題都可以調整,tag 看要不要加,然後草稿連結滿好用的。

更多選項點進去之後會看到滿多與這邊相同的功能,但我通常會設定的只有點進去以後最下方的 Advanced Settings 點開之後的選項:


Photo by Jakob Braun on Unsplash

(原文發佈於 Cymetrics Tech Blog:淺談 XSS 攻擊與防禦的各個環節

前言

談到 XSS(Cross-site scripting),許多人可能都只想到「就是網站上被攻擊者植入程式碼」,但若是仔細去想的話,會發現這之中其實還有很多環節都可以再深入探討。

而我所謂的這些「環節」,也可以理解成不同的「關卡」。

舉例來說,第一關當然就是盡可能防止自己的網站被 XSS 攻擊,不要讓攻擊者在網站中能夠植入程式碼。而「讓攻擊者在網站中植入程式碼」這件事,又可以往下再細分成不同地方的植入,例如說 HTML 的植入,或者是 HTML 元素屬性中的植入,又或是 JavaScript 程式碼中的植入,這些都有著不同的攻擊以及防禦方式。

而除了防止被植入程式碼以外,防守方應該還要進一步去想:「那如果真的不 …


Intigriti 是國外的一個 bug bounty 平台,每個月都會推出一個 XSS 挑戰,有大約一到兩週的時間可以去思考,目標是在特定網站上面執行 alert(document.domain) ,解出來之後把結果透過 Intigriti 平台回報,最後會隨機抽 3 個解掉的人得到他們自己商店的優惠券。

上個月的挑戰因為解出來的人不多,所以我有幸運抽到 50 歐元的優惠券,其實很划算,因為商店賣的東西其實都滿便宜的,我買了一件 t-shirt + 兩頂帽子再加國際運費,大概 45 歐元左右。

不過這種獎品就是靠運氣啦,還是解題好玩比較重要。

挑戰網址在這邊: https://challenge-0521.intigriti.io/

挑戰截圖

程式碼分析

解題的第一步就是分析一下它的程式碼,先了解一下這整個題目的運作 …


Photo by Ethan Brooke on Unsplash,圖文不符,附圖為用首爾當關鍵字搜尋的結果,純粹只是因為想去韓國了

現在是 2021-03-03,剛做完決定的一週後。雖然說要到五月才會正式轉職,但想說在這個時刻先把當下的心情寫下來,否則再等兩個月心得感想就都從海馬迴消失了。

從五月開始,我暫時不寫前端了,我要內轉去公司做資安的部門當資安研究員。

我是做完這個決定之後,才突然意識到這其實是職涯上的一個滿大的轉變。在前端的經歷其實對於這個新的領域來說幾乎完全不適用,我可能就是一張白紙,一張,還很菜的白紙。

如果我哪天想回去做前端怎麼辦?會不會到時候怎麼寫都忘記了,自斷前端職涯,到時候回去又要從頭再來?如果我資安做出興趣來了,可是沒辦法留在原公司要到新公司,那是不是整個經歷重算?資安菜雞的重啟人生。

但這些其實都是我做完決定之後才想到的事,是我跟新部門主管表達意願,談好之後的工作內容,再跟原主管以及大主管確認 …

Huli

重度拖延症患者,興趣是光想不做,有很多想做的事,卻一件都沒有執行。無聊的時候喜歡寫文章,發現自己好像有把事情講得比其他人清楚的能力。相信分享與交流可以讓世界更美好。Medium 文章列表請參考:https://aszx87410.github.io/blog/medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store