Lidemy / mentor-program-2nd

程式導師實驗計畫第二期教材
71 stars 25 forks source link

學生心得:Sharon(另一個) #19

Open aszx87410 opened 5 years ago

aszx87410 commented 5 years ago

註:心得分成兩部分,第一部分為各個章節卡關的心得,第二部分為整體心得

卡關細節

Week4:Twitch API

從 Hello World 到計算機,都是「哇~ HTML、CSS、JavaScript 好好玩喔」的心情,一直到串接 Twitch API,有一種前端三劍客在房裡玩得正嗨,API 這個陌生人突然踹開房門,跑進來說「欸 我們也要玩啦」而且他還不是一個人來,還帶 AJAX、JSON、CORS 這些外星人一起強行闖入。

現在回頭看,AJAX、JSON 其實是到 Week7 把留言板改成 AJAX 的時候,才比較恍然大悟,可能是因為當時剛學不多,對前後端和資料的傳遞沒有很熟悉,加上從 Twitch 抓資料,資料是 Twitch 提供的,會覺得「到底是要抓什麼東西」資料很虛無的感覺,但留言板的資料,從提供資料到抓資料,都是自己生出來的,就明確很多。

Week5-6:留言板

從這週開始有好幾週都是跟留言板奮鬥的日子,因為進度落後蠻多,所以在我開始做留言板的時候,就已經看到同學跟留言板激戰的狀況,有一些心理準備,還不至於大受打擊,但親臨戰場的時候還是滿慘的...

這週要完成的事有這些:切版、迴圈中的迴圈、DB 設計、存取資料 CRUD、會員系統&Cookie、分頁。除了切板以外,其他都是這週新接觸的東西,真的是超級大亂鬥

自己龜毛很久的切版:

一開始從比較熟悉的切版下手(好像也只能從這裡下手),沒想到留言板的畫面看似簡單,光是介面就龜毛了好一陣子,甚至還一度用了 Photoshop 大概排一下版型,最後還是決定一切從簡好了 XD

DB 結構的小門檻:

這週剛學到資料庫的時候,想到以前做單機遊戲是把遊戲的資料全都用變數存,名稱、觸發事件、得/扣分、總分、各階段的時間、總時間等等,沒用到資料庫也都蠻正常的。後來想通了,大概是因為是單機遊戲,資料就在遊戲結束後也都歸零了,不需要有個長期保存資料的地方,也就不用資料庫了,有比較理解資料庫的的功能。

這個經驗跟留言板唯一差不多的地方只有玩家名稱和會員名稱有極小的雷同而已...
言歸正傳,在思考 DB 結構時有和表妹(也正在學資料庫相關的領域)一起討論,印象中我鬼打牆的問她好幾次關於子留言的部分,因為在留言板的畫面上,子留言就是跟在主留言底下,一樓的子留言包在一樓的主留言下面,但在資料庫的結構上,把主留言分一類,子留言分一類,一時之間還轉不太過來,後來在紙上畫了好多東西,把留言板畫面、資料庫結構都畫出來然後連連看,把比較抽象的資料庫結構和具體能看到畫面連結起來。

大亂鬥:除了上面兩個以外的事,都是大亂鬥了..

最一開始的卡關點是不知道要從何下手,因為 HW2 有好幾個功能要做,功能也都是相關的,但剛開始不是很了解製作時這些功能之間的關聯性,以及對會用到的新技能不熟悉,全部加在一起就顯得比較吃力。

現在要重做的話,我會知道大概要分成這些步驟):

  1. 新增主留言的功能(抓到留言內容、傳到資料庫存) -> 顯示主留言(從資料庫抓出資料、傳回前端、印出來)
  2. 前端有了主留言和新增子留言的地方後,新增子留言的功能 -> 顯示子留言。這邊要用的技能跟主留言差不多,另一方面是要想一下兩個迴圈的執行順序和子留言印出的位置,在熟悉 CRUD 和迴圈的情況下,製作子留言功能蠻像是整合題。
  3. 照時間排序,這個功能我覺得在熟悉 CRUD、SQL 語法後,在做前兩步的時候就可以一併完成。
  4. 分頁功能,關鍵好像也是 CRUD、SQL 的語法,一次撈十筆資料後再印出來,所以也蠻像進階整合題。

要完成這些功能的所需的知識技能大概有:理解 Html/JS/php 三者間的關係、php 語法的使用、CRUD 應用、SQL 語法的使用、熟悉操作 DOM、熟悉 Get/Post...等等(還是交給專業 XD)

亂鬥中的插曲

這個是我最印象最深的地方,因為我覺得這只是件小事,為什麼這麼複雜啊!!

在還沒開始實作的時候,對資料庫的理解是 Excel,有欄位的存資料。Excel 要選取欄位就是用滑鼠點,不然就是 A1、A2 的直接指定欄位,不管是用游標選或是指定欄位,都是蠻小的事情啊XD 所以在資料庫裡為什麼要這麼多步驟啊?

我記得影片裡 Huli 邊解說邊打程式,一切都很順暢很合理,自己要實作的時候一切都是問號,雖然照示範的程式碼打上去,也還是可以成功抓出資料,但就會不知道為什麼要這些步驟。

當時缺乏對資料庫的觀念是:抓回來的 Result 要判斷有無資料、資料是以陣列的形式讀取、不同的陣列形式又有細分成不一樣的引索...等等(好像還有其他觀念)。延伸到實作就要理解語法怎麼判斷、怎麼指定陣列形式、怎麼存取陣列裡的資料並結合迴圈印出來。

