Huli's Blog

Learning by sharing

Lidemy 鋰學院是一個為初學者而生的線上程式課程平台,希望能以淺顯易懂的教學,帶領初學者更快速地入門程式設計。你可以直接到網站註冊,或者是追蹤 Lidemy 的粉絲專頁,就能搶先得知課程的最新消息

我遇過的最難的 Cookie 問題

| Comments

前言

幾個禮拜前我在工作上碰到了一些跟 Cookie 有關的問題,在這之前,我原本想說:Cookie 不就那樣嘛,就算有些屬性不太熟悉,上網找一下資料就好了,哪有什麼跟 Cookie 有關的難題?

然而事實證明我錯了。我還真的碰到了一個讓我解超久的 Cookie 問題。

相信看到這邊,很多人應該躍躍欲試了,那我就先來考一下大家:

什麼情形下,Cookie 會寫不進去?

像是語法錯誤那種顯而易見的就不用說了,除此之外你可能會答說:寫完全不同 domain 的 Cookie。例如說你的網頁在 http://a.com 卻硬要寫 http://b.com 的 Cookie,這種情形當然寫不進去。

或者,你可能會回答:不在 https 卻想加上 Secure flag 的 Cookie。

沒錯,像是這種情形也會寫不進去。

除了這些,你還能想到什麼嗎?

如果想不太到,那就聽我娓娓道來吧!

自架論壇的解決方案:flarum, github issue, nodeBB, discourse

| Comments

最近想幫 Lidemy 鋰學院建一個論壇,方便讓大家在那裡討論問題,於是就研究了一下現成的幾個方案,寫在這裡做個紀錄,順便給以後想建論壇的人參考。

在這邊介紹到的論壇系統基本上都是開源的,可以自己架或是有些會提供 hosting 的服務。

Flarum

Flarum是我認為比較新一點的論壇系統,實際範例可以看:他們自己的討論區,目前還在 Beta 階段,而且沒有提供任何 hosting 服務,必須要自己架起來。

技術棧是:php + mysql + Mithril.js,一套輕巧的 SAP 框架。

Github Issues

Github 本來就有為每個 repo 都提供了 issue 這個討論區,但原本的用途是拿來開 issue,討論 issue 用的。之後有人發現不只可以這樣,就拿來寫 Blog,所以要拿來做論壇也是可以的,只是功能沒有其他論壇這麼齊全而已。

採用這個系統當論壇的人很少,比較有名的只看到 express.js 的討論區,或是EasyIME

NodeBB

nodeBB 顧名思義就是一套用 node.js 寫出來的論壇,其他用到的還有 MongoDB、Redis 跟 Socket.IO。

有提供 hosting 的服務,最便宜的方案是 100 usd/month。

他們自己的討論區 Notepad++ 都是用這個系統。

Discourse

最厲害的放壓軸,Discourse 是一套後端用 Rails,前端用 Ember.js 寫出來的論壇系統,一樣有提供 hosting,最便宜也是 100 usd/month。

像是freeCodeCampatomxdite 的全棧營都是用這個系統,而 DigitalOcean 在建機器的時候也可以直接選擇 Discourse 的 image,但最低需求的機器要 20 usd/month。

結論

其他老牌的那些論壇系統像是 phpBB 或是 Discuz!我就不再特別介紹了。

那最後我選了哪套呢?

考量到成本跟維護問題,選了最低成本最容易維護的 Github issues。

Lidemy 鋰學院:為初學者而生的線上程式課程平台

| Comments

前言

最近剛把 Lidemy 鋰學院這個線上程式課程平台給弄好,目前這網站是建在 Teachable 上面,一個能夠快速搭建課程平台的服務。

而這篇呢,就要來談談 Lidemy 的創辦背景以及理念

緣起

我一直是個很喜歡教學的人,從最早在前公司開設的實體課程,到台北的免費程式教學,再到 Hahow 的初心者的計概與 coding 火球術,最後是近期的從新手到中手:前端工程加強班

有關於我個人的完整歷程可以參考自學、哲學、講學:我的程式之路。或許是因為我的背景多元的關係,在教學這一塊讓我有著更多的優勢,在很多時候,我都可以把一個東西講得更淺顯易懂,更讓學生們聽懂。

上面所提到的那些教學有線下的也有線上的,大部分是免費的,而唯一的付費課程我也決定在合約到期之後轉為免費。我上面這些教學的初衷都是一樣的,為的就是能讓初學者更順利地入門程式設計這一個領域。

我一直認為,教學是一件雙向的事情,不只付出是雙向的,連「教學」這件事情都是雙向的。在教學的過程中,老師同時也是學生,學生也同時是老師,彼此都能從對方身上學到些什麼。

