# 網站開發學習之路(1) ###### tags: `ALPHAcamp` `Javascript` `CSS` <br> >**撰文動機**: >記錄自學程式,參與線上課程與ALPHAcamp的心得。 >**撰文對象**: >嘗試自學程式或網站開發,但還不確定方向。以及**想了解Alphacamp課程**的人。 <br> **本文目錄** [ToC] <br> ## 個人背景與轉職動機(簡述) 轉職成為軟體工程師?為何會走到這一步呢? 簡單來說是因為喜歡「聽音樂」,我過去一直很想要從事與音樂相關的工作,在欠缺靠音樂吃飯的才能下,我前後從事[音響雜誌編輯](https://batonproject.com/2018/04/18/audio-magazine-editor/)和[音響門市店長](https://www.cakeresume.com/portfolios/bowers-wilkins)的工作。加總起來有6年經歷。這兩份工作使我成長許多,其中包括對音樂重播工具與音樂製作品質的品評能力,也對數位音樂的發展有一定程度的認識,當然在業務能力、文編、影像編輯、行銷也有一些經驗。 然而音響業一直是蠻封閉的領域,它在三四十年前曾發展得很蓬勃,直到21世紀初mp3開始流行後,市場逐漸出現了變化,變化到大多數的音響品牌跟不上潮流,現在除了少數知名品牌,大多的中小企業都已經歇業。在我進到這個領域時,已經是夕陽產業了。(大陸倒還發展得蠻火熱的) **而音樂產業仍是蓬勃發展。** 聽音樂的人並沒有減少,只是市場隨著科技的進步變了。為了更認識這個市場,我決定離開音響領域行業,希望以軟體工程師的身份,進到自己喜歡的產業。深化自己的興趣和專長,並在該產業有所建樹。 ## 體驗:Udemy、Laracasts 我先從線上課程開始認識語言,了解到網站從無到有的過程,第一步是先從php開始學起。後來開始接觸SQL、html和CSS,近期才藉著Alphacamp接觸到Javascript。 先說我有實際參與的課程: <br> ### **Udemy課程** ![](https://i.imgur.com/kZ9Vh4y.png) - Php for Beginners - Become a PHP Master -CMS Project >這個課程主要是利用PHP和MySQL做出內容管理系統,是Udemy的暢銷課程,評價看起來很好,但我不建議從頭跟到尾,挑重點看就好。 >主要原因是現在大多數由原生PHP開發出來的網站都很老舊。現在大多數的新創PHP網站都會使用到框架,市面上也有其他完善的CMS系統(如Wordpress)。而此課程還是用傳統方式在寫code,課程內容和講解方式也非常鬆散。無法實際在業界使用。 > >這堂課唯一的優點是便宜(但浪費時間),講師也蠻熱心回答課程相關問題。 <br> ![](https://i.imgur.com/OIXzFdO.png) - The Complete 2020 Web Development Bootcamp >這門課程的CP值應該算是Udemy數一數二高的,內容十分全面且豐富(看課程簡介便知),導師的英文口音聽起來很舒服,也有許多實作挑戰供學員練習。如果想入門前端和一部分後端的開發,這門課很適合初學者作為學習主軸。 > 目前我的學習主軸是Alphacamp課程,此門便成為次要的補充教材。 <br> ![](https://i.imgur.com/1gSQMSB.png) - JS: Understanding the Weird Parts >選這門課的原因是為了加深對Javascript的掌握。畢竟Javascript是弱型態語言,若不夠了解JS,可能會遇到很多疑問和挫折。影片中基本上談得深入淺出,但建議已經有點基礎的人來看,以免有看沒有懂,甚至會錯意。此門也是我的補充教材。 <br> ### **Laracasts課程** ![](https://i.imgur.com/w15nqU3.png) - The PHP Practitioner >Laravel是我第一個接觸的語言框架,而Laracasts是此框架的官方教學網站,在實際接觸到Laravel之前,我按著Laracasts的推薦先上這門特別的課,課程中的講師用原生PHP,一開始先說明一些基本的程式語法、以及基本的資料庫語言,後段便從無到有寫出一個MVC架構,加深我對框架的印象。另外講師Jeffrey的程式碼相當簡潔,教學節奏明快,經常需要暫停/重看才跟得上進度。 >由於我PHP的基本功還不夠深,對開發環境也很陌生,因此這門課令我卡蠻久的,不一定能夠理解每個環節,對在開發環境的設定也感到苦手。但仍是值得完成它。 <br> ![](https://i.imgur.com/jsBVumd.png) - Laravel From Scratch >相較於The PHP Practitioner,這門課相對起來較簡單,基本上照著做就可以學會怎麼使用Laravel,課程尾端還教人怎麼做Tweeter Clone。 上述兩堂Laracasts都是免費的,要付款購買會員才能夠看其他課程。而Laracasts不僅提供PHP和Laravel教學,也有其他主題(見下圖)。這應該是我未來主要的學習平台。目標是用Laravel架一個自己的部落格,並完善功能和使用介面。 ![](https://i.imgur.com/JRBJBbC.png) <br> ## 進一步體驗:ALPHAcamp ![](https://i.imgur.com/rHAguND.png) 我從八月中開始上Alphacamp(以下簡稱AC)的課程,目前正要進行第二學期的課程。前面有提到AC是我目前學習的主要平台,最初我是抱著體驗的心態來上課,實際上收穫不少。以下列舉幾點AC的特點: ### 一、學習教練與助教 自學者最大的阻礙,應該就是自身惰性(至少以我個人來說)。會讓人以為跟著影片學就會算懂了,而不會主動去練習,或是去做side project。在AC的學習平台中,每週都會有進度和作業要求,經過三周的體驗,我認為AC的課程內容強度剛好,不會難到令人囫圇吞棗,也不會簡單到枯燥乏味,尤其是實作這塊,有助教的回饋真的感覺滿踏實的。 舉例來說:助教會針對我的作業做批改: :::info ![](https://i.imgur.com/LHQG1xt.png) ::: 儘管的程式碼功能正常,但同時也會要求學員==花心思提高程式的易讀性==,包含找出==適合的變數命名==,==減少重覆的邏輯==、==縮小迴圈次數==。這是我在其他線上課程較難接觸到的部分。 <br> ### 二、教學內容規劃和編排 AC在第一學期的內容規劃注重「認識程式語言」,目的是讓學員粗淺體驗一下自己是否喜歡寫程式,因此課程規劃 **著重在觀念引導、練習工具上手、基本語法介紹,以及實作練習。** 上述幾個方向會按照預估學習時間和強度做編排。整體來說,AC的學期一課程比較像是通識課。 對於像我這種非本科要轉職的人來說,在寫程式前學會一些資工方面的素養蠻重要,比如說,**課程中有提演算法,實作程式碼之前,會要求學員先用撰寫虛擬碼統整邏輯,然後再去實作程式碼。** 網頁視覺部分,則先讓學員練習使用DevTools和繪製Wireframe,了解如何用Html拆解網頁設計圖的架構。再用CSS完成網頁的視覺設計。不得不說這樣的規劃,很能幫助學員獲得成就感。 認識到AC的課程規劃後,對我來說Udemy、Udacity之類的線上課程網站,會更適合學習目的更明確的學員,因為他們知道自己還缺哪一項專業,上課是為了補充自己的專業知識。畢竟初學者大多都沒有什麼方向,連自己要往後端或前端學習都拿不定主意。 <br> ### 三、工作坊和講座 學期一有兩次工作坊,分為「開學工作坊」和「前端基礎工作坊」。 「開學工作坊」著重在說明課程規劃,也會帶學員用Jacascript寫小程式,會後也有作業供學員挑戰。問問題也有助教回答,覺得很用心。 :::info ![](https://i.imgur.com/ueuxHLi.png) ::: 第二次工作坊的感受比較普通,雖然有帶學員實作,但感覺是課程規劃中就可以講解的事情,不太需要特別開工作坊。表單裡面填寫的意見也沒有得到回饋,會後提交的作業也沒有獲得批改。我比較期待的是在工作坊中學到一些**自己上網google也很難領會的事情**。否則我寧願把時間拿來自學。再快速瀏覽一下會後紀錄。 最後是講座部分,學期一當中有邀請到一位物理博士來分享她的創業歷程。但因為有事情排不開只聽了一半,會後沒有提供影片給同學複習,算是滿可惜的。 第二次工作坊課後練習: <iframe height="318" style="width: 100%;" scrolling="no" title="FE webinar_Intro_tourist_Hero Page_initial" src="https://codepen.io/zyrxdkoz/embed/LYNzLzQ?height=318&theme-id=dark&default-tab=css,result" frameborder="no" loading="lazy" allowtransparency="true" allowfullscreen="true"> See the Pen <a href='https://codepen.io/zyrxdkoz/pen/LYNzLzQ'>FE webinar_Intro_tourist_Hero Page_initial</a> by 陳馨右 (<a href='https://codepen.io/zyrxdkoz'>@zyrxdkoz</a>) on <a href='https://codepen.io'>CodePen</a>. </iframe> <br><br> ### 四、學期一心得(小結) 學期一的課程費用是3000元,單就CP值來說,我覺得很值得參加AC規劃的課程。初學者能夠藉著這堂課,了解到心態上哪裡還沒有預備好(你真的想做軟體工程師嗎?),除此之外也會更認識自己的特質(適合前端工作或後端?) 對於在全時間預備轉職,而且有一點基礎的人來說,AC這堂課可以稍微感受一下不一樣的課程規劃,來反思自己的自學規劃有沒有需要調整。對本身有正職工作的學員來說,學期一課程的Loading也不重,如果趕不上進度,也有重讀機會。 目前我已經報名學期2-1,大致上看了一下課程規劃,整體強度和內容比學期一稍硬一些,很期待未來一個月的學習。 <br> ## 下一步:前端或後端? 回到一開始的轉職目標:希望進到自己喜歡的產業。 我喜歡什麼產業呢?基本上跟音樂相關的都是我努力的目標。包括Streaming、Podcast,為何要這麼執著?畢竟過去努力了好幾年,寫了幾十萬字的音響評測,內含大量的聆聽心得,在門市店長的工作中,也更認識市場,以及培養出業務技巧。**而我清楚知道這些經驗要轉換成價值,需要有紮實的技術才能夠實現。這是我的長期目標。** **中期目標**呢?希望我能夠成為一位合格的工程師,是有潛力而值得培養的轉職者。從前端到後端相關領域都有概念,並且在其中一塊較為專精許多。也能夠理解比較深入的程式語言概念。 最後是**短期目標**:完成一到兩件Side Project,一個是能夠播放串流音樂的網頁,另一個是部落格。接著,成功找到工作。然而要完成短期目標,取得自己的作品集之前,這代表我必須能夠串連前後端技能,但實際上我該怎麼分配學習前後端的比重呢?找工作的方向該以前端或後端為主? 相信當我完成學期2課程,會對前後端的發展方向更有想法。屆時會另外寫一篇文章,說明我怎麼釐清方向,以及過程中的掙扎。 <br> <br> <font color="salmon">**最後用一段經文鼓勵自己:**</font> <font color="gray">那賜諸般恩典的神曾在基督裡召你們,得享他永遠的榮耀,等你們暫受苦難之後,必要親自成全你們,堅固你們,賜力量給你們。彼得前書 5:10</font>