ALPHA Camp 網路實戰營第三期感想

Zen Yi
4 min readJul 15, 2019

--

產品從無到有的過程

前言

這個學期的目標,是運用各種知識技能,打造可以部屬在雲端並兼具前、後端與資料庫的網路應用程式,難度明顯有所提升,但學習完後的成就感更是讓人雀躍不已,更令人印象深刻的事,這次的課程內容除了輔以大量的文字解說之外,也包含了許多支程式演練的影片教學,講師們深入淺出的講解,讓我在學習的過程中獲益良多,接下來容我分享這數周的經歷。

八周學習之旅

Week-1

在撰寫程式碼之前,基本觀念的了解,以及知悉開發過程的會上手的工具,能夠對產品開發起到相當大的助力,第一週的內容,主要讓我們對網路的運作有著基礎的知識,並知曉 route 系統和 MVC 軟體設計模式在網路框架裡的作用,接著用終端機進行 Node.js 的環境建置,設立本地伺服器,再利用 Express 這個極輕量化的網路框架 (web framework),完成一個簡易的 web app,學習內容相當的豐富,讓人目不暇給,但成就感也相當令人愉悅。

Week-2

校長曾特別強調寫程式過程中刻意練習的重要性,是個非常實用的作法,第二週學習依舊是持續使用 Express 來完成新的小作品,讓我對框架應用更為的熟捻,特別讓人有體會。

Week-3

這週一開始先溫習一下 Git 的基礎操作,並深入了解版本控制的邏輯,養成 commit 的好習慣,接著開始實作經典的 To-do List,整體的難度又 Level up 一個等級,從初始安裝 MongoDB 資料庫就遇到不少難題,幸運的事我誤打誤撞摸索出一個方法,接著是實作過程中如何利用好 Express Middleware、整體資料結構的定義、 CRUD 功能的達成……等等,這些層層關卡,都依依克服了過來,而在學習的過程中,熱心的助教們給予我很大的幫助,才能順利繳交出作品。

( 安裝 MongoDB 過程中,我把想到的方法寫成一篇文章,可參閱這篇 )

Week-4

第四週,更進一步強化 To-do List 的各個功能,整合 Bootstrap、Passport、Facebook API 等第三方工具,從美化前端頁面,再到使用著認證功能的建立,讓產品變得更完整,並利用目前所學的知識,來完成的一個餐廳清單。

Week-5

延續上週的 To-Do List,重構程式碼來優化產品,產品不是做出來就沒事了,後續的維護與改進也是十分要緊的事,此外這週還學習了有關網站佈署 Deployment 的知識,透過 Heroku 的平台服務來發佈完成的作品,十分的有趣,作業則是打造一個收支紀錄表。

Week-6

本週則是討論 JavaScript 的同步 (synchronous) 與非同步 (Asynchronous) 本質,對 JavaScript 有著更深入的理解,從 Callback Hell 的趣味波動拳圖的產生,ES6 Promise 物件來解決巢狀程式碼問題,再到 ES8 async/await 語法糖的出現,值得費心思去融會貫通。

Week-7

如果想成為一名後端工程師,一定要會設計與操作資料庫,第七週學習的內容著重在此,什麼是關聯式資料庫 ? 除了文字的知識之外,藉由繪製 ERD 圖,和 SQLzoo 的題庫,使我們對資料庫與 SQL 的語法結構更清楚明白。

Week-8

學會資料庫的相關知識後,再重新用 MySQL 重做 To-do List,學習 MySQL 資料庫的過程中,善用 Migrations、ORM 等資料庫管理技術,能大大的幫助專案完成,最後就是期末考的檢驗,高興的事我都穩當的通過了,為這學期八週的課程畫下一個不錯的句點。

職涯社群

ALPHA Camp 職涯社群給予我們學期三學員一個新的研究方向,對有興趣的產業進行調查,並整理成一篇文章,重點在對這個產業模模糊糊的印象開始,逐步摸索查找資料的過程中,進而形成相對完善的理解,是一個相當有意思活動,我把整理出的心得寫了出來,詳細的內容可點擊此處,希望能起到拋磚引玉的效果。

結語

工欲善其事,必先利其器,是我這八週學習中最深刻的體會,事前準備中良好的步驟計畫與妥善的環境建置,能讓我更專注於程式碼的撰寫,不必有後顧之憂,如何有效率的去完成一件工作,一直是我最感興趣的議題。

而這次學期三核心的課程,就像是一把鑰匙,讓我們推開打造產品這道真理之門,門後的種種精彩,則需特過持續不斷自我的精進,才能領會其中所蘊含的奧妙,冀望自己能夠在這無止境的探索中走得更遠,最後感謝看完這篇瑣碎心得的你,期待下篇文章再見。

--

--

Zen Yi

菜鳥軟體工程師 In Taiwan,原本是個數學教師,後來發現寫程式是很有挑戰性跟成就感的一件事,便一頭栽入了進去,喜愛獲取新的知識與資訊,期待自己能用通俗易懂的方式來講解程式疑難。