程式本科系學了什麼(四) - 演算法

更新 發佈閱讀 3 分鐘

如果還沒看前一篇的人,可以按下面連結去看上一篇文章

程式本科系學了什麼(三)

今天我們又回來講本科系的學生在學校學了什麼

除了大量個基本功之外,剩下的時間就是在學演算法

演算法這一個東西,是一種好玩、無聊、很難的課程

看到這裡一定有人會覺得奇怪,為什麼是又好玩又無聊?

會好玩的原因在於,在學演算法的過程中,會看到人類為了追求更快的電腦效,而想出各式各樣奇奇怪怪的方法去解,這時會覺得人類真的聰明阿

會無聊的原因在於,很多演算法最後有程式都包裝起來了

舉例來說,我們要將一串的資料從小排到大,演算法的課程會交各種奇怪的方式去加速,把資料從小排到大

然而真的在寫程式的時候,其實大部分的程式都有內建sort,這一個函數就已經使用了教科書上最快的方式幫你把資料從小排到大

所以會有一種,我學了這麼多的東西,結果真的要用用不到的感覺

至於難,演算法是真的很難,畢竟裡面牽扯一堆數學和電腦架構,還有一兩個是連數學都無法解釋經驗法則去計算

總而言之,演算法是本科系出來的人必備的知識

既然又難而且都有function把他們包起來了,那是不是就不需要會?

我還是會建議大家有機會可以看一下演算法

原因有三

有一些公司面試就是喜歡考研算法,特別是外商
你要先知道有這樣的演算法,才會知道有這樣的函數可以呼叫
遇到一些奇怪的情況,還是要親自下去寫這一些演算法

第一個原因我猜應該非常的好理解,很多公司就是喜歡考演算法

第二的原因是我遇過的碰到的,有一些非本科系的出生的工程師,因為沒有學過演算法的課程,根本就不知道有這樣的方法,就也不會也不知道關鍵字去搜尋這一些方法,就只能自己用很差的方式想辦法寫出來

舉裡來說,在開發一項功能的時候,使用圖論中的某一些演算法就可以將問題迎刃而解,然而開發者因為沒有學過圖論,所以就只能憑藉自己的想像寫了一堆的程式,先不說花了一堆時間,寫出來的東西漏洞百出而且效能很差

記得那時候,我就直接給他一些圖論的關鍵字重構之後,效能提升跟漏洞減少,然後還被當作偶像崇拜(有一點開心)

第三的原因也是我碰到的,有一些奇怪的情況之下,我們沒有辦法輕易地使用內建的方法,如果是開發一些新的功能,多多少少會這一件事情,所以這時候只能回去翻書,把教科書上的知識吸收之後再轉化,這時就會有一種書到用時方恨少的感概,或是為甚麼有一些知識還給了老師的悲痛

根據上述三個理由,我會建議對於非本科系的出生的工程師,有空去看一下演算法的書籍或是課程,至少當遇到問題的時候,才會知道還有這樣的方式可以解

最後,我知道演算法不好學,所以可以從以下的方式來學

  1. 要知道有這樣的方法
  2. 這一個方法可以達到怎樣的效果

這樣未來遇到問題,才會知道該怎麼辦

最後,喜歡我的文章,歡迎到FB粉絲頁 - 如峰小教室 按讚

我也會在FB粉絲頁中不時地發表一些小品的知識

