Swift 中繼站 — 邁向 Episode 100 前的心路歷程

驀然回首,才驚覺我已完成一幅 Swift 上河圖

回顧半年前,我還在為了第一篇自我介紹想到三更半夜,點進去可以發現花不到 30 秒即可讀完,而且營養價值極低,那時候的我應該也不會料到自己會堅持那麼久。雖然花了半年,但始終沒有停下腳步紀錄自己學習到的一切,就這樣默默的要來迎接 Swift 第 100 篇,心裡著實充斥著成就感。

這次來稍微認真地分享自己在這半年中的學習心得吧

Swift 在走、彼得要有

轉角遇彼得

會來逛我文章的基本上都是上面那位彼得大大帶大的孩子吧,如果有學過 Swift 然後沒聽過彼得潘的我會先笑他然後叫他來上課!

當初我是先透過某網站自學 SwiftUI,那時還不知道這是相對 UIKit 新的開發工具,學起來也是有點辛苦。有時網站上寫得很棒,可是卻沒想到學習者如我是一個腦筋沒辦法轉很快的人,遇到資訊文言文時就得谷歌一下。幾個禮拜爬文下來發現有一個人物很常被我搜尋到,那就是彼得。

我發現他很風趣,會用一些故事的方式解釋那些艱深的文言文,有時看到一半還會笑出來。我就發覺,這不正是我想要的嗎?會講笑話,又能同時解釋其中的道理,讓人學得輕鬆、學得有效。

進入 Wonderland

不得不說這就是彼得貼心的地方了,他深知不是只有數學好的人才會學程式,很多文組出生的人也會想要嘗試學習程式,就開放一個文組班讓文學生們也可以輕鬆學習程式語言。雖然報名前已經有自學一些程式語言基礎,當然我還是先選擇了文組班,因為我知道自己一定還有漏掉什麼,腳踏實地最重要。

看盤看到綠色時會哭、作業看到綠色時會笑

上彼得的課很輕鬆,上課時有多時間都可以笑出來,因為彼得對蘋果極端的熱愛造就他很多課堂冷笑話。但在第一次看到作業區就笑不出來了,這個不成比例的上課時數跟作業數量是發生什麼事,我一開始也是在懷疑人生中。但我也是默默地一直做,每次完成一篇文章後勾選完成作業是我最開心的時候,因為那代表我又成功吸收到新的東西了。尤其是像上面那樣出現綠色框代表全部完成,這時就要開一支酒來慶祝了。

亦師亦友、隨問就有

到底誰說世上沒有貼心的男人,這裡明明就有一個。彼得時而會鼓勵大家的作品,時而會幫大家解決問題,甚至會主動幫大家整理就業機會,這不是好男人還有什麼是好男人。每次彼得的鼓勵都是我做下一篇文章的其中動力,不知道那是什麼感覺的話報名就對了。

我的程式學習心態

建立目標、也要實踐目標

這段話看似廢話,但真的是在製作專案時的重要指標之一。我之前是個老師,很喜歡用遊戲的方式呈現課程,每次構想遊戲時都會需要明確的目標,才能成功呈現自己當初想像的內容。做專案也是,沒有一個明確目標而是中途才加入新的想法會寫得比較辛苦,且呈現出來的樣子也會不如預期。

上面這個目標是四則運算的遊戲呈現,所以一提到遊戲我眼睛就一亮,很快地就想到主題跟規則。雖然整個製作花了將近三天但過程我是覺得很享受的,即便一度因為一些邏輯或幾何問題卡很久,也沒有澆熄我想好好完成這項小專案的心。

而上面原本的目標是座標轉換,急於想要創作,忽略了練習的本質,導致作品完成後我不覺得有所成就。我一看到座標又想跟尋寶遊戲做結合,但沒有規劃直接下手導致喪失了創作的熱忱及基本練習,變得一心只想趕快完成這項作業,別說沒實踐了,連原本的目標也消逝了。雖然好像只花一天就交作業但成就感為零。

不要怕錯,更要喜歡錯誤

不怕滿江紅、只怕看不懂

這樣講好像有點誇張,不是說故意犯錯的那種喜歡錯誤,而是看到錯誤有種看到救星的感覺,因為它讓你看到你的不足

之前跟一個工程師朋友也稍微聊到這塊,他說:“我如果一次就寫成功我會嚇死,反而看到錯誤我才會安心”。 我也是從他那番話得到了驗證,錯了不可怕,再找再問就好,可怕的是它不告訴你哪裡有錯但其實有潛在問題。

我這個人其實超沒耐心,一有不順就會不耐煩,錯好幾次基本敲鍵盤。但每每快要發生或已經發生這些愚蠢的事時我會告訴自己,我只是還沒找到而已,沒什麼,大不了就問別人而已。現在我看到錯誤有時還會說 “謝囉”,然後循著他的提示去除蟲。

相信自己、腳踏實地

人外有人、天外有天

活在這世上勢必是會有比較的,每次看到大神學長姐很厲害的新專案或令人讚嘆的寫法,我就會覺得自己還很嫩。以前的我一定就會說:“啊他們這麼早學而且各個高學歷理所當然啦,我也懶得做了”。 現在的我會先回到過去揍以前的自己一拳然後跟他說:“寫就對了,你也做得到。但要好好吸收,不要好高騖遠”,然後再回到我的時空。

其實學習都是如此,但對我來說,學程式更要腳踏實地。因為一個功能或概念如果沒有駕輕就熟,根本無法在未來的專案上伸縮自如地應用。要不然我寧可先跳過也不要一知半解,先累積其他功力再記得回來補齊就好。

適時休息、適時陪伴

我自己在卡住問題或是很專注在寫的時候都會忘記時間,就是一定要完成到一個進度或者是想出解答才肯起身。久而久之自己也發現這樣蠻不健康的,一天一半以上的時間都盯者手機或電腦,還坐著不動,腦袋也會越轉越慢。

轉換心情投個球,偶爾也會投出想法

我發現換一個環境可以有一定的機會在短時間獲得解答或達到新進度。我很常腦力透支時去洗澡,稍微泡個澡就會靈光一閃,而且會很興奮地去驗證剛剛的想法,十之八九都會成功。聽說不是所有事情都是坐在電腦前面才能完成的,這句話我收下了。

妳過得還好嗎?

或者可以去找家人朋友聊個天,也當作是彌補認真 Coding 而犧牲的陪伴時光,會特別提到這個是因為一個月前最愛的狗妹妹離開了。我有時會特別到外面寫程式因為待在家太悶了,但相對休息時間時沒辦法陪她玩。結果她某次生了一場重病走了,我廢了兩個多禮拜才好好重新振作繼續寫。

在這之後

當然還沒結束啊,連工作都還沒開始找呢 XD。先來預告第 100 篇會是訂飲料 App,能夠在下禮拜完成最好,這樣學弟妹才能喝到天仁茗茶,沒用的話大不了我自己訂?

學海無涯、先從重點做起

原本預期就是想把彼得潘出的作業做完,但發現目前這個想法難如登天。先把短期的幾個重點作業完成,再來開始準備面試的事項。一方面興奮一方面緊張,畢竟對我來說是個全新的領域,即便我已經幾接觸應該超過半年的時間了,但想到要搬到實戰上應用又是另外一回事。

一樣吧,穩扎穩打,沒工作的我目前也只能這樣了。欲速則不達,還不如好好寫。以下都歡迎大家一起討論有關程式的東西,互相成長,有留必回,有求必應。

公開 LINE ID :08785208

誠徵 Swift 友

--

--