戰後復原

Week5 之後的留言板,雖然也都卡蠻久才交作業(而且現在還是有蠻多 bug XD),但經過前面的大亂鬥已經慢慢熟悉新技能,留言板功能也都大致完成了,所以後續的修改、優化和資安概念,跟大亂鬥比起來就和平多了,比較像和平談判,不然就是忘記了亂什麼了 XD

經過這場大戰,更加確定目標就是前端了 哈哈哈哈哈

整體心得

課程開始前

課程開始前還蠻期待的,尤其開課前做 Scratch 遊戲和解 Codewars 題目很樂在其中,就覺得開課之後大概就是這樣歡樂吧。

對課程的期待是抱著「相信專業就對了」的心情,當時課綱上除了 HTML、CSS、JS 之外的其他很多名詞和技術都不認識,有心理準備要學的東西很多,也有點擔心會死在某個沙漠或森林裡。

課程開始後

課程初期的教學內容,Lidemy 單元影片教得很清楚,加上 Huli 在直播的解說和 Q&A,大致上都可以在吸收後開始寫作業,遇到問題也能在短時間內解決。這段時間和預期中的差不多歡樂,沒遇到太大的挫折,從什麼都不會到學會好多知識技能,就這樣收穫滿滿又順利的過了第一個月。

第五周進入後端基礎,開始覺得難度加深很多,同時出現很多新名詞和新技術,對抽象概念、技術間連貫性的理解比較慢,導致上完課後作業還是做不出來,需要花更長的時間消化新知和寫作業,或是花很多時間也還是無法理解、無法完成作業,於是就進入卡關期,造成進度落後。

進度落後的初期還很樂觀的覺得「沒關係這週完成後,下週就會跟上了!」結果是這週完成,下週一樣會卡關,進度落後更多,同時也意識到每一週學習內容間的關聯,如果這週囫圇吞棗的消化,到下週會更吃力... 就在這樣想趕上也趕不上、想慢慢學又怕慢到被淘汰的矛盾心理下過了幾天,直到 Huli 很暖心的告訴大家不用趕進度、照自己的步伐學習就行了!才化解矛盾,放心地照著自己的步伐走,就走到現在還在走。

上課前後的轉變、技術能力的成長

第一個是發現問題和解決問題的能力,第二個是面對問題的心態。在卡關初期,常常不知道問題在哪,連問都不知道要問什麼,整個很慌亂,後來漸漸開始會思考問題而且可以比較冷靜的面對,甚至在學會以後有更多好奇的地方。雖然還有進步空間,但都比課前好多了!

我想這些能力的成長是 Huli 的教學方式帶來的影響,在課堂上、作業裡問我們問題,問他問題時,Huli 也會引導式的反問為什麼(每次很慌亂的提問, Huli 都很冷靜很有耐心的反問XD),盡可能幫助我們思考自己遇到的問題和解決方式。

從課前什麼都做不出來,到現在有幾個完成的小作品,就是技術能力成長的證明,但這部分當然更需要繼續成長 XD

還想成為工程師嗎?目前規劃

還是以「成為工程師」為目標,想往前端邁進。 目前正在進行 Week10,Week10 結束後會照進度往下學,只是還不確定會在哪個時間點開始投履歷。如果全都學完還是沒找到工作,就加入第三期!

總結

會推薦給想學程式的人,這是個很棒的學習機會,只有個建議是不要在職上課,會身心俱疲...

以前都說程式語言是一堆亂碼,現在終於不是亂碼,而且是在寫程式了!
很感謝 Huli 開這門課,對教學內容、學生狀況等等各方面都非常用心,雖然我還沒上完課也還沒找到工作,但對我來說這是一個很好的開始 ~

aszx87410 commented 5 years ago

很喜歡開頭的那個比喻,原本開開心心在玩,結果一堆外星人突然衝進來一起玩,從此之後就變成大亂鬥了。這是課程滿真實的寫照。

其實每個人的心得在這段上面都類似,差別只在於撐過來或是沒撐過來,能撐過的通常都有比較深厚的程式基礎,而撐不過的是平凡人,是沒什麼接觸過程式也比較沒概念的學生,這很正常。

從第四週 API 開始課程大概就一路壞到第八週部署,原本課綱上四周的課程,最後大概花了八週或更久才讓學生完成,可見課綱難度之高,要跟著走根本不可能。

下一期針對這點做了些改善,在第四週先教 API 跟網路概念,第五週複習週讓大家複習,接著才進入到前端的領域,這樣之後用 ajax 串接 API 時應該能順暢許多,而且為了 ajax 特別多開了一週,希望不要這麼趕。

留言板的部分也是,先從最簡單的一層留言開始,再進階到會員系統、可以刪除、修改留言,最後才是子留言的部分,算是把原本放在兩週的東西拉長到四週,應該會有更多時間可以練習,中間插入的複習週也能讓大家喘口氣。

卡關讓學生損耗最多的其實是繼續跟課的動力,卡太久的話動力就被耗光了,原本雄心壯志想要完成課程的意願也沒了,不但是我的損失,也是學生的損失。之後在設計課程時我會把這點放在心裡,想想要怎麼兼顧兩者的發展,讓學生跟課能跟得順利,並且樂在其中。

感謝心得~

BoisonChang commented 4 years ago

謝謝你分享那麼詳係,我覺得可以一直堅持很厲害!