Lidemy / mentor-program-4th

程式導師實驗計畫第四期課綱
https://bootcamp.lidemy.com
116 stars 60 forks source link

學生心得:lauviah0622 #27

Open Lauviah0622 opened 3 years ago

Lauviah0622 commented 3 years ago

前言

時間也是過得蠻快的,原先是打算找到工作之後再寫這份心得的的。一開始是覺得程式導師實驗計畫也算是個培訓課程,找到工作之後好像比較能得到一個成果的評斷,而且自己現在還在服役中。不過上面這些也只是拖延的理由。等到退伍還有大概兩個月,如果算上找到工作的話又要延後一個月了,到時候還對課程這段期間有沒有印象也不知道了。

但是在過完年會來發現說第五期要開始了(還有看到 Huli 提到希望在報名前寫完心得XD),自己覺得在第四期也算是收益良多,而且的確也想好好的整理還有反思一下上課的內容,這樣看來早點打一打也不錯。對抗拖延症的方法除了自己的調適,外力介入才是才是特效藥啊阿阿。

計畫開始之前

背景

提一下背景好像比較好作為參考。先來點和程式無關的,自己大學就讀的是稍有名氣的學店,讀了六年。就讀的科系上課內容蠻雜的,但是每個東西都教的非常淺,包含有設計、遊戲、3D、影片還有網頁之類的。因為上課有接觸,後來系上的讀書會學長也有分享一些和網頁相關的內容,覺得寫 code 還蠻有趣的?至少比起設計而言,但真正決定要投入是突然發現自己的學貸金額相當之可觀(六年乘上私立),就這樣跟著原本的方向走可能會餓死,所以在讀到第四年時,決定說投入前端這個領域。

不過因為離畢業還有一段時間,沒什麼危機感,所以一開始沒有很有系統的去學習,直到大學第五年(大三)才開始買一些課程跟課,然後到畢業前決定要報名程式導師計畫第四期。

對,所以在報名前我已經有一些基礎,當時的程度大概是可以用 react 搭配 Firebase 的 API 來做個畢業專題的小專案

報名

都已經可以做出專案了為什麼要浪費錢報名?有一個主要的原因是看到這篇,前端工程師的需要的技能很難有一個清楚的定義,看完這篇文章之後,自己很認同文章中的「基礎紮實的網頁前端工程師」,也體會到自己的基礎真的薄弱到不行,決定報名。

但報名過程比起其他同學有在心得中提到,看到第四期的報名資訊才報名自己的過程有點反過來。

自己在報名之前就有在看 Huli 的文章,也看過 MTR 一二三期的一些心得,在第四期報名開始之前就想要名這個計畫,但可惜的是第三期已經結束了,而且看起來似乎不會再開,心灰意冷之際也開始想說自己應該要另外找資源來補完這些基礎。

然後新的一期報名就開始了。

真的就是這麼的巧合喔,而且時間算一算剛好課程的時間在畢業與入伍的這段空窗期之間,當然是直接報下去阿。

不過也是這個原因,相較於其他同學壓力並沒有那麼大,一來是自己沒有課程上完就得立刻就業,二來已經有基礎了,最後是自己沒有正職的工作,一週 40 個小時對自己而言不是個問題。在跟課有時後在想,自己都覺得有點硬,卡了很長時間了,零基礎的人到底要怎麼跟課。

在這裡對零基礎轉職的同學獻上最大的 Respect 🙏

記得自己第一天就填寫報名表了。在寫報名信的時,JS 和 scratch 自己都有摸過,所以沒有太高的難度,比較難的是寫報名信,沒有產出文章的習慣,而且又很怕沒錄取,修修改改了很久,到好像前一個禮拜才寄出報名信,幸好最後錄取了。

覺得有一件需要提的事情是,自己報名的是 B 方案。一個考量是,自己課程上完就要入伍了,如果採 A 方案的話即使完成課程,也不可能找到工程師的工作,那也就代表完全免費(或者是義務役的薪水 * 1.5 倍?),對於 Huli 沒必要;再來是算一下之後發現 B 方案會比較便宜(不知道自己哪來的自信)。

但其實自己也是有跟著進度跑,而且心得也有每天交,還打了不少字。有個進度掛在那邊覺得比較有推力,而且也會督促自己不要太過完美主義,見好就收,繼續接下來的進度。

