[Huli 引路人計畫] 過去一年,下班後的學習

Huli引路人計畫

一. 前提情要

1. 為什麼會有引路人計畫 ?

如果有個比較有工作經驗的前輩來當我 mentor,給我一些方向或是跟我討論一些問題,無論是生活上的、職涯上的或是技術上的都好,我相信那會是很不錯的一件事。

但沒有, 一直到現在也依舊沒有這種事情發生。我可以理解,因為本來就沒有人有義務當你的 mentor。

沒有人做怎麼辦?自己先跳下來做再說。

於是 Huli 發起了 真正的 Mentorship program:引路人計畫 by Huli,原本預計收 5 個人左右,結果報名很踴躍,刷完一輪之後收了 22 個 mentee。

2. 計畫要做什麼 ?

保持自己的想法,不斷去質疑自己,同時也質疑我。

在這個計畫中我們會一起討論之後要合作的專案,百分之九十的工作都會由你獨立完成,剩下像是討論想法、決定方向或是品質把關會由我們一起完成。

Huli 列了三個方向:

  1. 特定主題研究及技術文章撰寫
  2. 技術相關小遊戲製作
  3. 做 Side Project 並且開源

基本上就是想好一個主題或方向,每週和 Huli 討論 上週 / 本週 / 下週 的進度和會遇到的問題,並且記錄在 Issues · mentorship-program · GitHub 上。

舉個簡單的例子:Week12 Max · Issue

3. 實際執行狀況

總共 22 位 Mentee 參與,平均存活是 12 週,有 4 位堅持超過 20 週,一年下來只剩下我完成了引路人計畫。

二. 聊聊這一年的成果

1. Flask 學習路線圖

▍計畫原因:

過去在實作 Side Project 中,總是用快速打造和程式能動就好的心態。和 Huli 討論過後,在引路人計畫的後半年認真的把過去每一個小環節和基礎知識建立起來。

▍實作成果:

花了近半年的時間完成 Flask 學習路線圖,文章包含實作和理解原理,內含共 28 篇文章。

本來以為這個主題方向能與 Huli 討論的不多,但開始準備資料的時候,發現 Google 搜尋上幾乎都是 Huli 的文章,其中在寫 Cookie、Session、CORS、CSRF Protection 這幾個章節時,Huli 的文章 Google 搜尋排名更幾乎都是第一名。

在撰寫文章方向,參考 Huli 提到的五個問與答:

  1. 這個技術出現以前是什麼樣子?
  2. 那時候碰到什麼樣問題?
  3. 這個技術的出現如何解決問題?
  4. 所以這項技術應該如何使用?
  5. 跟以前的解法比起來,差別在哪裡?有什麼優缺點?

整理成 28 篇文章,並與 Huli 復盤過後,最後將每篇文章串成一集 2020 Flask 學習路線圖,希望對未來在學習 Flask 的朋友有幫助!

flask-developer-roadmap
Flask 學習路線圖

2. 爬蟲 – 即時更新訊息通知 v1.0 – Line Bot 訂閱

▍計畫原因:

想法來自於 Feedly 這個網站,feed 是被餵食的概念,但 Feedly 抓取的網頁有限制,所以就決定自己蓋一個;而留意並且可以決定平常要被餵食的資訊,是這個 Side Project 的最主要目的。

▍實作成果:

列了平常會看的 21 個網站,分成 5 個主題,開了 5 個 Line 群,只要爬蟲有抓到新的內容,就會送到發訊息到該主題 Line 的群組。

爬蟲追蹤資訊總覽

由於一次維護 21 個不同類型網站的爬蟲,還蠻麻煩的,所以爬蟲模組化,把節點抽出來,並且寫了一個後台可以在頁面直接調整爬取的節點。這樣當接收到爬蟲錯誤警報時,只需要進入頁面修改節點即可,不用再進 GCP 裡改程式,方便多了。

爬蟲維護後台

關於這個 Side Project,Huli 有提一個很棒的想法,是將每個爬蟲做成像 plugin 套件一樣,使用者可以自己決定要收到的網站訊息。不過目前最多人訂閱的的 Line Bot 群也才將近 200 人左右,未來如果爬取的網站和使用人數更多的話,我會再把它寫出來。

程式碼開源:GitHub – hsuanchi/Website-update-notification

3. 爬蟲 – 即時更新訊息通知 v2.0 – 電子報訂閱

▍計畫原因:

由於用 v1.0 版本,收到用戶反饋 Line Bot 更新頻率太高、會有機器人亂入、和希望有將原文自動翻譯成中文等建議。所以 v2.0 版本就誕生了 – 電子報系統,每週四將會寄送一份電子報,可以掌握行銷領域的大小事。

Max行銷誌 – 電子報

▍實作成果:

做一個電子報的系統小細節很多,這次嘗試了一些過去沒做的應用,都在這個小專案中實作:

  1. 像是 Email 確認信驗證的 token 用 JWT 來做
  2. 如何不讓 Email 被判定為垃圾信件上的優化
  3. 訂閱用戶數和退訂用戶數還有開信率等數據儀表板
  4. 實作和了解 SMTP 和 Mail server 的關係
「電子報」分數優化

關於這個 Side Project,和 Huli 討論下來,覺得不該只把地區侷限在台灣,畢竟爬取的源頭更新資訊都是英文的,也可以試試寫 i18n。未來多國語系打算在 v3.0 版本上線。

v2.0 完成品連結:Max行銷誌 – 電子報訂閱

4. 數據分析 – 蝦皮競品分析

▍計畫原因:

由於姊姊想在蝦皮上開設蝦皮賣家,但在蝦皮上賣佛具到底符不符合投入時間成本?所以爬了在蝦皮上佛具相關的競品銷售資訊,做了一個蝦皮競品分析,和競品數據追蹤儀表板。