常常看到有許多初學者們覺得程式很難,自己那麼笨一定學不會,或者是買了課程來看卻發現老師講的他都聽不懂。我想跟你們說,這不是你的錯,而是那個老師還可以教得更好。我一直是秉持著這個理念要求自己的。如果學生聽不懂、學不會,不是他們的錯,是我的。是因為我沒有用更淺顯的範例讓他們聽懂,沒有把課程設計得更好、更適合初學者。

有件事情我講過很多次了,那就是我分享的初衷其實是「幫助以前的自己」,我只是不想讓像以前的我一樣的人卡在原地不知道該怎麼辦。身為一個已經走過來,已經克服困難的人,我希望用我走過以後學到的知識去幫助以前的自己,能跟同樣卡在原地的人說:「像這個概念啊,我那時候也想了好久,最後才發現其實就只是...」

除了線上課程,我也在 blog 上面寫了很多與初學者相關的文章,像是:程式新手常見問題:解惑篇為什麼你應該從 Scratch 開始學程式[心得] 十年程式自學之路如海洋般的程式課程:CS50等等。

其實一直以來我都有想過自己跳出來弄一個線上課程平台,在 Hahow 開課以前就曾經想過,也曾經想過開設實體課程,但一直沒有行動是因為覺得手邊的資源還不夠,還可以再多累積一段時間。

前陣子有一天我想搜尋一篇文章,用程式 自學程式 教學程式 入門等等的關鍵字去搜尋,發現搜尋結果的前三名都是我的文章,同時我那時候也正進行著從新手到中手:前端工程加強班的教學,發現自己教學的次數其實不少,文章也寫得不少,好像是時候把我手邊的資源做個整理了。

因此,Lidemy 鋰學院就這樣誕生了。

為什麼叫 Lidemy?

之前有一個文章寫信來找我合作,問我是否能轉在部落格上的文章,並且請我提供一張 Logo 的照片。那時候我想不到 Logo 要放什麼,這邊我經營這麼久也沒有一個 Logo,後來跟一個朋友聊,他跟我說:不然就用你杯子那張啊!

這杯子是我在賽先生科學工廠買的,看到的第一眼我就決定要買了。因為 Li 剛好是我名字中的一個字,也剛好是一個化學元素的名字。

後來要幫這個新的線上程式課程平台取名的時候,我就立刻想到了這一個字以及這一個 Logo,連中文都順便想好了,「鋰學院」取「理學院」的諧音,儘管程式比較像什麼電資學院在做的事情,但以「理科」來說好像也能勉強碰上邊。

因此,我很快就決定了 Logo 跟中文名稱,接著就差英文名稱了。

英文名稱我直接從中文去發想,查一查學院的翻譯,可以叫做:college, Faculty,但我都覺得不太適合。我有想過 Li Bootcamp 或是 Li School,也覺得有點奇怪。

直到有一天無意間發現 Academy 也是學院的意思,Li Academy,就決定是這個了!

決定以後我立刻上網註冊網域,發現 liacademy.com 已經被買走了,只能用 liacademy.tw。不過,我發現居然還有 li.academy 這個超猛的網域可以申請,但要價一年 6000 多台幣,是其他網域的十倍以上。

當下我就想了很久,是不是真的要買這個網域?而且我也不確定這網域是不是只有真的教育機構可以購買(應該不是啦,我白擔心了),就在思考的過程中,我突然想到可以把這兩個單字結合起來,變成 Lidemy。而這名字的好處就是比較好念而且網域又還在。

我就跑去問了一下我室友,他說:「可是這樣不會讓人覺得跟 udemy 很像嗎?」,是的,的確是這樣沒錯,而且 udemy 的 Logo 就是一個 U,連 logo 的感覺也滿像的。後來因為我實在是無法決定,我就把這兩個選項 po 到臉書上讓我的好友們表決,最後 Lidemy 獲得壓倒性勝利。

這就是 Lidemy 這個名稱誕生的故事。

Lidemy 的理念

決定好名稱跟 Logo 之後,就是下一件大事了:slogan。每一個網站幾乎都會有一句 slogan,短短一句話就解釋他們到底在做什麼,我們可以參考一下其他人的:

  1. Hahow 好學校:最有趣的線上課程平台
  2. ALPHA Camp:培育全球Startup渴求的人才
  3. 六角學院:帶你學到會的線上課程
  4. udemy:Learn Anything, On Your Schedule

我記得當初我第一個想到的是:專門為初學者開設的線上程式課程平台,其他還想到了什麼:誠實的線上程式課程平台、致力做最誠實的線上程式課程平台等等。

總之「線上程式課程平台」這個字是不變的,就看前面要放什麼而已。

最後覺得上面字都太長,而且「誠實」這兩個字雖然我很想放進去,但看起來總覺得怪怪的不太搭,因此就決定縮減為:「為初學者而生的線上程式課程平台」

