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

閱讀時間約 2 分鐘
如果還沒看前一篇的人,可以按下面連結去看上一篇文章
今天我們又回來講本科系的學生在學校學了什麼
除了大量個基本功之外,剩下的時間就是在學演算法
演算法這一個東西,是一種好玩、無聊、很難的課程
看到這裡一定有人會覺得奇怪,為什麼是又好玩又無聊?
會好玩的原因在於,在學演算法的過程中,會看到人類為了追求更快的電腦效,而想出各式各樣奇奇怪怪的方法去解,這時會覺得人類真的聰明阿
會無聊的原因在於,很多演算法最後有程式都包裝起來了
舉例來說,我們要將一串的資料從小排到大,演算法的課程會交各種奇怪的方式去加速,把資料從小排到大
然而真的在寫程式的時候,其實大部分的程式都有內建sort,這一個函數就已經使用了教科書上最快的方式幫你把資料從小排到大
所以會有一種,我學了這麼多的東西,結果真的要用用不到的感覺
至於難,演算法是真的很難,畢竟裡面牽扯一堆數學和電腦架構,還有一兩個是連數學都無法解釋經驗法則去計算
總而言之,演算法是本科系出來的人必備的知識
既然又難而且都有function把他們包起來了,那是不是就不需要會?
我還是會建議大家有機會可以看一下演算法
原因有三
有一些公司面試就是喜歡考研算法,特別是外商
你要先知道有這樣的演算法,才會知道有這樣的函數可以呼叫
遇到一些奇怪的情況,還是要親自下去寫這一些演算法
第一個原因我猜應該非常的好理解,很多公司就是喜歡考演算法
第二的原因是我遇過的碰到的,有一些非本科系的出生的工程師,因為沒有學過演算法的課程,根本就不知道有這樣的方法,就也不會也不知道關鍵字去搜尋這一些方法,就只能自己用很差的方式想辦法寫出來
舉裡來說,在開發一項功能的時候,使用圖論中的某一些演算法就可以將問題迎刃而解,然而開發者因為沒有學過圖論,所以就只能憑藉自己的想像寫了一堆的程式,先不說花了一堆時間,寫出來的東西漏洞百出而且效能很差
記得那時候,我就直接給他一些圖論的關鍵字重構之後,效能提升跟漏洞減少,然後還被當作偶像崇拜(有一點開心)
第三的原因也是我碰到的,有一些奇怪的情況之下,我們沒有辦法輕易地使用內建的方法,如果是開發一些新的功能,多多少少會這一件事情,所以這時候只能回去翻書,把教科書上的知識吸收之後再轉化,這時就會有一種書到用時方恨少的感概,或是為甚麼有一些知識還給了老師的悲痛
根據上述三個理由,我會建議對於非本科系的出生的工程師,有空去看一下演算法的書籍或是課程,至少當遇到問題的時候,才會知道還有這樣的方式可以解
最後,我知道演算法不好學,所以可以從以下的方式來學
  1. 要知道有這樣的方法
  2. 這一個方法可以達到怎樣的效果