▍實作成果:

關於數據分析的部分,這份儀表板分析可以快速地告訴一位新手賣家:

  1. 這個產品銷售市場餅多大
  2. 上架商品的策略
  3. 商品的定價策略
  4. 掌握競品的 每日/每週/每月 銷售狀況
「上架商品」的優先順序策略

競品分析更多詳情,可以參考:【數據分析】蝦皮賣家競品分析

關於技術的部分:

  1. 過去爬蟲都是用 Multi-threading 來寫,這次實作了 Python Concurrency programming 的三種方法 Multi-threading vs Multi-processing vs Async IO ,並且做了執行時間和記憶體的比較,實驗結果寫在這篇 淺談 Concurrency Programming
  2. 研究了 Python 的 淺談 Python GIL & Thread-safe & Atomic
  3. 最後解析 Python 之父寫的 web crawler 異步爬蟲的架構,寫出了這隻蝦皮競品爬取程式。

關於 Python Concurrency programming 這個主題,其實是第二次重新整理和回去補充過去文章的細節,但現在回頭看還是覺得有可以再補充的部分,與 Huli 討論未來規劃中,接下來會再花點時間回去補充這個主題。

程式碼開源於: GitHub – hsuanchi/crawler_shopee_public

5. 數據分析 – 雙 11 社群分析

▍計畫原因:

行銷的面相很廣,影響成效的因素很多,當時思考著有沒有可能像電影「魔球」裡面,掌握每一個環節的數據,用一個比較有科學和量化的結果來操作行銷策略,所以這次針對了「雙 11 時段」的「粉絲團經營」這個環節來做細部的分析。

最佳影響力的「發文類型」和「發文時機」

▍實作成果:

從小編的發文數據中了解到:

  1. 雙11 時期,小編的最佳發文數量
  2. 雙11 何時開始發暖身文
  3. 如何避開雙11 發文潮的發佈日期
  4. 最佳影響力的發文型態和發文時間

從小編的發文質量中觀察到:

  1. PChome 24h購物 & momo購物網 社群影響力為何差距這麼大?
  2. 粉絲團人數或發文數有這麼重要嗎?
  3. 發文文章內容不夠吸引人?
  4. 如何順著Facebook 演算法走?

最後利用 Data Studio 展示了其他表現較佳的粉絲專頁清單,更多詳細細節可以參考:【數據分析】 使用 QSearch 揭秘雙11社群操作

6. Flask – 電商網站

▍計畫原因:

過去工作上花費不少時間在研究電商的使用者行為,但通常只能小幅度調整對方的電商網站,這次來試著打造一個自己的電商網站吧!

▍實作成果:

是第一個前後端的小專案,詳細過程放置於,可以參考 GitHub – hsuanchi/EC-website-project

前台

綠界金流串接:

後台管理:

三. 聊聊這一年的心得

這個模式是這一年摸索出來的:導師 (討論方向) → 實作(完成 Side Project) → 寫文章 (記錄,並將技術了解的更深) → 學伴 (消化過後,學習用口頭表達),每個環節都很重要。

1. 導師

過去總是覺得急躁,懷疑自己前進的路線,深怕自己在原地踏步。

學習程式的路上,一路走來都是自學,每天在 「Goolge 搜尋」或是 「Stack Overflow」中徘徊尋找解答。直到有天看到 Huli 的前端引路人計畫,立刻手刀報名起來!選擇了「特定主題研究及技術文章撰寫」和「做 side project 並且開源」的方向參加了計畫。

這一年執行下來,有一個導師在前方,確定自己大方向沒有問題,以及可以討論和給予關鍵字上建議,真的是件很幸福的事。知道自己目前在哪,要前進的方向和路線,做起事情起來不再急躁,更多的是踏實。

2. 實作 & 文章

實作和寫文章真的是很花時間,尤其是當要用文字敘述時,常常會發現還有遺漏的細節沒有弄懂,但也因此寫文章是一個很好梳理知識的方法。再加上自己蠻金魚腦 (記憶跟魚一樣,大概 7 秒的概念) 的,所以看自己寫好的文章對我來說,常常是一種快速的恢復記憶方式。

但寫實作和文章最難的其實是「自律」,懶大概就是人的天性,而我提升自律的最好方式是,將每個週日空下來留給自己,固定和兩三位朋友一起在咖啡廳,時間大概是 4 小時左右,把這段時間做自己想做的事情,但絕對不是工作上的事情,這也是「週末我們工作,但不工作」co-working team 創立的來由,目前執行第三年了,是個很好提升自律的方式。

3. 學伴

目前我的學伴有兩位,會開始有學伴的出現,其實是因為參加了「商業思維」的課程,被分配對到一位學伴,很巧的是對方竟然是 Huli 的學生,世界也太小啦!

我們互動方式是每兩週固定一次,一個小時的線上會議 (每人各 30 分鐘),彼此分享這兩週內的新成長。對於我來說是一個可以將所學,用口頭敘述的表達的機會,如果可以確保對方聽得懂,那也代表我有把這技術學習起來;同時又可以從學伴身上聽到新東西。

四. 薪火相傳

參加 Huli 的前端引路人計畫的條件,就是一年之後也要開啟相同的計畫,收的人數不能少於 2 個。

對我來說,我很清楚自己的技術在哪裡,目前收 mentee 對雙方的幫助不大!所以我想徵「學伴」。

方式:線上會議
時間:每兩週一次,每人30 分鐘,共一小時
內容:分享自己這兩週內所學和成長

關於我過去的經歷可以看這篇,專注在數據分析和後端開發,如果對這兩塊有興趣,歡迎私訊來當我的學伴

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *