抱持著重開機的心情,我開始了我的第一堂課。
一開始是學員自我介紹跟課程講解。
稍微帶了一下程式語言,跟設計的概念。
來貼一下,我們的課程規劃。
這是一個chapter 裡面上課的sln檔
扎實的課程規劃
這是半年的課程安排,老實說雖然有一點程式經驗,但是這樣的課程安排對一般人來說也是滿硬的。
大概的構想安排是,兩周換一個subject。一路從語言,console ,winform,DB,資料存取,元件設計。
然後進入專題發想,專題DB設計,接著就是第一次實作專注在Desktop的程式應用上面。
然後才是,翻成網頁端,行動端,那時候AZURE剛在推大概也只有帶個簡單概念跟儲存體應用,帳號申請老實說服務會真的用到的也不多啦。
在程式的學習上,我覺得跟數學滿像的,我一開始失誤的點也差不多。
一直有個傳言是說,課前預習課後複習,會讓你學習事半功倍。但是其實我是屬於那種上課專心聽就會很容易融入的,聽完之後要靠自己消化吸收整理複習。大概就是費曼那種學習法
但是我問過很多功課不錯的學生,它們都覺得費曼學習法對它們來說是這個"廢"跟這個"慢"。
總之,課前預習反而會讓我有種無法掌握節奏的感覺,反倒因為一開始是大家都從零開始,我自己反而會覺得進度有點慢,或是這段就pass過去了。
課堂一開始,是講解程式語言使用方法,包含高階語言,然後是逐行執行,還有DLL的概念。
到這階段其實,書上都看過了,所以就會有一種想要快點到IDE的感覺。在寫出第一個HELLO WORLD的時候也覺得恩好像有點掌握方法了。
殊不知,使用方法都很簡單,開始走向自己訂製方法的時候,在型別問題上跟,流程控制上,要去習慣跟進入程式的邏輯。
主要也是當初沒有很多OO的概念,所以像是抽成共用跟一些SOLID應用上面都不是很了解,所以也不會實際應用在coding上。
所有的coding方法,就只是一個抄寫練習而已,不是真的從我手寫我心,實際操作過程中,我又是那種想知道為什麼之後才下手的人。
越想搞懂,越花時間,就跟練習數學一樣,還沒找到我可以理解的方式之前,學習的速度都特別的慢跟難以掌握。
調用內建方法的時候,為什麼會跳紅色毛毛蟲? 其實是因為傳入型別不對,為什麼這段要這樣寫呢?
還有很多本科系的常識,其實對我們來說算是知識,資源上的不同,CLI界面的很多指令,還有多細節都要回去自己再研究。
不過III好處是可以留下來晚自習,跟周末借教室,所以我們每天幾乎是 八點~下午六點10小時。
吃過晚餐後又再繼續到十點在三小時,一天幾乎最少也是12小時,周末還可以再借教室。
在拔除了某些壞習慣後,總算是有慢慢進入狀況,主要的差異點是,在辛辛苦苦努力的追趕敲鍵盤的時候
其實沒有多餘得心力去思考,我現在這樣的流程對或是不對,因為光想著要把CODE打對,不會跳出紅線這樣。
很長一段時間我對程式的想法一直偏向類似最近很紅的函數式語言,大概因為我對程式的了解就是vba算接觸最久。
搜尋學習資料的時候也是一直各種函式,函式的出現。沒有編輯過自己的函示,都只是調用來達成自己的目的。
我犯了,我說的第二個錯誤,就是用自己過去習慣的觀點來看事情,而不是一片空白的去學習新的東西。
畢竟函數式的程式設計,大多數都是工作做好了拿來用,跟自己做出工具那個思考不在一個點上。
這也是我一開始會覺得水土不服的原因。
一開始覺得,「宣告,我知道啊 在vba 就是DIM 宣告一個東西,把底下函式處理好的東西指派給他或著它可在做操作這樣嘛」。
但是,跟只要把東西丟進去不同,這是一個從玩筷子槍,到自己做一把筷子槍的概念。
但所幸,雖然起頭跌跌撞撞到視窗的時候多少也跟上進度了,甚至是到元件開發的,這個部分帶的是OO的精髓,繼承跟多型。
也就是會有抽象,虛擬,介面,繼承跟實作這些,這個部份我就借用以前各種不同領域的經驗算是吸收不錯。
只是概念有,抽象也有,實作還是要等到遇上我後來的主管,才真正讓我豁然開朗。
我覺得我學習有一個很大的誤區在於,太習慣敲下去有回饋 Functional 的體驗太深刻。
就覺得我應該要得到程式應有相關的反饋這樣。
反而,忘記去想在這個方法中,我是如何靠著跟使用DLL提供的工具去對資料做編輯和轉型等等的功能。
總結起來就是我搞錯了學習的方向,我還是停留在,知道了夠多的API可以串出我自己要的東西。
但是忽略掉流程控制的這一塊,好不容易過了這關之後,接著迎接的是DB設計,資料正規化,還有UML的問題。
就好像你打遊戲一般,一關接著一關,ENDLESS STORY~~~
明天來說說DB的部分。