這樣未來遇到問題,才會知道該怎麼辦
最後,喜歡我的文章,歡迎到FB粉絲頁 - 如峰小教室 按讚
我也會在FB粉絲頁中不時地發表一些小品的知識
作品和產品的區別,不只有程式工程師,PM和老闆更必須要知道,才能讓公司的運轉更加地順利。我們以前在學校寫的作業和練習,就是程式作品,如果用一個術語就是,程式作品是比最小可行性的產品還要再小,那產品比作品還要多注意甚麼東西呢? 讓我們在這一個專欄中一起來探討吧!
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
如峰小教室的沙龍 的其他內容
作品和產品的區別,不只有程式工程師,PM和老闆更必須要知道,才能讓公司的運轉更加地順利 我們以前在學校寫的作業和練習,就是程式作品
上一集有說,我們以前在學校要教很多作業,扣除那一些夭壽難的題目,其實大多數都是在練基本功 而外面許多書籍、課程和公司內的學習,則是強調實用和解決問題的方法 例如如何寫一個爬蟲程式、如何寫一個影像處理的程式、如何做使用者界面
身為電機系畢業的學生,我們以前在學校最常見的就是被迫去寫很多程式 作業從的難易很廣,最簡單的hello world到很複雜的模擬電腦運作的程式都有可能是老師出的作業
最近發現,很多人對於程式本科生有著莫名的幻想 例如電機系和資工系出來寫的程式一定比較好 或是非本科生就會有莫名的自卑感
作品和產品的區別,不只有程式工程師,PM和老闆更必須要知道,才能讓公司的運轉更加地順利 我們以前在學校寫的作業和練習,就是程式作品
上一集有說,我們以前在學校要教很多作業,扣除那一些夭壽難的題目,其實大多數都是在練基本功 而外面許多書籍、課程和公司內的學習,則是強調實用和解決問題的方法 例如如何寫一個爬蟲程式、如何寫一個影像處理的程式、如何做使用者界面
身為電機系畢業的學生,我們以前在學校最常見的就是被迫去寫很多程式 作業從的難易很廣,最簡單的hello world到很複雜的模擬電腦運作的程式都有可能是老師出的作業
最近發現,很多人對於程式本科生有著莫名的幻想 例如電機系和資工系出來寫的程式一定比較好 或是非本科生就會有莫名的自卑感
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
2024.06.13 台中市政府 「幸福宜居城市美學是一個持續進行的過程!」台中市長盧秀燕上任後積極推動「台中美樂地計畫(Taichung Melody)」,持續結合時代脈動趨勢和市民需求,為城市美學注入新元素。位於南屯區的豐富公園,因早期設計的入口牌樓老舊,已不符現代潮流,市府建設局將於6月中以
在一次五天的年假中,我決定開始學習Python編程。雖然最初進展順利,但後來發現自己在解題和邏輯方面遇到了困難。經過思考後,我決定轉而學習C/C++,並且制定了一個計畫,希望成為一名後端工程師。這將需要挑戰我的時間管理能力。
Thumbnail
你是否曾經遇過公司內部繁瑣的流程,需要填寫各種複雜的表單?或者是公司的資料雜亂的儲存在 Excel,主管希望能夠用更聰明的方法管理訂單或庫存?這時候,你可能會想:「如果有人幫我們開發公司系統,就能解決這些問題了」。然而,可能是公司沒有IT 部門又或是受限於預算,這些願望總是無法實現。
Thumbnail
恭喜你!如果你正在考慮成為一名初階軟體工程師,那麼你即將踏上一條充滿挑戰與機遇的黃金大道。這條路上既有高山峻嶺,也有美麗風光。作為初階軟體工程師,你將體驗到程式設計的奇妙世界,並學會如何在其中找到自己的立足之地。這篇文章將為你揭開這個職業的神秘面紗,帶你了解其中的酸甜苦辣
Thumbnail
在這篇文章中,作者分享了關於成長於新北市三重區的感想和省思。透過描述城市特質與其發展過程,反映作者對城市變遷和個人成長的洞察。文章中包含了關於社區、地方特色以及對不同城市觀察的獨到見解。作者通過對城市生活的描寫,表達了對不同地方和文化的好奇心和思考。
Thumbnail
作為一個研究科技法律的律師,學習程式設計一直是想要嘗試去做的事情。每當接觸著隱私、人工智慧(AI)、元宇宙(Metaverse)或區塊鏈(blockchain)等資訊時,卻始終感覺除了表面上看到的東西之外,似乎還應探索在螢幕之後的世界。因此,便開始學習程式設計的旅程。
Thumbnail
在初學程式的時候,我曾經看室友開發專案到一半時,突然坐在那發呆,於是我好奇一問,室友說:「我在等程式編譯完成啊。」 還記得當初還是程式小菜雞的我,懞懂無知的說:「編譯?哈哈哈,我們 JavaScript 都不需要編譯耶,可以直接跑在瀏覽器上。」 室友一臉莫名其妙地回我:「噢,是嗎⋯⋯」
Thumbnail
這也就造就出「鈴木信仰」或「鈴菌散播」這衍伸詞彙。其實並不是真的鈴木有靈性啦XD,不過是一種出自喜歡而加注於其身的精神與使命感。
Thumbnail
閱讀,也是有餘溫的吧! 那些書中所述的可能是流程、字句都會構築 成畫面。也可能闔上這一本書時,必不會記憶猶新, 如往後有相似情節或者類似心境時,那時讀過的書, 某個篇章、某幾個段落,將不人工化地浮現出來, 我覺得閱讀可以很科學,這很有趣。
僅就自身的經驗作為心得記錄,並不適用於每個人,請斟酌參考。 畢業於理工科系,最初接觸的程式語言不是現在人人推前後端都能做的javascript,也不是初學易懂好上手應用廣的python,而是如同傳統企業核心用COBOL、Java,理工科入門語言--fortran。
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
2024.06.13 台中市政府 「幸福宜居城市美學是一個持續進行的過程!」台中市長盧秀燕上任後積極推動「台中美樂地計畫(Taichung Melody)」,持續結合時代脈動趨勢和市民需求,為城市美學注入新元素。位於南屯區的豐富公園,因早期設計的入口牌樓老舊,已不符現代潮流,市府建設局將於6月中以
在一次五天的年假中,我決定開始學習Python編程。雖然最初進展順利,但後來發現自己在解題和邏輯方面遇到了困難。經過思考後,我決定轉而學習C/C++,並且制定了一個計畫,希望成為一名後端工程師。這將需要挑戰我的時間管理能力。
Thumbnail
你是否曾經遇過公司內部繁瑣的流程,需要填寫各種複雜的表單?或者是公司的資料雜亂的儲存在 Excel,主管希望能夠用更聰明的方法管理訂單或庫存?這時候,你可能會想:「如果有人幫我們開發公司系統,就能解決這些問題了」。然而,可能是公司沒有IT 部門又或是受限於預算,這些願望總是無法實現。
Thumbnail
恭喜你!如果你正在考慮成為一名初階軟體工程師,那麼你即將踏上一條充滿挑戰與機遇的黃金大道。這條路上既有高山峻嶺,也有美麗風光。作為初階軟體工程師,你將體驗到程式設計的奇妙世界,並學會如何在其中找到自己的立足之地。這篇文章將為你揭開這個職業的神秘面紗,帶你了解其中的酸甜苦辣
Thumbnail
在這篇文章中,作者分享了關於成長於新北市三重區的感想和省思。透過描述城市特質與其發展過程,反映作者對城市變遷和個人成長的洞察。文章中包含了關於社區、地方特色以及對不同城市觀察的獨到見解。作者通過對城市生活的描寫,表達了對不同地方和文化的好奇心和思考。
Thumbnail
作為一個研究科技法律的律師,學習程式設計一直是想要嘗試去做的事情。每當接觸著隱私、人工智慧(AI)、元宇宙(Metaverse)或區塊鏈(blockchain)等資訊時,卻始終感覺除了表面上看到的東西之外,似乎還應探索在螢幕之後的世界。因此,便開始學習程式設計的旅程。
Thumbnail
在初學程式的時候,我曾經看室友開發專案到一半時,突然坐在那發呆,於是我好奇一問,室友說:「我在等程式編譯完成啊。」 還記得當初還是程式小菜雞的我,懞懂無知的說:「編譯?哈哈哈,我們 JavaScript 都不需要編譯耶,可以直接跑在瀏覽器上。」 室友一臉莫名其妙地回我:「噢,是嗎⋯⋯」
Thumbnail
這也就造就出「鈴木信仰」或「鈴菌散播」這衍伸詞彙。其實並不是真的鈴木有靈性啦XD,不過是一種出自喜歡而加注於其身的精神與使命感。
Thumbnail
閱讀,也是有餘溫的吧! 那些書中所述的可能是流程、字句都會構築 成畫面。也可能闔上這一本書時,必不會記憶猶新, 如往後有相似情節或者類似心境時,那時讀過的書, 某個篇章、某幾個段落,將不人工化地浮現出來, 我覺得閱讀可以很科學,這很有趣。
僅就自身的經驗作為心得記錄,並不適用於每個人,請斟酌參考。 畢業於理工科系,最初接觸的程式語言不是現在人人推前後端都能做的javascript,也不是初學易懂好上手應用廣的python,而是如同傳統企業核心用COBOL、Java,理工科入門語言--fortran。