期許

原本的程度我想就已經足以找到一份工作了,基礎的部份其實也可以在工作之後慢慢補上,但覺得說與其從工作經驗中學習,有個課程能夠更快的的填完之前欠的坑。所以比起「找到一份工程師的工作並轉職成功」,「打好自己的基礎」比較貼近自己對於課程的期許。而且自己有個莫名的想法是:「其他從零開始的人都可以做完基本的作業了,那自己不是應該做的更多嗎?」

所以自己會希望把課綱的內容都盡量看完,作業的內容也做好做滿,包含挑戰題。不過自己也沒有完全做完就是了。


程式導師實驗計畫

覺得這個計畫本身可以分成兩個部份,一個是課綱:包含教材、作業(挑戰題),這些理所當然的是整個計畫的主軸;但其他支持課綱的部份我覺得也功不可沒,像是助教制度、學習系統、同學之間的交流,雖然這些部份不會帶給你成為工程師的直接幫助,不過這也是幫大家能夠在這漫漫的轉職長路能夠堅持下去的動力之一,而且我也蠻享受這個部份的 XD。

課綱

這部份的內容基本上是再回去看完每個複習週的心得,以及再次看過課綱,然後對比較有感覺的幾個禮拜可能會稍微提出來講一下。

week3 程式基礎

有稍微談一下測試相關的東西,記得好像是有哪幾種測試,還有一點的 Jest,不過後面似乎到 20 幾週 react 檔案架構才有提到,覺得中間可以適度的加一些簡單的測試,還有測試相關的概念?

還有有印象的是第一次用 eslint,這時候是第一次用這個東西,就遇到很多蠻麻煩的 case。不過後面專案會在其他地方開發然後搬進來教作業,後來有時候都會直接忽略 XD

week14 後端基礎 PHP 與 MySQL

比較特別的是碰了 PHP,對於學習後端我覺得從 PHP 下手是蠻正確的選擇,語言蠻簡單的,而且配合 apache 丟上去就可以跑了。不過也因為太方便了,後面剛開始用 nginx + express 有點搞不清楚做了哪些事情。現在看起來當時使用的 apache 充當了 http server (也就是 express,但底層應該是 node.js 的 API),並使用 php(對應到 JS 語言) 處理 request。nginx 則是當時 apache 能做到但沒用到的功能:反向代理。

week14 伺服器與網站部署

week14 是最地獄的兩週之一,另一週大概是 week18。

因為第一次碰 Linux,而且蠻多要設定的東西,雖然有影片帶著做,可是就是常常會有遇到很多問題。自己印象中有遇到的像是 防火牆沒開(可能是 ufw 或者是 AWS 的 SG)、SQL 的帳號權限、Linux 的資料夾權限這些。在想可以弄個 checklist,把一些 FAQ 寫下來做對照還有處理。不過 FAQ 的詳細程度可能是個問題,要抓到不會透露太多可是又可以給到方向的程度。

不過未來一定會遇到非常多這樣的問題,早點撞牆也是好事。

week16 JavaScript 核心與物件導向

這週有用 PHP 教到物件導向的東西。有提到說因為 JS 的物件導向不完整所以用 PHP 教,不過用 PHP 學了之後反而有點不知道 JS 裡面要怎麼用,不知道說 OOP 在 JS 上的一些應用情境之類的?

JS 基礎的部份覺得沒啥可以挑剔的,這部份應該是整個 MTR 的精華之一吧

week 18 現代後端開發(下)

自己在 week18 卡超級久,但主要的原因是自己硬要做購物車,想說這週的作業跟上一週的作業好像差不多,都是做後台,想挑戰一下,結果就爆了。

覺得在這個部份很吃事前的規劃,而不只是 coding 的能力,從業務邏輯開始,會影響到前端要怎麼設計,然後要開哪些 API。前面沒有規劃好就會需要花上非常多的時間,自己的這個部份真的很廢,有點不知道從和規劃起。

還有一個是,過去做的大多是單個小東西,這週要做的事情真的蠻多的,包含

  1. 做出後端 API
  2. 做出後台的前端,然後把 API 串在一起
  3. 整個各個分頁的 API 和頁面
  4. 最後還要部署

自己發現後面 3. 還有 4. 的問題比我想像的大,再加上說這是第一次遇到專案比較偏大規模的作業,所以又花很多時間,這兩週總共花了快要一個月來做(week19 ,week20 也都在做),結果還是沒做完。

