卡米哥

大家好,我是卡米哥,LINE 官方認證的 API 專家,LINE API Expert。目前在維護基於 Rails 的 LINE Bot 框架 Kamigo

身為一個軟體開發者,我一直以來都想知道我的價值到底在那裡。在我長期的觀察和思考,終於有了一個初步的答案,若站在老闆的角度來看,我的價值其實就是我寫下來的程式碼總共幫老闆賺了多少錢。

軟體開 …

--

--

給高中生和大學生們的建議

這是我 4 年前在 FB 寫的舊文,轉發到這裡

最近有個高中生粉絲來信問:「我對遊戲設計有興趣,想要做聊天機器人,想知道大學選校選系應該要怎麼取捨?特別想知道資管系的情況。」這應該是大多數學生都會有的問題,我就在這說說我的想法。

學校能給你什麼資源?

學校能給的資源大概就是課程、顧問和同學。

課程

每個學校對於大學資管系的課程安排不同,我不確定其他學校的情況。以我讀的台科大資管系來說,前面兩年教的東西是更理論、更基礎,有點像數學和邏輯的東西(資料結構和演算法),以及電腦從以前到現在的歷史(計算機概論)。要到大三、大四才會開始有比較多的應用課程,應用課程的特點是一定要交作品、做期末報告、上台 Demo。學校設計的課程可以給你一個紮實的基礎,讓你在實作的路上比較順利。

顧問

有問題不懂就問同學,同學也不懂的話就問教授,教授也不懂的話就問助教,趁問問題不用錢趕快問,畢業之後什麼問題都要錢。

同學

在學校,你最常接觸的人其實是你的同學,如果你的同學很強,很強代表豐富的知識或者優良的人格特質,你跟這群人一起相處,多少都會受到一點影響,默默的你也跟著變強了。

對於學習應該抱持什麼心態?

不要期待課程

老實講,學校安排的課程,大部分的人會覺得說:「甘我屁事,我幹嘛學這個。」在學校上課不認真是很正常的,因為你不需要知道這些也可以活得很好。所以通常是課上完了都沒在聽,日後真的需要用到了才在後悔當初。

這些課都不是你自己選的(搞不好連學校都是你媽幫你選),所以沒有學習動力是正常現象,成績不好也不用太在意,你有興趣的科目能顧好就好了。

自己學

在自學資源充斥整個網路的時代,網路上的資源(youtube、google)其實已經比學校多了,如果有熱血想要做點什麼就應該直接去做。不要期待學校會剛好開出你想學的課程,你想學就去網路上找資源自己看。

看一看有問題,其實也不一定要問同學、助教或教授。在網路上的社群發問,也有很多人會回答問題。你應該把你的時間用來自學,而不是學一些你不想學的東西。所以建議是如果你想要寫點程式做點東西的話就趁你還有熱血的時候直接開始,到時候上課再問爆老師,才不會浪費學費。

動手做

當你開始作事的時候,你才會感覺到你的能力不足,這會讓你產生主動的學習意願。你的學習是有意義的,你所有的學習都是為了把東西做出來。如果這種時候「剛好」有對應的課程,老師又不是亂教的話,我相信任何人都能學得很好。

做什麼

從模仿中學習是最有效的學習方式,不知道要做什麼的時候,你可以仿造一個你喜歡的東西。你想模仿什麼就直接做,不知道怎麼做就 Google 或問人。做出來之後,有作品的新鮮人,找工作都是秒找。

學用合一

先動手做,再去學。只有當你要使用的時候,你才會知道為什麼你要學這個。這種時候你才有動力去學,有動力才有機會學得又快又好。你要在上課之前找到學習的動力,所以趕快去做點東西。

英文很重要

因為很多學習資源都是英文,如果找不到中文資源就要開始找英文的。如果你英文不好,其實不用太在意,你只需要讀那些內容對你有用的英文,內容對你沒用的英文根本不用去讀。再來是你用什麼手段去讀都無所謂,看得懂最重要。你可以用 google 翻譯或其他的翻譯工具去看,花時間看懂你想看的文章就好,重點是不要看到英文就排斥不去讀。

證明自己的價值

你透過作品直接證明了你的實力,這比畢業證書還要有說服力。因為在台灣,學校的畢業門檻很低,導致畢業證書沒有鑑別度。到最後你會發現你的作品遠比你的畢業證書有用。

--

--

大家好,我是卡米哥,LINE 官方認證的 API 專家,LINE API Expert。目前在維護基於 Rails 的聊天機器人框架 Kamigo

LINE DEVELOPER DAY 是 LINE 對開發者舉辦的年度大型研討會,之前是在日本舉辦實體研討會,LINE API Expert 們都會受邀去參加,不過去年跟今年都因為疫情的關係改成線上舉辦。

由於是線上舉辦的關係,讓大家可以不受時空的限制,只要在家裡就能夠參加。所有議程的內容都放在 LINE DEVELOPER DAY 2021 的官方網站上,即使活動結束了,影片都可以重複觀看。

LINE 很貼心的幫所有的議程準備了三種語系的配音,分別是英文、日文以及韓文配音,這樣大部分的開發者就都能聽得懂議程,就連簡報檔也直接免費公開給大家。

大部分的議程是分享一些 LINE 相關的產品或服務的設計理念、內部使用技術細節、使用教學、未來的發展方向等,都是非常精彩、值得一看的議程。

以下我就簡單摘要其中一個議程:For Improvement of Developer Experience of All LIFF App Developers,這個議程的講者是 LIFF 團隊的產品經理和前端工程師,主要是在講如何提升 LIFF 的開發體驗。

首先是列出目前 LIFF 在開發上會遇到的各種問題:

LIFF 目前的問題

LIFF 的開發團隊針對這些問題,一一提出了解決方案:

--

--

以 Node.js 開發的 LINE Bot 為例

作為前情提要,請先閱讀由和風信使-戴均民提供的詳細步驟的教學文件:

  1. 讓聊天機器人也能看 Google Analytics (1)
  2. 讓聊天機器人也能看 Google Analytics (2)

根據文件的描述可以知道,只要打出 POST Request 到 https://www.google-analytics.com/collect ,並且傳遞對應的必要參數,就能夠從伺服器端新增一筆紀錄到 Google Analytics。

但是原作者說在 2021/6/17 之後,這個方法就失效了,在發出 Request 後,無法在 GA 上看見對應的紀錄。

為此,我分別透過 Insomnia、Ruby、Node.js 打出對應的 Request,並且比較其結果,結果發現 Insomnia 跟 Ruby 可以正常新增 GA 紀錄,只有 Node.js 不行。

觀察了一下個別打出的 Request 之間的差異後,逐步調整打出的 Request,最後發現只要在 Headers 內的 User-Agent 包含 fetch 或開頭為 axios/,GA 就會不工作。

所以,最後我使用的程式碼如下:

只要把 Node.js 偽裝成 Ruby 就可以用 GA 了哦!

Google 到底在幹嘛?

--

--