大专普通本科、搞算法的(蓝桥杯、ACM、天梯赛)-后续成长之路
2021年1月
1、首先要清楚算法究竟能為程序作出什么樣的貢獻:
請查閱:《【算法之美】改變世界的十位算法大師》
url:https://blog.csdn.net/kexuanxiu1163/article/details/99912481
普通學生最合適的比賽:
個人賽:
藍橋杯:https://www.lanqiao.cn/
團體賽:
ACM:https://www.acm.cat/
天梯賽:https://gplt.patest.cn/regulation?
國內當前比較靠譜的比賽有:
DC競賽:http://www.dcjingsai.com/
阿里天池:https://tianchi.aliyun.com/
京東JDATA:https://jdata.jd.com/
DataFountain:https://www.datafountain.cn/
Kesci:https://www.kesci.com/home/competition
百度大腦:https://aistudio.baidu.com/aistudio/competition
騰訊廣告:https://algo.qq.com/application/home/home/index.htm
AI爭霸賽:http://www.justallinai.com
其中,阿里天池和騰訊、京東、百度比賽的大神太多,AI爭霸賽是新起來的小平臺,最近在搞AI翻譯比賽,一等獎60w人民幣獎金,很多大神不知道,新手來說拿獎比較容易
2、了解一下算法與非算法的區別:
一般來說,可以把編程工作分為兩種,一種是面向實現的,一種是面向優化的。前者如實現一個功能、搭建一個服務、實現一種展現交互方式等。更關注的是如何實現功能,如何對于各種復雜甚至小眾的場景都不出錯。互聯網中典型的后端、前端、平臺、網絡工程師的主要工作是這一類。
如果一些功能已經實現了,你主要需要優化它,那這類工作一般比較偏向算法。其中一個關鍵是你的優化目標要是客觀可量化的。比如一些代碼優化的工作是提升代碼的可維護性、可讀性和可擴展性。這個優化目標具備比較強的主觀性,難以形成量化的指標,屬于設計模式主要關注的問題,一般不納入算法范疇。
另一個區分算法與非算法工作的重要特征是一般涉及數學知識較多的編程工作更偏向算法。比如對于面向優化的編程工作,為了很好地衡量可量化的目標,其數學定義往往比較明確,相應引入的數學知識會比較多。
那么如果面向實現的編程工作也依賴大量數學知識時是否算作算法呢?其中一個例子是可計算性理論,它涉及到可判定性問題、數理邏輯等問題都需要大量復雜的數學知識。這種情況下,它其實更關心何種問題原則上是否可用算法解決,在實際工程領域中并沒有大量的崗位與之相匹配,所以本文暫不將其作為算法工程師所考慮的范圍。
3、不同種類算法之間的區別
如果你的優化目標是要降低程序的時間復雜度與空間復雜度,它們都是能夠比較嚴格地量化定義的,就屬于經典的“數據結構與算法”中關注的“算法”的問題。LeetCode中大部分Algorithm的題目都屬于此類,也是互聯網面試中的高頻考點,如常見的分治、遞歸、動態規劃等。在實際工作中,特別是一些架構師相關的角色,會著重關注這類問題,比如提升增刪改查的速度、降低其內存消耗等等。相應的數學理論是計算復雜性理論,依賴的數學知識包括離散數學、組合數學、圖論等。
如果你的優化目標是要降低在未見過的case上的預測誤差,這是典型的機器學習中的算法問題。這里面涉及到一些核心的概念,包括:泛化誤差、訓練誤差、過擬合、欠擬合、偏差等。相應的算法崗位非常多,圖像算法、語音算法、自然語言處理算法、搜索推薦算法等。
這里推薦幾適合大專及普通本科學習的書,個人認為內容很不錯(漸進式):《喚醒思維的數學書》·張鶴、《對思想和方法的基本研究》、《計算機離散數學基礎》。
機器學習算法還可以根據優化目的的不同進行進一步的細分。如果訓練數據帶有標簽,優化目標是降低預測標簽的誤差則是最常見的有監督學習。如果訓練數據不帶標簽,則是無監督學習。而如果此時又非要預測對應的標簽,則有降維和聚類兩種算法。如果僅僅是為了擬合訓練數據的分布,生成式算法。
它的數學理論是計算學習理論,依賴的數學知識包括概率與統計、最優化理論、線性代數與矩陣論等。
當然,最優化本身就是一種算法。稍微嚴格一點的表述是在一定的約束條件下控制自變量達到目標函數最優的問題。最優化問題也叫作運籌學,在工程界應用非常廣泛。典型的如外賣騎手調度、網約車調度、航班調度、物流路徑調度、廣告/補貼金額投放等。
最優化算法的種類也比較多,以自變量是否連續可分為連續最優化和組合優化。很多計算復雜度優化算法可以看做一種廣義的組合優化問題。機器學習算法一般是連續最優化問題。
4、搞算法的也就是面向優化:
所以,你大概知道你未來的發展之路了吧。
恭喜你,拿個國一也只是萬里長征的開始。
加油,高級匠人。
總結
以上是生活随笔為你收集整理的大专普通本科、搞算法的(蓝桥杯、ACM、天梯赛)-后续成长之路的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JAVA字符串数学公式运算-辅助类-支持
- 下一篇: .NET MVC访问某方法后会跳转页面