或許讓大家先把 API 開好,再學著用 Postman 做一點檢查(我忘記課程裡面有沒有提到這個了),最後讓前端跟後端串起來,可能會比較沒有那麼陡峭。

week19 產品開發流程

這個是 4th 新增的內容,雖然課程內容不多但我覺得超棒,直接竄升心目中 MTR 精華之一。除了 coding 以外,也要解一下產品開發流程,不過覺得可以拉到 week 17, 18 之前,覺得整個 week17, week18 完成餐廳網站是一個比較大的作業,把 week 19 的內容拉到 week17 跟 week18 或許可以照個之前餐廳作業的輪廓試著寫一份 spec 還有開 ticket,不然 week19 直接幫自己的 final project 開需求其實有點茫然。

這樣還有一個好處是可以把 week17, 18 的作業分成多的個小部份,就像前面提到這兩週要做的事情其實不少,如果一起做會變成前端做做後端做做,整個開發流程就會有點亂,分成小部份慢慢完成可能會有信心許多。

week 21 ~ 24 React

這邊一起講,一個是後面沒有複習週所以沒有心得了,另一個是這邊基本上就是圍繞著 react 在跑。

這裡覺得可以多串一些 API,記得第一次在 react 串 API 的作業就是 week22 的改寫部落格(串自己做的登入 API)。可是同時還要導入 react-router 加上大專案,整個作業複雜度就會偏高。但串 API 之後會有 sideEffect 要考慮 rerender 會需要用到哪些 hook,自己覺得會是 react 比較需要思考的部份。

最後就是 redux,自己的看法是蠻值得一學的,但不是指 redux 本身,而是在狀態管理上需要面對的問題和解決方法(Flux 的那套觀念),還有知道說 react 比較像是一個 library 不是框架,很多部份需要其他工作來補足一些功能讓它更好用。不過順便學學業界大家常用的 redux 當然對求職也是有加分啦。

作業

作業部份自我檢討跟助教蠻相輔相成的,自我檢討可以看一些比較基本的要求,助教改作業時,比較會挑出一些怪怪的 code 或者是 pattern(就自己寫的作業而言)。

第五期覺得可以提醒同學可以把問題打在 PR 上面或者是直接 comment 在 code 裡面,可能像是:

/*
 助教看我:
 這邊使用的雙重迴圈的方式不知道正不正確,有沒有符合平常使用的慣例
*/

自己好像是比較後期才這樣做的。有時候會覺得自己某些部份很有問題,可是助教很難在茫茫 code 海裡面看到,稍微提一下助教或老師應該會比較能得到同學想要的回饋。

進度報告

自己是 B 方案,雖然不強迫要寫心得,不過也是有照著 A 方案的頻率去交,最後跟完課的時候發現不知不覺也打了很多的字 XD。

不知不覺打了這麼多字 XD

關於心得要寫什麼, Huli 一開始就有提到說心得內容寫什麼都行,我也的確是什麼都寫,很多時候心得就變成一個發牢騷的地方。還有自己也不是很堅持的人啦,有時候只寫個兩三行,有時候寫了兩三千。

在發完心得之後自己也會稍微看一下別人的心得,看到別人有時候發生一樣的問題也可以稍微給一下自己的經驗,也可以看一下說同學進度怎麼樣,在挫折的時候看到別人也一樣在困擾時感覺就會好很多。

還有一點是自己本來也有寫日記的習慣(雖然堅持不久),不過在進度報和寫日記有很大的不同是,進度報告有人會看但可能不會太多,而且同學間在關係上有一定的距離。這樣的距離蠻適合去 murmur 一些想法的,還有在法律的範圍內可以吶喊一些必須得帶進墳墓的東西。

整體下來其實蠻喜歡進度報告的。但有個可惜的地方是卡卡文有點多,很想看某些人的進度報告,可是因為在忙卡了又不太會特別去翻來看。還有想許願說如果有像是標記 #21345 能夠連結到某篇心得的功能就太好了,整個進度報告應該會有趣很多。

上面這個功能可以用開個別心得報告的 url API 應該可以解決 ?(忘記有沒有)這樣就可以先用 markdown 的連結語法做連結。如果要作到 #12345 這種格式就直接連結到其他文章就要改 markdown parser 可能就比較麻煩 XD