留言
avatar-img
如峰小教室的沙龍
3會員
6內容數
作品和產品的區別,不只有程式工程師,PM和老闆更必須要知道,才能讓公司的運轉更加地順利。我們以前在學校寫的作業和練習,就是程式作品,如果用一個術語就是,程式作品是比最小可行性的產品還要再小,那產品比作品還要多注意甚麼東西呢? 讓我們在這一個專欄中一起來探討吧!
2022/11/02
作品和產品的區別,不只有程式工程師,PM和老闆更必須要知道,才能讓公司的運轉更加地順利 我們以前在學校寫的作業和練習,就是程式作品
2022/11/02
作品和產品的區別,不只有程式工程師,PM和老闆更必須要知道,才能讓公司的運轉更加地順利 我們以前在學校寫的作業和練習,就是程式作品
2022/10/29
上一集有說,我們以前在學校要教很多作業,扣除那一些夭壽難的題目,其實大多數都是在練基本功 而外面許多書籍、課程和公司內的學習,則是強調實用和解決問題的方法 例如如何寫一個爬蟲程式、如何寫一個影像處理的程式、如何做使用者界面
2022/10/29
上一集有說,我們以前在學校要教很多作業,扣除那一些夭壽難的題目,其實大多數都是在練基本功 而外面許多書籍、課程和公司內的學習,則是強調實用和解決問題的方法 例如如何寫一個爬蟲程式、如何寫一個影像處理的程式、如何做使用者界面
看更多
你可能也想看
Thumbnail
我會在這篇文章裡面跟大家分享在這二十年來我是透過哪些方法一步步成為一位程式設計師的
Thumbnail
我會在這篇文章裡面跟大家分享在這二十年來我是透過哪些方法一步步成為一位程式設計師的
Thumbnail
這篇文章專門寫給「非」資訊相關科系畢業的人,說明怎麼樣開始學寫程式,還有到什麼程度才能轉到資訊相關產業。 我大學跟研究所都是念土木系,因為對寫程式蠻有興趣,所以除了系上的課之外,還有去資工系還有電機系修一些相關課程,因為不是資訊相關科系,所以有走了一些冤枉路,但是研究所的時候我已經可以開發套裝軟體了
Thumbnail
這篇文章專門寫給「非」資訊相關科系畢業的人,說明怎麼樣開始學寫程式,還有到什麼程度才能轉到資訊相關產業。 我大學跟研究所都是念土木系,因為對寫程式蠻有興趣,所以除了系上的課之外,還有去資工系還有電機系修一些相關課程,因為不是資訊相關科系,所以有走了一些冤枉路,但是研究所的時候我已經可以開發套裝軟體了
Thumbnail
寫程式是一件讓人感到害怕的一件事,但是寫程式真的對職場幫助很大,不管是邏輯思考或是資料處理,都讓我跟不會寫程式的人高度不一樣......
Thumbnail
寫程式是一件讓人感到害怕的一件事,但是寫程式真的對職場幫助很大,不管是邏輯思考或是資料處理,都讓我跟不會寫程式的人高度不一樣......
Thumbnail
所謂的計算思考,指的是人類解決問題的多元技能之集合,其根源來自對於計算本質的研究。 108課綱將程式設計納入國中課程,「運算思維」和閱讀、寫作一樣,變成一種不可或缺的能力。
Thumbnail
所謂的計算思考,指的是人類解決問題的多元技能之集合,其根源來自對於計算本質的研究。 108課綱將程式設計納入國中課程,「運算思維」和閱讀、寫作一樣,變成一種不可或缺的能力。
Thumbnail
當時間變少之後,看戲反而變得更加重要——這是在成為母親之後,我第一次誠實地面對這一件事:我沒有那麼多的晚上,可以任性地留給自己了。看戲不再只是「今天有沒有空」,而是牽動整個週末的結構,誰應該照顧孩子,我該在什麼時間回到家,隔天還有沒有精神帶小孩⋯⋯於是,我不得不學會一件以前並不擅長的事:挑選。
Thumbnail
當時間變少之後,看戲反而變得更加重要——這是在成為母親之後,我第一次誠實地面對這一件事:我沒有那麼多的晚上,可以任性地留給自己了。看戲不再只是「今天有沒有空」,而是牽動整個週末的結構,誰應該照顧孩子,我該在什麼時間回到家,隔天還有沒有精神帶小孩⋯⋯於是,我不得不學會一件以前並不擅長的事:挑選。
Thumbnail
當代名導基里爾.賽勒布倫尼科夫身兼電影、劇場與歌劇導演,其作品流動著強烈的反叛與詩意。在俄烏戰爭爆發後,他持續以創作回應專制體制的壓迫。《傳奇:帕拉贊諾夫的十段殘篇》致敬蘇聯電影大師帕拉贊諾夫。本文作者透過媒介本質的分析,解構賽勒布倫尼科夫如何利用影劇雙棲的特質,在荒謬世道中尋找藝術的「生存之道」。
Thumbnail
當代名導基里爾.賽勒布倫尼科夫身兼電影、劇場與歌劇導演,其作品流動著強烈的反叛與詩意。在俄烏戰爭爆發後,他持續以創作回應專制體制的壓迫。《傳奇:帕拉贊諾夫的十段殘篇》致敬蘇聯電影大師帕拉贊諾夫。本文作者透過媒介本質的分析,解構賽勒布倫尼科夫如何利用影劇雙棲的特質,在荒謬世道中尋找藝術的「生存之道」。
Thumbnail
《程式》被視為一種補習學科,但筆者提供不同的觀點。補習通常為了更好的成績,也追求標準答案,往往限制孩子對學習的想像。然而,《程式魔法》不僅沒有標準答案,還能提升自學能力、建立不怕挫折的心理素質,是極佳的才藝課。尤其,真實世界沒有標準答案,如何讓孩子擁有自信,迎向人工智慧時代呢?讓孩子來體驗看看吧!
Thumbnail
《程式》被視為一種補習學科,但筆者提供不同的觀點。補習通常為了更好的成績,也追求標準答案,往往限制孩子對學習的想像。然而,《程式魔法》不僅沒有標準答案,還能提升自學能力、建立不怕挫折的心理素質,是極佳的才藝課。尤其,真實世界沒有標準答案,如何讓孩子擁有自信,迎向人工智慧時代呢?讓孩子來體驗看看吧!
Thumbnail
今天是一位非資工系背景商科大學生的第一堂正式演算法課程,老師上課時先讓大家玩了猜數字的遊戲,我用了自己的運氣去猜測數字,才發現自己其實運氣真的不好。 接著我們透過自己所學過的程式語言,寫出了二分搜尋法以及猜數字的遊戲。 我分別用了JS以及Python寫出。
Thumbnail
今天是一位非資工系背景商科大學生的第一堂正式演算法課程,老師上課時先讓大家玩了猜數字的遊戲,我用了自己的運氣去猜測數字,才發現自己其實運氣真的不好。 接著我們透過自己所學過的程式語言,寫出了二分搜尋法以及猜數字的遊戲。 我分別用了JS以及Python寫出。
Thumbnail
  每學期第一天上課,只要學生一看到程式碼,不論男女,就哀鴻遍野......   其實很多學生,甚至有很多人都有這樣的誤區,認為要邏輯性很強的人才能學會程式設計,讓想學習程式的人唯恐避之而不及.你也是其中之一嗎?