為初學者而生這個理念滿好理解的,我上面就已經提到很多了,我教學的初衷就是希望能把初學者帶進這個領域,讓她知道其實程式設計一點都不難,而且非常有趣!

而誠實這個點我很想放進來是因為,我一直很想做一個公開透明的平台。有多公開透明?首先在課程上,我希望能把好評跟負評「並列」在一起,讓所有人都知道學生對於這堂課的反饋是什麼,而不是只有好評。

這樣做或許會影響到銷量,但我覺得無所謂,比起賣得好不好這點,我更希望來購買課程的人,都已經確切知道優缺點是什麼才來購買。我希望他們在完全理解這堂課的評價以及內容之後再購買。

接著如果可以的話,我也想公開經營這個平台的收入與支出是多少,不過這個以後再說啦,畢竟現在一堂付費課程都沒有。

Lidemy 的未來

現在在上面就只有一堂前端程式加強班的課,而 Hahow 上面的課也是一年多之後合約才到期,才能轉到我自己的平台重新上架。

因此,要好好規劃一下之後 Lidemy 上面會有些什麼內容。

就長期目標來看,我想把 Lidemy 打造成一個什麼都有的平台,你想學什麼幾乎都可以在上面找到,想學 Android, iOS, 網頁前後端之類的都有。

但以短期目標來說,應該還是先專攻我比較熟悉的網頁設計這一塊。

之前有一個朋友問我說:「網頁設計的資源已經那麼多了,為什麼你還要再做?」

因為我想讓一個初學者的入門、加強都在同一個課程平台上,要打造這樣的一個學習體系,就必須要自己再跳下來做最基礎的 HTML/CSS/JS 的教學。從最基礎開始教,一直加強一直加強。

以下是我目前規劃的幾個課程,還沒完全確定,但如果有哪一個是你很想上的話,可以在下面留言告訴我,會增加這堂課開成的機率。

  1. HTML/CSS 入門
  2. JavaScript 入門
  3. Git 入門
  4. CS50 導讀
  5. Scratch 入門
  6. React 入門

結語

看了這麼多,如果你對這樣子的教學有興趣,可以先在 Lidemy 鋰學院上面註冊,有新課程的時候就能夠搶先獲得訊息,或是可以追蹤 Lidemy 的 Facebook 粉絲專頁,一樣能夠搶先知道最新消息。

Lidemy 鋰學院的介紹文就到此告一段落,感謝大家。

自學、哲學、講學:我的程式之路(下)

| Comments

此篇為系列文章的最後一篇,如果你錯過前兩篇,傳送門在這:
自學、哲學、講學:我的程式之路(上)
自學、哲學、講學:我的程式之路(中)

會寫程式的文組生

每當有人知道我是念哲學系的時候,就會問我說:「咦,那為什麼你會寫程式?」,我都會跟他們說:「你搞錯順序了,我是先學會寫程式,才念哲學系的。」

接著一定會問我,我在上一篇裡面回答的問題:「那你怎麼會來念哲學系?」

哲學這個詞之所以能被放在標題裡,當然也代表他在我的成長歷程中佔了一定的份量,短短兩年不到的哲學系時光,教授講過一句令我印象深刻的話(原句一定不是這樣,但大意類似):

很多人都以為哲學把東西弄複雜了,但其實不是的,哲學其實是把複雜的東西變簡單。

這句話改變了我對哲學的想法。我以前也以為哲學是把東西變複雜,怎麼一堆名詞然後一堆理論,為什麼要把想法變得那麼複雜?後來我才知道,原來這就是理論,這就是學說,這就是整理。

自學、哲學、講學:我的程式之路(中)

| Comments

此篇為系列文章第二篇,若是你錯過了第一篇誤打誤撞進來這裡,傳送門在這:
自學、哲學、講學:我的程式之路(上)

眼界的開闊與自信的泉源:高中的競賽人生

高中的主線就只有一條,那就是程式競賽。

我先大概說明一下高中的程式競賽,或其實我之前在 ptt 其實就有講過,我這邊稍微再整理一次。

高中的時候資訊競賽這一塊就有官方辦的了,比較重要的比賽是區域性的程式競賽,我的學校(師大附中)在台北市,因此叫做北市賽,全名是:台北市資訊能力競賽。每個學校能夠派出的選手名額有限,因此如果太多人,學校會先辦一個校內賽。

北市賽的獎項分成四種:一等獎 5 個、二等獎 5 個、三等獎 10 個跟入選獎,前十名(也就是一二等)可以參加全國賽。

全國賽就是各個區域賽的前十名聚集在一起比賽,獎項跟區域賽一樣,而全國賽前十名可以保送 TOI 選訓營。