是在哈囉

這個部份每次都會收聽,雖然有時候話題會飄到神奇的地方去,不過可能就是這種神奇的地方才會變成忠實聽眾 XD,內容常穿插各種哲學還有一些奇妙的知識,隨著時間話題會進入到很深的層面。

Min 跟 Clay 這個組合覺得蠻搭的,Min 蠻有講學的感覺,然後 Clay 會常常問出自己疑惑的部份,但兩位對於議題的對答又在一個蠻輕鬆的氛圍之下,聽著聽著常常不知不覺就長知識了。

收穫

一開始就提到說,這次參加課程是希望能夠打穩基礎,那基礎穩和不穩的差在哪裡?說實在的我也不知道課程上完之後基礎穩不穩,畢竟還沒去面試,沒辦法有一個標準可以做評斷。

不過課程上完後有個很大的不同是,自己看到一個沒看過的技術名詞或者是新技術時,可以知道大概這項技術的位置在哪裡,大概理解說是要解決哪方面的問題。這樣的同時,看看自己的技能樹,也大概知道自己在什麼樣的位置。

這有點像開地圖的感覺,原本自己就算學了 Jquery、學了 react,可以寫出個東西沒錯,但也不太知道為什麼要學,現在明朗起來的感覺很好。也因為這樣自己好像更喜歡這個領域了,開始會對各種東西開始好奇,以後也想摸摸看想要精進,而且在計畫中補足了後端還有部署的相關內容,要做 Side Project 也不是問題啦。

還有一個是 Huli 的價值觀,在課程期間也閱讀了老師很多的文章,慢慢了解很多老師的價值觀,開始會試著寫文章、有問題會開始翻 spec。不過自己覺得,這些都不是最大的影響,影響是什麼還說不太清楚,不過總覺得個性變得比較寡淡了。

自己在課程沒做到的部份

統整一下課程沒有做完的部份有:

  1. 一些挑戰題和超級挑戰題:記得是演算法、Docker、還有 mail API 跟金流 API
  2. week 18 作業
  3. Lazy Hackthon
  4. Final Project

覺得比較重要的部份應該是 Lazy Hackthon,有很多優化的部份應該是要補齊的,優先度大概會在找到工作之後。Final Project 其實很想做完,一個原因是覺得自己沒有比較大的專案(week 18 沒有完成),看狀況是來不及在求職以前做完了,可能也是接下來慢慢做 XD。

至於挑戰題和超級挑戰題比較看狀況,week 18 目前大概是放棄狀態了。

其實在課程之中蠻想找助教聊天和老師聊聊的,不過說實在也不知道要提什麼,最後都是問技術問題比較多。而且和助教講話會不自覺緊張起來,像和老師或主管講話的感覺,這樣狀況好像也沒辦法侃侃而談,就想說算了。

最後還有一件事是很想報名 5th 的助教,覺得在 4th 收穫不少,也想試著做一位助教去指導其他人還有為這個計畫付出一點東西。不過因為還沒有開始上班,等找到工作應該也來不及了,就只能作罷,看看之後有沒有機會。


課程之後

目前自己處於一個沒經濟、沒有工作、最慘的是現在也不能找工作的狀態。

看了很多同學的求職心得之後其實蠻害怕的,當兵時 React 的印象一直在慢慢變淡,每個禮拜都慢慢的在盡量做 Final Project 來復健。在營中有帶面試提進去寫,想說出來只要梳理一下流程然後查一點資料就可以,不過沒有網路可以查就只能空想,而且要同時複習面試題跟 coding 的手感真的很難。

還有自己算是第一次找正職,沒有正職經驗也是自己一個很擔心的點,怕說對方會覺得說沒有工作經驗而被扣分。不過這樣也是無可奈何,自己也真的就是新鮮人沒錯。

雖然 Huli 有說面試官不會太在乎作品,不過看其他人的求職心得好像都會問到專案的事情,做完也可以給自己蠻大的自信。但是就像前面講的,自己應該是來不及完成 Final Project 了。

對於求職的恐慌大概就是這些了,現在也只能盡可能準備,然後等待,在兩個月內也沒辦法做的太多。未來找工作可能也沒辦法等工作等太久,能夠複習多少也是未知數,其實蠻希望說等到一間自己喜歡的公司再到職,但是當下的情況沒辦法要求太多。

