前言
我在國中時期開始大量買書來看,讓我快速奠基,也了解到很多事情。那個時期除了 FrontPage 外,也買了硬體裝修、Visual Basic、ASP(不是 .net)、RedHat Linux、資料庫等書,每一本書都有經過系統化的編排,也常常會講許多額外的知識,無形中可以學到超多東西,我真的很喜歡用讀書的方式來學習。
但閱讀學習也不是沒有缺點的哦,因為書籍撰寫還是會花時間,往往會跟不上業界的趨勢(資訊產業最常有這種問題,可能三秒就淘汰一個技術),但是作為基礎知識的打底、相關觀念的建立的話,我還是大推買書、看書。
因為資訊技術的迭代其實也只是就有技術的更新,觀念上都不會有太大的改變,當你對一件事情熟悉之後你要跨到另外一個同樣領域的新東西時不會耗費太多的時間,但我也不是叫你要讀過期十幾年的東西就是了 … 三五年內的東西都還是有很大的參考價值的。
最近也常看到一些廣告,說寫程式是必備的能力、國中小學要開始學寫程式之類的話題,認真覺得這件事情如果真的推動了,那應該會扼殺不少人對電腦的興趣吧?(哈哈)
我不認為每個人都應該要學寫程式,畢竟每個人都有自己專長的地方,有的人擅長設計、有的人擅長經營、有的人擅長管理。 但我也覺得寫程式是一個培養的興趣,也是訓練自己透過不同方式去思考的一種方法,如果說要把寫程式編入學校課程並且要作為考試成績的話,我倒覺得是萬萬不可的就是。
在本站
第一篇文章中我就有提過我是一個碼農,從第一次開始寫程式到現在也已經有二十年左右(從國中到現在),而我究竟是怎樣自學而成的呢?
今天就來跟大家分享一下自己過去學習的途徑,好好地來談一談,希望也是對大家能有所幫助呢!
第一種: 學校課程
在學校學習應該是很多高中職生或資訊相關科系的五專生或大學生會遇到的事情了(當然我相信也是很多學生想逃避的事情)。
以前在讀高中的時候,高一電腦課會教 Visual Basic 來大致了解怎麼寫程式,科展與同學合寫一個計算機來參展,算是一個很特別的體驗。
大學的時候就開始接觸更多種不同類型的程式語言,譬如 C / Java 等等的,可以說蠻多人接觸寫程式的第一關應該就是透過學校的教育來進行學習。
而如果你是已經出社會的人,其實在職專班也是會有相關的課程,不嫌麻煩的話可以將在職專班列為是一個學習的途徑。
第二種: 網路文章搜集
在那個部落格還沒盛行的年代,網路上其實就已經有相當多的學習資源可以看,就像是學習 Linux 必看「鳥哥的 Linux」一樣,在網路上搜尋你想學習的程式語言名稱就可以得到相當多的教學文章,像是「良葛格學習筆記」這樣的網站。
而在部落格如雨後春筍冒出來之後,分享技術文章的人就越來越多了,大家也更能夠透過搜尋找到自己想學習的資源或片段。
再來就是到了有IThome 鐵人賽、Stackoverflow 的時代,越來越多創作與疑難雜症問答的資源出現,網路搜集相關學習資源就越來越方便了。
第三種: 線上課程學習
最近這幾年開始興起了一陣線上學習風,尤其是疫情之後更是促使各類領域的課程都紛紛搬到網路上進行販售、教育,有一點線上補習班的感覺。
現在也有很多線上課程平臺可以學習,我自己將其分為「學校」與「私塾」兩種類型
學校
這類的線上課程平臺,他們提供某(些)個領域的主題,邀請講師上傳他們的課程內容並且協助進行販售,這樣的平臺我認定是屬於線上學校
常見的平臺有
私塾
這類型就會是一些人自己出來透過一些平臺(像是 Teachable / YouTube / Medium ) 放上自己製作的課程影片或文章,提供他人付費閱覽,這樣「老師」自己出來開的就是被我歸類為私塾
私塾類型的就像有
- 阿謙的 258 學院 – 規劃籌備中,有興趣的歡迎留言聊聊
- 慢活夫妻的理財課程 – (舉例一下)
第四種: 電腦補習班或家教
我想這個類型的大家應該就熟悉多了吧,像是聯成電腦、巨匠電腦、資策會等等專業的資訊能力補習單位,通常會由業界的老師過來比較有系統化的方式授課,並且輔導進行證照考取或就業等。
有時候也可以在某某家教網上看到短期的程式家教,不管是一對一或一對多都是有的。
這類型的學習管道也是可以參考一下,通常會比學校教育要再來得有深度一點(尤其是家教部分或是小班制的授課單位),也會比較貼近當前業界可能會需要的知識(尤其是現在軟體設計進步得非常快,有時候學校教的東西都會比業界再落後個幾年都是正常的)。
第五種: 看書
回想當初我也是透過看書才開始接觸到電腦這個世界,小時候我家裡是沒有電腦的,對電腦的認知也只有去電腦展看看、學校電腦課摸摸、同學家玩遊戲碰碰才會有機會學習到,還記得曾經我的親戚跟我說他按下「Enter」鍵把遊戲中的狗狗踢出去的時候,我還轉頭問我媽什麼是 Enter 鍵呢(但重點應該是不要欺負狗狗才對,這在多年之後我才發現到我當初怎麼會重點錯了)
而後因緣際會下我買到一本電腦套書之後發現原來電腦其實是很簡單的東西,照著書就可以做出一樣的事情,我就央求我媽幫我買了一部電腦(也剛好要上國中了),開啟了我這個爆肝的人生之路。
國一的時候,請我媽帶我到金石堂買了一本微軟出版社(現在還有人知道這間出版社嗎)出版的 Front Page 2000 的書,從此與網頁設計結下不解之緣,後面還經過了什麼我們下一篇再談。
總之,我的網站開發與軟體開發人生可以說與看書是完全脫不了關係,而且比起電子書我更喜歡看實體書,所以我真的十分推薦每個人都可以從看書入門,開始學習如何程式設計!
學習迷思
在以前流傳著一句話,寫程式的人必須要英文與數學很好,這究竟是真的嗎?不妨來談談這個迷思。
其實我覺得這件事情在早期來說是因為使用電腦的人大多是數學相關科系的學生為了要跑實驗數據或什麼的,透過寫程式來達成他們的目的,而造成大家對寫軟體這件事有了一個錯誤的認知。
當然我們就英文與數學兩件事分別來探討可以知道這兩個如果都擅長會有多吃香,但不代表一定這兩個都要掌握多少才能寫程式,其實寫程式是任何一個人都可以做到的哦!
迷思一: 英文要好
大家應該都知道電腦不是臺灣的產物吧? 國外發展資訊技術的時間非常地久,很多相關新的技術也大多是英語系國家的人發展出來的,所以有蠻多新的技術都是透過英文來發表的。
又或者,很多人都會在實作技術(譬如做網頁、寫 App)的過程中遇到過一些困難,有些人就會將這個解決問題的過程寫下來,通常也大多是英文居多,又或者是在 Stackoverflow 等問題解決平臺上分享。
所以如果今天有著基本的英文讀寫能力的話,在學習新的技術或者找尋卡很久問題的解決辦法時,可以不只有翻找亞洲語系的文件,能直接閱讀更多國家的開發者(程式工程師)提供的新聞、解決思路。
迷思二: 數學要好
以前流傳著一句話:「程式設計 = 資料結構 + 演算法」
資料結構是我們如何設計一個儲存資料的架構,用來做運算或是交換;演算法就是如何透過一些數學的方式來減少程式執行的時間或者指令,進而加速程式的運作效率。
數學好的確在演算法上面會比較吃香,但其實數學不好也還是可以寫程式,雖然會比較辛苦一點,而且會建議要再花點時間練習數學,不過我也是有認識的人以前數學考零分,程式也是寫得很不錯!
迷思總結
所以如果當你想學習寫程式但再遇到有人這樣跟你說的話,你可以選擇忽略、也可以選擇回答他我上面說的東西。 這兩個能力好有很大的加分,但並不影響你在學習或者實際開發程式上面哦!
總結
如果真的是想自學寫程式的話,這邊再簡單做個總結
- 透過學校教育 – 五專或大學資訊相關科系的課程
- 透過網路資源 – 像是良葛格筆記
- 透過線上課程 – 像是 Hahow、Udemy
- 透過補習班 – 像是巨匠電腦、聯成電腦之類
- 透過閱讀 – 是我最推薦的入門方法,直到現在我都還會這樣做
有任何其他方法也歡迎留言告訴我唷~