大家好,在學習code的過程中,發現常常會提到數學概念,因為我本身是文組學生,對數學有點不熟…目前主要是學習網站/APP開發,以及Python共學中,想請問有推薦的數學課程,並且與這些主題做連結的嗎?好作進一步參考加強,謝謝。
提供我個人的看法,就我自己認知,我覺得基礎數學其實對一般 coding 已經足夠,如有特殊的運算,再針對個別的需求去學習,比方說你想用於股票的預測,或許你就得去了解 k線圖是如何得出來的,但這其中,如真要說很重要的數學觀念,我覺得應該要推演算法,知道與不知道,會使得你解題的邏輯,有不同思維,而我本身也沒學過演算法,也是買了一些書在邊學邊實作,因為我也不是資訊科班的,有一本演算法學習相關的,我先前也有買,而且蠻淺顯的入門書可以推薦,就是演算法圖鑑,這本書以圖為主,再配合一些文字解說,幫助我建立一些演算法的邏輯概念,或許對你也能提供一些幫助,書本的介紹,可以參考這個連結:演算法圖鑑【全新增訂版】線上看,實用書線上看 | BOOK☆WALKER 台灣漫讀 / 電子書平台
舉個有點有趣的實例,前一陣子跟一些好同學共學 Python,才上過 Lru Cache 概念(關於 Lru 概念可參考這篇說明),結果工作上(我本質是 C# 碼農),遇到同事刁難既要馬跑,又要馬不吃草,想要加一堆檢核,卻又想要程式的反應速度不受影響,正好那陣子共學上過 Python 版的 Lru Cache,因此依照相同概念,立馬複刻了 C# 版的 Lru Cache Class 出來,真的是做到了,在最低影響下,利用快取概念,來加速程式執行,當下也對 Lru Cache 這個機制更加的了解,試想,如果我們沒有學過這類演算法概念,那麼就不會想要用這樣的方式來解決問題,結果有可能,本來可以很快解決的,就得繞遠路找別的方法解,相關的故事,其實還很多,推個我很喜歡的網路程式部落客 - 暗黑執行緒的文章,比方說這篇: 演算法作業好朋友 - BigInteger,從這些例子來看,你就會知道,懂不懂演算法,對程式開發的人的影響有多大,學好演算法,你的程式人生才會是彩色的,呵呵~
幾個之前論壇相關主題的文章請參考:
謝謝sky大,這裡的學習資源真是太豐富啦!!數學真是博大精深的學問,可能性太多了,看來還是得先自己想清楚想往哪個方向發展,要培養哪些技能樹才好。
謝謝Chris大,很有意思的例子!有時跨域的連結,就能激發出不同的概念方案。不同的程式目的,學習需求也會不同,所以我可能得先搞清楚自己的方向。不過,為了程式人生是彩色的,也要多多認識一下演算法了哈哈~(先把書本準備起來了!
可以參考一下資工系的看法:
演算法的部分其實Chris兄都講得差不多了,一般開發人員需要的大概就演算法相關的知識,因為這會直接影響到寫出來的程式的性能。
如果要往AI方向發展,雖然不需要太多數學也有機會過得好好的(畢竟現在工具多的是,用不到數學的開發工作應該還是很多),但作為一個應數系出來的學生,我始終認為在這領域,懂數學的人在工作時的上限會比不懂的人高上很多,畢竟不懂數學的話,就算是玩套件也很容易像瞎子摸象一樣在那亂試。至於AI領域主要需要的數學大概就微積分、線性代數、機率與統計這三科,課程的部分可以參考這篇投票裡第一項所提供的連結(機率與統計的課程尚未發布) 2024 資料科學課程共學的候選清單與共學意願調查(可投票) 。
但上面的共學主要還是針對機器學習和深度學習領域的基礎數學,如果是單純的數據分析,可能要把重心放在機率與統計,然後再加上一點微積分的基礎。但我不是統計專業的無法提供太多專業建議。去年我是因為出於對貝氏統計的好奇心開了一個貝氏統計的共學 【共筆】貝氏統計:進度、筆記和錄影 ,裡面的一些資源也可以參考
這樣看起來,可以先從演算法和機率統計著手。我自己是對資料分析和AI有興趣,但也是要花時間從基礎慢慢練,尤其是邏輯概念清楚,真的影響很大。(從來沒想過高中畢業後,還要再接觸數學哈哈哈)修行的路還很長遠啊,一步一步來!
數學其實就是個當你需要用到它的時候才會發現多有用的科目。我讀應數系的前面2.5年比較混,也不知道學這些到底可以幹嘛,但等接觸到機器學習後才後悔以前沒認真學數學,讓我直到現在都還要持續花時間去複習。不過對現在的我而言已經能去享受學習數學的過程了,畢竟在AI領域打滾到一定程度,就比較能把數學當作一種語言或是藝術來看待。