那找到工作之後呢?目前希望先把前端的基礎補起來,還有把 final Project 做完。詳細的規劃目前也沒有很清楚,就是只是很粗淺的想法而已,可能會先開始翻 spec 的東西吧。

結語

本來對於課程應該是有很多想法的,以為可以打個好幾萬字,後來發現比想像的還要少很多。可能是時間太趕了吧,馬上又要回營區了。而且後來看看好像打的有點流水帳,入伍後覺得動腦越來越慢,組織語言變得有點辛苦。

所以就這樣想到什麼就打了什麼,如果能有一點參考價值就很開心了 XD

總之這篇文章就到這邊了,非常感謝 Huli、助教、還有 MTR 4th 的各位同學,也祝各位求職順利~~

aszx87410 commented 3 years ago

等到退伍還有大概兩個月,如果算上找到工作的話又要延後一個月了,到時候還對課程這段期間有沒有印象也不知道了。

那時候應該忘的差不多了XD

在跟課有時後在想,自己都覺得有點硬,卡了很長時間了,零基礎的人到底要怎麼跟課。

這個確實是滿困難的,所以時間才是這個計畫的必備要素之一,而且第五期直接從 30hr 調整成 50hr 了XD 如果真的是零基礎,基本上一定要全職學習才有機會

所以自己會希望把課綱的內容都盡量看完,作業的內容也做好做滿,包含挑戰題。不過自己也沒有完全做完就是了。

挑戰題有些難度真的滿高的,沒有做完也沒有關係XD

有稍微談一下測試相關的東西,記得好像是有哪幾種測試,還有一點的 Jest,不過後面似乎到 20 幾週 react 檔案架構才有提到,覺得中間可以適度的加一些簡單的測試,還有測試相關的概念?

後來沒有提到是因為課綱其實東西已經很多了,如果多加一個測試其實沒有地方可以塞,這其實也是課程規劃困難的地方之一,那就是到底要放哪些東西進來,然後哪些東西是可以暫時不用放的。測試就是我覺得可以稍微提到,但在這個階段可以先不需要深入學習的主題。

因為第一次碰 Linux,而且蠻多要設定的東西,雖然有影片帶著做,可是就是常常會有遇到很多問題。自己印象中有遇到的像是 防火牆沒開(可能是 ufw 或者是 AWS 的 SG)、SQL 的帳號權限、Linux 的資料夾權限這些。在想可以弄個 checklist,把一些 FAQ 寫下來做對照還有處理。不過 FAQ 的詳細程度可能是個問題,要抓到不會透露太多可是又可以給到方向的程度。

checklist 這個想法好像滿不錯的,有滿多同學也提到部署的時候真的是滿麻煩而且問題滿多,這我再想一下怎麼辦

這個是 4th 新增的內容,雖然課程內容不多但我覺得超棒,直接竄升心目中 MTR 精華之一。除了 coding 以外,也要解一下產品開發流程,不過覺得可以拉到 week 17, 18 之前,覺得整個 week17, week18 完成餐廳網站是一個比較大的作業,把 week 19 的內容拉到 week17 跟 week18 或許可以照個之前餐廳作業的輪廓試著寫一份 spec 還有開 ticket,不然 week19 直接幫自己的 final project 開需求其實有點茫然。

這個建議聽起來不錯,先學 week19 的東西然後再用裡面的東西寫一份 spec 給 week17.18

第五期覺得可以提醒同學可以把問題打在 PR 上面或者是直接 comment 在 code 裡面,可能像是:

這建議很不錯,CC @ClayGao

還有想許願說如果有像是標記 #21345 能夠連結到某篇心得的功能就太好了,整個進度報告應該會有趣很多。

想了一下我也覺得滿有趣,但實際上好像不太好做XDD 所以只能先算了QQ

本來對於課程應該是有很多想法的,以為可以打個好幾萬字,後來發現比想像的還要少很多。可能是時間太趕了吧,馬上又要回營區了。而且後來看看好像打的有點流水帳,入伍後覺得動腦越來越慢,組織語言變得有點辛苦。

我覺得已經提供很多想法了,相當感謝!到時候退伍會需要一些時間讓自己回歸成一般人(?)的思考以及生活模式,先預祝你之後求職順利啦!