Thumbnail
  每學期第一天上課,只要學生一看到程式碼,不論男女,就哀鴻遍野......   其實很多學生,甚至有很多人都有這樣的誤區,認為要邏輯性很強的人才能學會程式設計,讓想學習程式的人唯恐避之而不及.你也是其中之一嗎?
Thumbnail
演算法學習路徑圖 這次我們將精確定位出,在整個演算法學習中,我們所站立的位置;了解資料結構與演算法的定義後,拿到我們在這個世界中的方位,就能「有根有據」的展開學習路徑,建立「系統架構化」的知識體系。 不論學習什麼,明確的「定位」出自己在整個學習藍圖中的位置,是非常重要的。軟體世界要學的何其多,光是
Thumbnail
演算法學習路徑圖 這次我們將精確定位出,在整個演算法學習中,我們所站立的位置;了解資料結構與演算法的定義後,拿到我們在這個世界中的方位,就能「有根有據」的展開學習路徑,建立「系統架構化」的知識體系。 不論學習什麼,明確的「定位」出自己在整個學習藍圖中的位置,是非常重要的。軟體世界要學的何其多,光是
Thumbnail
見諸參與鄧伯宸口述,鄧湘庭於〈那個大霧的時代〉記述父親回憶,鄧伯宸因故遭受牽連,而案件核心的三人,在鄧伯宸記憶裡:「成立了成大共產黨,他們製作了五星徽章,印刷共產黨宣言——刻鋼板的——他們收集中共空飄的傳單,以及中國共產黨中央委員會有關文化大革命決議文的英文打字稿,另外還有手槍子彈十發。」
Thumbnail
見諸參與鄧伯宸口述,鄧湘庭於〈那個大霧的時代〉記述父親回憶,鄧伯宸因故遭受牽連,而案件核心的三人,在鄧伯宸記憶裡:「成立了成大共產黨,他們製作了五星徽章,印刷共產黨宣言——刻鋼板的——他們收集中共空飄的傳單,以及中國共產黨中央委員會有關文化大革命決議文的英文打字稿,另外還有手槍子彈十發。」
Thumbnail
5 月,方格創作島正式開島。這是一趟 28 天的創作旅程。活動期間,每週都會有新的任務地圖與陪跑計畫,從最簡單的帳號使用、沙龍建立,到帶著你從一句話、一張照片開始,一步一步找到屬於自己的創作節奏。不需要長篇大論,不需要完美的文筆,只需要帶上你今天的日常,就可以出發。征服創作島,抱回靈感與大獎!
Thumbnail
5 月,方格創作島正式開島。這是一趟 28 天的創作旅程。活動期間,每週都會有新的任務地圖與陪跑計畫,從最簡單的帳號使用、沙龍建立,到帶著你從一句話、一張照片開始,一步一步找到屬於自己的創作節奏。不需要長篇大論,不需要完美的文筆,只需要帶上你今天的日常,就可以出發。征服創作島,抱回靈感與大獎!
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News