开发者社区> 红目香薰> 正文

大专&普通本科、搞算法的(蓝桥杯、ACM、天梯赛)-后续成长之路

简介: 算法
+关注继续查看

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、了解一下算法与非算法的区别:

一般来说,可以把编程工作分为两种,一种是面向实现的,一种是面向优化的。前者如实现一个功能、搭建一个服务、实现一种展现交互方式等。更关注的是如何实现功能,如何对于各种复杂甚至小众的场景都不出错。互联网中典型的后端、前端、平台、网络工程师的主要工作是这一类。


7.png

如果一些功能已经实现了,你主要需要优化它,那这类工作一般比较偏向算法。其中一个关键是你的优化目标要是客观可量化的。比如一些代码优化的工作是提升代码的可维护性、可读性和可扩展性。这个优化目标具备比较强的主观性,难以形成量化的指标,属于设计模式主要关注的问题,一般不纳入算法范畴。


另一个区分算法与非算法工作的重要特征是一般涉及数学知识较多的编程工作更偏向算法。比如对于面向优化的编程工作,为了很好地衡量可量化的目标,其数学定义往往比较明确,相应引入的数学知识会比较多。


那么如果面向实现的编程工作也依赖大量数学知识时是否算作算法呢?其中一个例子是可计算性理论,它涉及到可判定性问题、数理逻辑等问题都需要大量复杂的数学知识。这种情况下,它其实更关心何种问题原则上是否可用算法解决,在实际工程领域中并没有大量的岗位与之相匹配,所以本文暂不将其作为算法工程师所考虑的范围。


3、不同种类算法之间的区别

如果你的优化目标是要降低程序的时间复杂度与空间复杂度,它们都是能够比较严格地量化定义的,就属于经典的“数据结构与算法”中关注的“算法”的问题。LeetCode中大部分Algorithm的题目都属于此类,也是互联网面试中的高频考点,如常见的分治、递归、动态规划等。在实际工作中,特别是一些架构师相关的角色,会着重关注这类问题,比如提升增删改查的速度、降低其内存消耗等等。相应的数学理论是计算复杂性理论,依赖的数学知识包括离散数学、组合数学、图论等。


8.png

如果你的优化目标是要降低在未见过的case上的预测误差,这是典型的机器学习中的算法问题。这里面涉及到一些核心的概念,包括:泛化误差、训练误差、过拟合、欠拟合、偏差等。相应的算法岗位非常多,图像算法、语音算法、自然语言处理算法、搜索推荐算法等。


这里推荐几适合大专及普通本科学习的书,个人认为内容很不错(渐进式):《唤醒思维的数学书》·张鹤、《对思想和方法的基本研究》、《计算机离散数学基础》。


机器学习算法还可以根据优化目的的不同进行进一步的细分。如果训练数据带有标签,优化目标是降低预测标签的误差则是最常见的有监督学习。如果训练数据不带标签,则是无监督学习。而如果此时又非要预测对应的标签,则有降维和聚类两种算法。如果仅仅是为了拟合训练数据的分布,生成式算法。


它的数学理论是计算学习理论,依赖的数学知识包括概率与统计、最优化理论、线性代数与矩阵论等。


当然,最优化本身就是一种算法。稍微严格一点的表述是在一定的约束条件下控制自变量达到目标函数最优的问题。最优化问题也叫作运筹学,在工程界应用非常广泛。典型的如外卖骑手调度、网约车调度、航班调度、物流路径调度、广告/补贴金额投放等。


最优化算法的种类也比较多,以自变量是否连续可分为连续最优化和组合优化。很多计算复杂度优化算法可以看做一种广义的组合优化问题。机器学习算法一般是连续最优化问题。


4、搞算法的也就是面向优化:


所以,你大概知道你未来的发展之路了吧。

恭喜你,拿个国一也只是万里长征的开始。

加油,高级匠人。



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
14217 0
Java 算法竞赛(蓝桥杯)常用API
Java 算法竞赛(蓝桥杯)常用API
110 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
28066 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
20143 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
23538 0
+关注
红目香薰
历经于PRC、Blockchain Technoloogy、E.项目历练。 曾担任过企业的CTO、DBA、PM、OD等职位,较高的代码严谨度,为多个上亿PV的App后端提效20%至40%。 对软件的商业OD与UE有一定的见解,曾帮助企业提高120%的年度效益。
928
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载